diff --git a/s3rver/s3rver-tests.ts b/s3rver/s3rver-tests.ts
new file mode 100644
index 0000000000..afa7e92273
--- /dev/null
+++ b/s3rver/s3rver-tests.ts
@@ -0,0 +1,14 @@
+///
+
+import S3rver = require('s3rver');
+
+var s3rver = new S3rver({
+ port: 5694,
+ hostname: 'localhost',
+ silent: true,
+ indexDocument: 'index.html',
+ errorDocument: '',
+ directory: '/tmp/s3rver_test_directory'
+}).run((err, hostname, port, directory) => {});
+
+s3rver.close();
diff --git a/s3rver/s3rver.d.ts b/s3rver/s3rver.d.ts
new file mode 100644
index 0000000000..e34650986e
--- /dev/null
+++ b/s3rver/s3rver.d.ts
@@ -0,0 +1,32 @@
+// Type definitions for S3rver
+// Project: https://github.com/jamhall/s3rver
+// Definitions by: David Broder-Rodgers
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module "s3rver" {
+ import * as http from "http";
+
+ class S3rver {
+ constructor(options: S3rverOptions)
+ setPort(port: number): S3rver;
+ setHostname(hostname: string): S3rver;
+ setDirectory(directory: string): S3rver;
+ setSilent(silent: boolean): S3rver;
+ setIndexDocument(indexDocument: string): S3rver;
+ setErrorDocument(errorDocument: string): S3rver;
+ run(callback: (error: Error, hostname: string, port: number, directory: string) => void): http.Server;
+ }
+
+ interface S3rverOptions {
+ port?: number;
+ hostname?: string;
+ silent?: boolean;
+ indexDocument?: string;
+ errorDocument?: string;
+ directory: string;
+ }
+
+ export = S3rver;
+}