diff --git a/proxyquire/proxyquire-test.ts b/proxyquire/proxyquire-test.ts
new file mode 100644
index 000000000..b1985de58
--- /dev/null
+++ b/proxyquire/proxyquire-test.ts
@@ -0,0 +1,19 @@
+///
+
+import proxyquire = require('proxyquire');
+
+class Foo {}
+var mock = {};
+
+var myModule = proxyquire('myModule', mock);
+var fooModule: Foo = proxyquire('foo', mock);
+
+myModule = proxyquire.noCallThru()
+ .load('myModule', mock);
+
+fooModule = proxyquire.callThru()
+ .load('foo', mock);
+
+proxyquire.preserveCache();
+
+proxyquire.noPreserveCache();
diff --git a/proxyquire/proxyquire.d.ts b/proxyquire/proxyquire.d.ts
new file mode 100644
index 000000000..06e1c773e
--- /dev/null
+++ b/proxyquire/proxyquire.d.ts
@@ -0,0 +1,25 @@
+// Type definitions for Proxyquire 1.3.0
+// Project: https://github.com/thlorenz/proxyquire
+// Definitions by: jt000
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+interface Proxyquire {
+
+ (request: string, stubs: any): any;
+ (request: string, stubs: any): T;
+
+ load(request: string, stubs: any): any;
+ load(request: string, stubs: any): T;
+
+ noCallThru(): Proxyquire;
+ callThru(): Proxyquire;
+
+ noPreserveCache(): void;
+ preserveCache(): void;
+}
+
+declare module 'proxyquire' {
+
+ var p: Proxyquire;
+ export = p;
+}
\ No newline at end of file