diff --git a/gulp-rev/gulp-rev-tests.ts b/gulp-rev/gulp-rev-tests.ts
new file mode 100644
index 0000000000..37661424f1
--- /dev/null
+++ b/gulp-rev/gulp-rev-tests.ts
@@ -0,0 +1,36 @@
+///
+///
+
+import gulp = require('gulp');
+import rev = require('gulp-rev');
+
+gulp.task('default', () =>
+ gulp.src('src/*.css')
+ .pipe(rev())
+ .pipe(gulp.dest('dist'))
+);
+
+gulp.task('default', () =>
+ // by default, gulp would pick `assets/css` as the base,
+ // so we need to set it explicitly:
+ gulp.src(['assets/css/*.css', 'assets/js/*.js'], {base: 'assets'})
+ .pipe(gulp.dest('build/assets')) // copy original assets to build dir
+ .pipe(rev())
+ .pipe(gulp.dest('build/assets')) // write rev'd assets to build dir
+ .pipe(rev.manifest())
+ .pipe(gulp.dest('build/assets')) // write manifest to build dir
+);
+
+gulp.task('default', () =>
+ // by default, gulp would pick `assets/css` as the base,
+ // so we need to set it explicitly:
+ gulp.src(['assets/css/*.css', 'assets/js/*.js'], {base: 'assets'})
+ .pipe(gulp.dest('build/assets'))
+ .pipe(rev())
+ .pipe(gulp.dest('build/assets'))
+ .pipe(rev.manifest({
+ base: 'build/assets',
+ merge: true // merge with the existing manifest (if one exists)
+ }))
+ .pipe(gulp.dest('build/assets'))
+);
diff --git a/gulp-rev/gulp-rev.d.ts b/gulp-rev/gulp-rev.d.ts
new file mode 100644
index 0000000000..6cd432b0de
--- /dev/null
+++ b/gulp-rev/gulp-rev.d.ts
@@ -0,0 +1,26 @@
+// Type definitions for gulp-csso v5.0.1
+// Project: https://github.com/sindresorhus/gulp-rev
+// Definitions by: Tanguy Krotoff
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module 'gulp-rev' {
+ interface IOptions {
+ base?: string;
+ cwd?: string;
+ merge?: boolean;
+ }
+
+ interface IRev {
+ (): NodeJS.ReadWriteStream;
+
+ manifest(): NodeJS.ReadWriteStream;
+ manifest(path?: string): NodeJS.ReadWriteStream;
+ manifest(options?: IOptions): NodeJS.ReadWriteStream;
+ manifest(path?: string, options?: IOptions): NodeJS.ReadWriteStream;
+ }
+
+ var rev: IRev;
+ export = rev;
+}