diff --git a/gulp-html-replace/gulp-html-replace-tests.ts b/gulp-html-replace/gulp-html-replace-tests.ts
new file mode 100644
index 0000000000..8739921e8d
--- /dev/null
+++ b/gulp-html-replace/gulp-html-replace-tests.ts
@@ -0,0 +1,80 @@
+///
+///
+///
+
+import * as gulp from 'gulp';
+import * as htmlreplace from 'gulp-html-replace';
+
+// Examples taken from README.md of the gulp-html-replace project:
+// https://www.npmjs.com/package/gulp-html-replace
+
+// Simple examples
+gulp.task('simple1', () => {
+ gulp.src('src')
+ .pipe(htmlreplace({ js: 'js/main.js' }))
+ .pipe(gulp.dest('dest'));
+});
+
+gulp.task('simple2', () => {
+ gulp.src('src')
+ .pipe(htmlreplace({ js: ['js/monster.js', 'js/hero.js'] }))
+ .pipe(gulp.dest('dest'));
+});
+
+// Advanced examples
+gulp.task('advanced1', () => {
+ gulp.src('src')
+ .pipe(htmlreplace({
+ js: 'js/main.js',
+ tpl: '
'
+ }))
+ .pipe(gulp.dest('dest'));
+});
+
+gulp.task('advanced2', () => {
+ gulp.src('src')
+ .pipe(htmlreplace({
+ js: ['data-main.js', 'require-src.js'],
+ tpl: '
'
+ }))
+ .pipe(gulp.dest('dest'));
+});
+
+// Extended replacements
+gulp.task('ext1', () => {
+ gulp.src('src')
+ .pipe(htmlreplace({
+ js: {
+ src: null,
+ tpl: ''
+ }
+ }))
+ .pipe(gulp.dest('dest'));
+});
+
+gulp.task('ext2', () => {
+ gulp.src('src')
+ .pipe(htmlreplace({
+ js: {
+ src: 'dir',
+ tpl: ''
+ }
+ }))
+ .pipe(gulp.dest('dest'));
+});
+
+// Options example
+gulp.task('options1', () => {
+ gulp.src('src')
+ .pipe(htmlreplace({
+ js: {
+ src: null,
+ tpl: ''
+ }
+ }, {
+ keepUnassigned: false,
+ keepBlockTags: false,
+ resolvePaths: false
+ }))
+ .pipe(gulp.dest('dest'));
+});
diff --git a/gulp-html-replace/gulp-html-replace.d.ts b/gulp-html-replace/gulp-html-replace.d.ts
new file mode 100644
index 0000000000..19762294dd
--- /dev/null
+++ b/gulp-html-replace/gulp-html-replace.d.ts
@@ -0,0 +1,29 @@
+// Type definitions for gulp-html-replace v1.5.5
+// Project: https://www.npmjs.com/package/gulp-html-replace
+// Definitions by: Peter Juras
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+///
+
+declare module "gulp-html-replace" {
+ interface AdvancedTask {
+ src: string | string[];
+ tpl: string;
+ }
+
+ interface Tasks {
+ [taskId: string] : string | string[] | AdvancedTask;
+ }
+
+ interface Options {
+ keepUnassigned?: boolean;
+ keepBlockTags?: boolean;
+ resolvePaths?: boolean;
+ }
+
+ interface HtmlReplace {
+ (tasks: Tasks, options?: Options) : NodeJS.ReadWriteStream;
+ }
+
+ const htmlReplace : HtmlReplace;
+ export = htmlReplace;
+}