diff --git a/dagre-d3/dagre-d3-tests.ts b/dagre-d3/dagre-d3-tests.ts
new file mode 100644
index 0000000000..e3e068816c
--- /dev/null
+++ b/dagre-d3/dagre-d3-tests.ts
@@ -0,0 +1,19 @@
+///
+module DagreD3Tests {
+ var gDagre = new dagreD3.graphlib.Graph();
+ var graph = gDagre.graph();
+
+ // has graph methods from dagre.d.ts
+ graph.setNode("a", {});
+ var num: number = 251 + graph.height + graph.width;
+ var predecessors: { [vertex:string]: string[] } = {};
+ var successors: { [vertex:string]: string[] } = {};
+
+ predecessors["a"] = graph.predecessors("a");
+ successors["a"] = graph.successors("a");
+
+ var render = new dagreD3.render();
+ var svg = d3.select("svg");
+ render(svg, graph);
+}
+
diff --git a/dagre-d3/dagre-d3.d.ts b/dagre-d3/dagre-d3.d.ts
new file mode 100644
index 0000000000..d088d1d829
--- /dev/null
+++ b/dagre-d3/dagre-d3.d.ts
@@ -0,0 +1,31 @@
+// Type definitions for dagre-d3.core.js
+// Project: https://github.com/cpettitt/dagre-d3
+// Definitions by: Mark Wong Siang Kai
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+///
+
+declare module Dagre {
+
+ interface DagreD3Factory extends Dagre.DagreFactory {
+ render: Render;
+ }
+
+ // coupled with dagre.d.ts' Graph
+ // a lot of these methods come from graphlib.core.js
+ interface Graph {
+ graph(): Graph;
+ height: number;
+ predecessors(id: string): string[];
+ successors(id: string): string[];
+ width: number;
+ }
+
+ interface Render {
+ new (): Render;
+ (selection: D3.Selection, g: Dagre.Graph): void;
+ }
+}
+
+declare var dagreD3: Dagre.DagreD3Factory;