diff --git a/dagre/dagre-tests.ts b/dagre/dagre-tests.ts
new file mode 100644
index 000000000..f990bf152
--- /dev/null
+++ b/dagre/dagre-tests.ts
@@ -0,0 +1,13 @@
+///
+module DagreTests {
+ var gDagre = dagre.graphlib.Graph();
+ gDagre.setGraph({});
+ gDagre.setDefaultEdgeLabel(function(){
+ return ;
+ });
+
+ gDagre.setNode("a", {});
+ gDagre.setEdge("b", "c");
+
+ dagre.layout(gDagre);
+}
diff --git a/dagre/dagre.d.ts b/dagre/dagre.d.ts
new file mode 100644
index 000000000..a9d452826
--- /dev/null
+++ b/dagre/dagre.d.ts
@@ -0,0 +1,29 @@
+// Type definitions for dagre 0.7.0
+// Project: https://github.com/cpettitt/dagre
+// Definitions by: Qinfeng Chen
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+declare module Dagre{
+ interface DagreFactory {
+ graphlib: GraphLib;
+ layout(graph: Graph): void;
+ }
+
+ interface Graph {
+ new (): Graph;
+ edges(): string[];
+ edge(id: string): any;
+ nodes(): string[];
+ node(id: string): any;
+ setDefaultEdgeLabel(callback: () => void): void;
+ setEdge(sourceId: string, targetId: string): void;
+ setGraph(options: { [key: string]: any }): void;
+ setNode(id: string, node: { [key: string]: any }): void;
+ }
+
+ interface GraphLib {
+ Graph: Graph
+ }
+}
+
+declare var dagre: Dagre.DagreFactory;
+