diff --git a/gulp-flatten/gulp-flatten-tests.ts b/gulp-flatten/gulp-flatten-tests.ts
new file mode 100644
index 000000000..ee5622564
--- /dev/null
+++ b/gulp-flatten/gulp-flatten-tests.ts
@@ -0,0 +1,17 @@
+///
+///
+
+import gulp = require("gulp");
+import flatten = require("gulp-flatten");
+
+gulp.task("flatten:simple", () => {
+ gulp.src(["files/**/*.txt"])
+ .pipe(flatten())
+ .pipe(gulp.dest("build"));
+});
+
+gulp.task("flatten:newPath", () => {
+ gulp.src(["files/**/*.txt"])
+ .pipe(flatten({ newPath: "new/path" }))
+ .pipe(gulp.dest("build"));
+});
diff --git a/gulp-flatten/gulp-flatten.d.ts b/gulp-flatten/gulp-flatten.d.ts
new file mode 100644
index 000000000..ccd9cedf1
--- /dev/null
+++ b/gulp-flatten/gulp-flatten.d.ts
@@ -0,0 +1,17 @@
+// Type definitions for gulp-flatten
+// Project: https://github.com/armed/gulp-flatten
+// Definitions by: Keita Kagurazaka
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module "gulp-flatten" {
+
+ interface IOptions {
+ newPath: string;
+ }
+
+ function flatten(options?: IOptions): NodeJS.ReadWriteStream;
+
+ export = flatten;
+}