diff --git a/query-string/query-string-tests.ts b/query-string/query-string-tests.ts
new file mode 100644
index 0000000000..597d270f2e
--- /dev/null
+++ b/query-string/query-string-tests.ts
@@ -0,0 +1,13 @@
+///
+
+import qs = require('query-string');
+
+qs.stringify({ foo: 'bar' });
+qs.stringify({ foo: 'bar', bar: 'baz' });
+
+qs.parse('?foo=bar');
+qs.parse('#foo=bar');
+qs.parse('&foo=bar&foo=baz');
+
+qs.extract('http://foo.bar/?abc=def&hij=klm');
+qs.extract('http://foo.bar/?foo=bar');
diff --git a/query-string/query-string.d.ts b/query-string/query-string.d.ts
new file mode 100644
index 0000000000..e4d76d0030
--- /dev/null
+++ b/query-string/query-string.d.ts
@@ -0,0 +1,27 @@
+// Type definitions for query-string v3.0.0
+// Project: https://github.com/sindresorhus/query-string
+// Definitions by: Sam Verschueren
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "query-string" {
+ /**
+ * Parse a query string into an object.
+ * Leading ? or # are ignored, so you can pass location.search or location.hash directly.
+ * @param str
+ */
+ export function parse(str: string): any;
+
+ /**
+ * Stringify an object into a query string, sorting the keys.
+ *
+ * @param obj
+ */
+ export function stringify(obj: any): string;
+
+ /**
+ * Extract a query string from a URL that can be passed into .parse().
+ *
+ * @param str
+ */
+ export function extract(str: string): string;
+}