diff --git a/gulp-uglify/gulp-uglify-tests.ts b/gulp-uglify/gulp-uglify-tests.ts
new file mode 100644
index 0000000000..e4f1f0d8a0
--- /dev/null
+++ b/gulp-uglify/gulp-uglify-tests.ts
@@ -0,0 +1,24 @@
+///
+///
+import gulp = require("gulp");
+import uglify = require("gulp-uglify");
+
+
+gulp.task('compress', function() {
+ var tsResult = gulp.src('lib/*.ts')
+ .pipe(uglify())
+ .pipe(gulp.dest('dist'));
+});
+
+gulp.task('compress2', function() {
+ var tsResult = gulp.src('lib/*.ts')
+ .pipe(uglify({
+ mangle: false,
+ preserverComments: "some",
+ compress: false,
+ output: {
+ max_line_len: 300
+ }
+ }))
+ .pipe(gulp.dest('dist'));
+});
\ No newline at end of file
diff --git a/gulp-uglify/gulp-uglify.d.ts b/gulp-uglify/gulp-uglify.d.ts
new file mode 100644
index 0000000000..28ad91b93d
--- /dev/null
+++ b/gulp-uglify/gulp-uglify.d.ts
@@ -0,0 +1,128 @@
+// Type definitions for gulp-uglify
+// Project: https://github.com/terinjokes/gulp-uglify
+// Definitions by: Christopher Haws
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module "gulp-uglify" {
+ function GulpUglify(options?: IGulpUglifyOptions): NodeJS.ReadWriteStream;
+
+ interface IGulpUglifyOptions {
+ /**
+ * Pass false to skip mangling names.
+ */
+ mangle?: boolean;
+
+ /**
+ * Pass if you wish to specify additional output options. The defaults are optimized for best compression.
+ */
+ output?: IOutputOptions;
+
+ /**
+ * Pass an object to specify custom compressor options. Pass false to skip compression completely.
+ */
+ compress?: boolean;
+
+ /**
+ * A convenience option for options.output.comments. Defaults to preserving no comments.
+ * all - Preserve all comments in code blocks
+ * some - Preserve comments that start with a bang (!) or include a Closure Compiler directive (@preserve, @license, @cc_on)
+ * function - Specify your own comment preservation function. You will be passed the current node and the current comment and are expected to return either true or false.
+ */
+ preserverComments?: string|((node, comment) => boolean);
+ }
+
+ interface IOutputOptions {
+ /**
+ * Start indentation on every line (only when `beautify`)
+ */
+ indent_start?: number;
+
+ /**
+ * Indentation level (only when `beautify`)
+ */
+ indent_level?: number;
+
+ /**
+ * Quote all keys in object literals?
+ */
+ quote_keys?: boolean;
+
+ /**
+ * Add a space after colon signs?
+ */
+ space_colon?: boolean;
+
+ /**
+ * Output ASCII-safe? (encodes Unicode characters as ASCII)
+ */
+ ascii_only?: boolean;
+
+ /**
+ * Escape "