diff --git a/archiver/archiver-test.ts b/archiver/archiver-test.ts
new file mode 100644
index 0000000000..dcd71ca905
--- /dev/null
+++ b/archiver/archiver-test.ts
@@ -0,0 +1,14 @@
+///
+///
+
+import Archiver = require('archiver');
+import FS = require('fs');
+
+var archiver = Archiver.create('zip');
+
+var writeStream = FS.createWriteStream('./archiver.d.ts');
+var readStream = FS.createReadStream('./archiver.d.ts');
+
+archiver.pipe(writeStream);
+archiver.append(readStream, {name: 'archiver.d.ts'});
+archiver.finalize();
\ No newline at end of file
diff --git a/archiver/archiver.d.ts b/archiver/archiver.d.ts
new file mode 100644
index 0000000000..570e1424a6
--- /dev/null
+++ b/archiver/archiver.d.ts
@@ -0,0 +1,41 @@
+// Type definitions for archiver v0.15.0
+// Project: https://github.com/archiverjs/node-archiver
+// Definitions by: Esri
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+/* =================== USAGE ===================
+
+ import Archiver = require('archiver);
+ var archiver = Archiver.create('zip');
+ archiver.pipe(FS.createWriteStream('xxx'));
+ archiver.append(FS.createReadStream('xxx'));
+ archiver.finalize();
+
+ =============================================== */
+
+///
+declare module "archiver" {
+ import * as FS from 'fs';
+
+ interface nameInterface {
+ name?: string;
+ }
+
+ interface Archiver {
+ pipe(writeStream: FS.WriteStream): void;
+ append(readStream: FS.ReadStream, name: nameInterface): void;
+ finalize(): void;
+ }
+
+ interface Options {
+
+ }
+
+ function archiver(format: string, options?: Options): Archiver;
+
+ namespace archiver {
+ function create(format: string, options?: Options): Archiver;
+ }
+
+ export = archiver;
+}
\ No newline at end of file