diff --git a/babelify/babelify-tests.ts b/babelify/babelify-tests.ts
new file mode 100644
index 0000000000..6ace8462a9
--- /dev/null
+++ b/babelify/babelify-tests.ts
@@ -0,0 +1,23 @@
+///
+
+import babelify = require("babelify");
+
+module BabelifyTest {
+
+ export function whatDidTheEs6Say(srcPath: string, opts?: babelify.BabelifyOptions) {
+ opts.extensions = opts.extensions || undefined;
+ opts.sourceMapsAbsolute = opts.sourceMapsAbsolute || false;
+ var dst: NodeJS.ReadWriteStream;
+
+ babelify(""); // 'opts' are optional
+
+ babelify(srcPath, opts).on("error", function (err: any) {
+ console.error("babelify error: ", err);
+ });
+
+ babelify.configure(opts)(srcPath).pipe(dst);
+ }
+
+}
+
+export = BabelifyTest;
\ No newline at end of file
diff --git a/babelify/babelify.d.ts b/babelify/babelify.d.ts
new file mode 100644
index 0000000000..2637814a64
--- /dev/null
+++ b/babelify/babelify.d.ts
@@ -0,0 +1,46 @@
+// Type definitions for babelify v7.3.0
+// Project: https://github.com/babel/babelify
+// Definitions by: TeamworkGuy2
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+///
+
+/** Browserify transform for Babel
+ */
+declare module 'babelify' {
+ import stream = require("stream");
+ import babel = require("babel-core");
+
+
+ function Babelify(filename: string, opts?: Babelify.BabelifyOptions): Babelify.BabelifyObject;
+
+ module Babelify {
+
+ export interface BabelifyConstructor {
+ (filename: string, opts: Babelify.BabelifyOptions): Babelify.BabelifyObject;
+ }
+
+ /** In addition to the various purposes documented here, all of the babelify options are passed to babel which passes them on to babel.transform() when each file is transformed */
+ export interface BabelifyOptions extends babel.TransformOptions {
+ /** These are passed to babel.util.canCompile() for each filename
+ * default: null
+ */
+ extensions?: string | string[];
+
+ /** if true, a 'sourceFileName' property with a value equal to the current file being transformed is included with the options passed to babel.transform()
+ * default: false
+ */
+ sourceMapsAbsolute?: boolean;
+ }
+
+ export class BabelifyObject extends stream.Transform {
+ _transform(buf: string | Buffer, encoding: string, callback: () => void): void;
+ _flush(callback: () => void): void;
+ }
+
+ export function configure(opts: Babelify.BabelifyOptions): (filename: string) => Babelify.BabelifyObject;
+ }
+
+ export = Babelify;
+}