diff --git a/level-sublevel/level-sublevel-tests.ts b/level-sublevel/level-sublevel-tests.ts
new file mode 100644
index 0000000000..9887dd70c1
--- /dev/null
+++ b/level-sublevel/level-sublevel-tests.ts
@@ -0,0 +1,28 @@
+///
+
+import levelup = require('levelup');
+import sublevel = require('level-sublevel');
+
+var db = sublevel(levelup('./tmp/sublevel-example'));
+var sub = db.sublevel('stuff');
+
+db.put('foo', 'bar', err => {});
+
+sub.put('foo', 'bar', err => {});
+
+db.pre((ch, add) => {
+ add({
+ key: ''+Date.now(),
+ value: ch.key,
+ type: 'put',
+ prefix: sub
+ })
+});
+
+var sub1 = db.sublevel('SUB_1');
+var sub2 = db.sublevel('SUM_2');
+
+sub1.batch([
+ { key: 'key', value: 'Value', type: 'put' },
+ { key: 'key', value: 'Value', type: 'put', prefix: sub2 }
+], err => { if (err) throw err; });
\ No newline at end of file
diff --git a/level-sublevel/level-sublevel.d.ts b/level-sublevel/level-sublevel.d.ts
new file mode 100644
index 0000000000..969ada9637
--- /dev/null
+++ b/level-sublevel/level-sublevel.d.ts
@@ -0,0 +1,24 @@
+// Type definitions for level-sublevel
+// Project: https://github.com/dominictarr/level-sublevel
+// Definitions by: Bas Pennings
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+interface Hook {
+ (ch: any, add: (op: Batch|boolean) => void): void;
+}
+
+interface Batch {
+ prefix?: Sublevel;
+}
+
+interface Sublevel extends LevelUp {
+ sublevel(key: string): Sublevel;
+ pre(hook: Hook): Function;
+}
+
+declare module "level-sublevel" {
+ function sublevel(levelup: LevelUp): Sublevel;
+ export = sublevel;
+}
\ No newline at end of file