diff --git a/donna/donna-tests.ts b/donna/donna-tests.ts
new file mode 100644
index 000000000..a1695e42a
--- /dev/null
+++ b/donna/donna-tests.ts
@@ -0,0 +1,81 @@
+///
+
+import donna = require("donna");
+var metadata = donna.generateMetadata(['/path/to/my-module', '/path/to/another-module']);
+
+metadata = {
+ "files": {
+ "spec/metadata_templates/classes/class_with_prototype_properties.coffee": {
+ "objects": {
+ "3": {
+ "0": {
+ "type": "class",
+ "name": "TextBuffer",
+ "bindingType": null,
+ "classProperties": [],
+ "prototypeProperties": [
+ [
+ 4,
+ 9
+ ],
+ [
+ 11,
+ 11
+ ]
+ ],
+ "doc": " Public: A mutable text container with undo/redo support and the ability to\nannotate logical regions in the text.\n\n ",
+ "range": [
+ [
+ 3,
+ 0
+ ],
+ [
+ 11,
+ 17
+ ]
+ ]
+ }
+ },
+ "4": {
+ "9": {
+ "name": "prop2",
+ "type": "primitive",
+ "range": [
+ [
+ 4,
+ 9
+ ],
+ [
+ 4,
+ 13
+ ]
+ ],
+ "bindingType": "prototypeProperty"
+ }
+ },
+ "11": {
+ "11": {
+ "name": "method2",
+ "bindingType": "prototypeProperty",
+ "type": "function",
+ "paramNames": [
+ "a"
+ ],
+ "range": [
+ [
+ 11,
+ 11
+ ],
+ [
+ 11,
+ 16
+ ]
+ ],
+ "doc": " Public: Takes an argument and does some stuff.\n\na - A {String}\n\nReturns {Boolean}. "
+ }
+ }
+ },
+ "exports": {}
+ }
+ }
+};
diff --git a/donna/donna.d.ts b/donna/donna.d.ts
new file mode 100644
index 000000000..fed09fa98
--- /dev/null
+++ b/donna/donna.d.ts
@@ -0,0 +1,34 @@
+// Type definitions for donna
+// Project: https://github.com/atom/donna
+// Definitions by: vvakame
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "donna" {
+ function generateMetadata(modules: string[]): DonnaTypes.Metadata;
+}
+
+declare module DonnaTypes {
+ interface Metadata {
+ files: { [filePath: string]: File; };
+ }
+
+ interface File {
+ objects: { [line: number]: Line; };
+ exports: any;
+ }
+
+ interface Line {
+ [row: number]: Object;
+ }
+
+ interface Object {
+ type: string;
+ name: string;
+ bindingType: string;
+ classProperties?: any[];
+ prototypeProperties?: number[][];
+ doc?: string;
+ range: number[][];
+
+ }
+}
diff --git a/donna/tsconfig.json b/donna/tsconfig.json
new file mode 100644
index 000000000..e079acce0
--- /dev/null
+++ b/donna/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "version": "1.4.1",
+ "compilerOptions": {
+ "target": "es5",
+ "module": "commonjs",
+ "declaration": false,
+ "noImplicitAny": false,
+ "removeComments": true,
+ "noLib": false
+ },
+ "filesGlob": [
+ "./**/*.ts",
+ "!./node_modules/**/*.ts"
+ ],
+ "files": [
+ "./donna-tests.ts",
+ "./donna.d.ts"
+ ]
+}
\ No newline at end of file