diff --git a/traverson/traverson-tests.ts b/traverson/traverson-tests.ts
new file mode 100644
index 000000000..0aceced33
--- /dev/null
+++ b/traverson/traverson-tests.ts
@@ -0,0 +1,19 @@
+///
+
+import traverson = require('traverson');
+
+function testTraverson()
+{
+ var mediaTypeHandler: any = {};
+
+ traverson.registerMediaType('application/some-fancy+json', mediaTypeHandler);
+
+ traverson.from('http://example.api.com/')
+ .follow('link_to')
+ .withTemplateParameters({'id': 1})
+ .get(function(error, document, traversal) {
+ traversal.continue().follow('link_back').get(function(error, document, traversal) {
+ ///
+ });
+ });
+}
diff --git a/traverson/traverson.d.ts b/traverson/traverson.d.ts
new file mode 100644
index 000000000..8a8755091
--- /dev/null
+++ b/traverson/traverson.d.ts
@@ -0,0 +1,60 @@
+// Type definitions for Traverson v2.0.1
+// Project: http://github.com/iriscouch/traceback
+// Definitions by: Marcin Porębski
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module Traverson
+{
+ interface TraversonMethods
+ {
+ from(uri: string): Builder;
+ registerMediaType(name: string, handler: any): TraversonMethods;
+ }
+
+ interface Builder
+ {
+ withRequestOptions(options: any): Builder;
+ withTemplateParameters(parameters: any): Builder;
+ json(): Builder;
+ jsonHal(): Builder;
+
+ setMediaType(type_name: string): Builder;
+
+ follow(first_pattern: string, ... rest_patterns: string[]): Builder;
+
+ get(callback: (err: any, document: any, traversal?: Traversal) => void): InAction;
+ getResource(callback: (err: any, document: any, traversal?: Traversal) => void): InAction;
+ getUrl(callback: (err: any, document: any, traversal?: Traversal) => void): InAction;
+ post(callback: (err: any, document: any, traversal?: Traversal) => void): InAction;
+ put(callback: (err: any, document: any, traversal?: Traversal) => void): InAction;
+ patch(callback: (err: any, document: any, traversal?: Traversal) => void): InAction;
+ delete(callback: (err: any, document: any, traversal?: Traversal) => void): InAction;
+
+ newRequest(): Builder;
+ }
+
+ interface Json
+ {
+ parseJson(): any;
+ }
+
+ interface Traversal
+ {
+ continue(): Builder;
+ }
+
+ interface InAction
+ {
+ abort(): void;
+ }
+
+
+
+}
+
+declare module "traverson"
+{
+ var traverson: Traverson.TraversonMethods;
+
+ export = traverson;
+}