diff --git a/read/read-tests.ts b/read/read-tests.ts
new file mode 100644
index 000000000..54d270813
--- /dev/null
+++ b/read/read-tests.ts
@@ -0,0 +1,18 @@
+///
+
+import read = require('read');
+
+var opts: read.Options;
+opts = {
+ prompt: 'please enter...',
+ silent: true,
+ replace: '*',
+ timeout: 1500,
+ default: 'nothing',
+ edit: false,
+ terminal: true,
+ input: {x: 'thing'},
+ output: {y: 'thang'}
+};
+
+read(opts, function (error, result, isDefault) { });
diff --git a/read/read.d.ts b/read/read.d.ts
new file mode 100644
index 000000000..9ab7f15d4
--- /dev/null
+++ b/read/read.d.ts
@@ -0,0 +1,24 @@
+// Type definitions for read
+// Project: https://github.com/isaacs/read
+// Definitions by: Tim JK
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module 'read' {
+ function Read(options: Read.Options, callback: (error: any, result: string, isDefault: boolean) => any): void;
+
+ module Read {
+ interface Options {
+ prompt?: string;
+ silent?: boolean;
+ replace?: string;
+ timeout?: number;
+ default?: string;
+ edit?: boolean;
+ terminal?: boolean;
+ input?: any;
+ output?: any;
+ }
+ }
+
+ export = Read;
+}