diff --git a/statuses/statuses-tests.ts b/statuses/statuses-tests.ts
new file mode 100644
index 0000000000..a55a706fff
--- /dev/null
+++ b/statuses/statuses-tests.ts
@@ -0,0 +1,33 @@
+///
+
+import status = require('statuses');
+
+var code: number;
+
+code = status(403) // => 403
+code = status('403') // => 403
+code = status('forbidden') // => 403
+code = status('Forbidden') // => 403
+code = status(306) // throws, as it's not supported by node.js
+
+var codes: Array;
+codes = status.codes;
+
+var msg: string;
+msg = status[404] // => 'Not Found'
+
+code = status['not found'] // => 404
+code = status['Not Found'] // => 404
+
+var isRedirect: boolean;
+isRedirect = status.redirect[200] // => undefined
+isRedirect = status.redirect[301] // => true
+
+var isEmpty: boolean;
+isEmpty = status.empty[200] // => undefined
+isEmpty = status.empty[204] // => true
+isEmpty = status.empty[304] // => true
+
+var isRetry: boolean;
+isRetry = status.retry[501] // => undefined
+isRetry = status.retry[503] // => true
diff --git a/statuses/statuses.d.ts b/statuses/statuses.d.ts
new file mode 100644
index 0000000000..7aacc2f614
--- /dev/null
+++ b/statuses/statuses.d.ts
@@ -0,0 +1,21 @@
+// Type definitions for http-errors v1.2.1
+// Project: https://github.com/jshttp/statuses
+// Definitions by: Tanguy Krotoff
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module 'statuses' {
+ interface Status {
+ [code: number]: string;
+ [msg: string]: any | number;
+
+ codes: Array;
+ redirect: {[code: number]: boolean};
+ empty: {[code: number]: boolean};
+ retry: {[code: number]: boolean};
+
+ (code: number | string): number;
+ }
+
+ var status: Status;
+ export = status;
+}