diff --git a/levelup/levelup-tests.ts b/levelup/levelup-tests.ts
new file mode 100644
index 000000000..7284d0734
--- /dev/null
+++ b/levelup/levelup-tests.ts
@@ -0,0 +1,37 @@
+///
+
+import levelup = require("levelup");
+
+var db = levelup('./mydb')
+db.open();
+db.close();
+db.open((error)=> {
+
+});
+
+db.close((error)=> {
+
+});
+
+
+db.put("key", {});
+db.put("key", {}, (error)=>{});
+db.put("key", {}, { sync: true}, (error)=>{});
+
+db.get("key", {keyEncoding: "json"}, (error, val) => {});
+db.get("key", {fillCache: true}, (error, val) => {});
+db.get("key", (error, val) => {});
+
+db.del("key");
+db.del("key", (error)=>{});
+db.del("key", {keyEncoding: "json"}, (error)=>{});
+db.del("key", {sync: true}, (error)=>{});
+
+db.batch([{
+ type : 'put'
+ , key : ([1, 2, 3])
+ , value : { some: 'json' }
+ , keyEncoding : 'binary'
+ , valueEncoding : 'json'
+}], (error)=> {});
+
diff --git a/levelup/levelup.d.ts b/levelup/levelup.d.ts
new file mode 100644
index 000000000..8f267e3c6
--- /dev/null
+++ b/levelup/levelup.d.ts
@@ -0,0 +1,35 @@
+// Type definitions for LevelUp
+// Project: https://github.com/rvagg/node-levelup
+// Definitions by: Bret Little
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+interface Batch {
+ type: string;
+ key: any;
+ value?: any;
+ keyEncoding?: string;
+ valueEncoding?: string;
+}
+
+interface LevelUp {
+ open(callback ?: (error : any) => any): void;
+ close(callback ?: (error : any) => any): void;
+ put(key: any, value: any, callback ?: (error: any) => any): void;
+ put(key: any, value: any, options?: { sync?: boolean }, callback ?: (error: any) => any): void;
+ get(key: any, callback ?: (error: any, value: any) => any): void;
+
+ get(key: any, options ?: { keyEncoding?: string; fillCache?: boolean }, callback ?: (error: any, value: any) => any): void;
+ del(key: any, callback ?: (error: any) => any): void;
+ del(key: any, options ?: { keyEncoding?: string; sync?: boolean }, callback ?: (error: any) => any): void;
+
+
+ batch(array: Batch[], options?: { keyEncoding?: string; valueEncoding?: string; sync?: boolean }, callback?: (error?: any)=>any);
+ batch(array: Batch[], callback?: (error?: any)=>any);
+}
+
+declare module "levelup" {
+
+ function levelup(hostname: string): LevelUp;
+
+ export = levelup;
+}