diff --git a/swig-email-templates/swig-email-templates-tests.ts b/swig-email-templates/swig-email-templates-tests.ts
new file mode 100644
index 000000000..ef845b8e1
--- /dev/null
+++ b/swig-email-templates/swig-email-templates-tests.ts
@@ -0,0 +1,16 @@
+///
+
+import emailTemplates = require('swig-email-templates');
+
+var options = {
+ root: "root"
+};
+
+emailTemplates(options, function(err, render) {
+ var context = {
+ meatballCount: 9001,
+ };
+ render('meatball-sandwich.html', context, function(err, html, text) {
+ // send html/text email
+ });
+});
diff --git a/swig-email-templates/swig-email-templates.d.ts b/swig-email-templates/swig-email-templates.d.ts
new file mode 100644
index 000000000..4e382cdf1
--- /dev/null
+++ b/swig-email-templates/swig-email-templates.d.ts
@@ -0,0 +1,21 @@
+// Type definitions for swig-email-templates
+// Project: https://github.com/andrewrk/swig-email-templates
+// Definitions by: Adam Babcock
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module "swig-email-templates" {
+ import swig = require('swig');
+
+ interface SwigRender {
+ (file:string, context:T, callback:(err:any, html:string, text:string)=>any):any;
+ }
+
+ interface SwigEmailTemplatesOptions extends swig.SwigOptions {
+ root?: string;
+ }
+
+ function init(options:SwigEmailTemplatesOptions, cb:(err:any, render:SwigRender)=>any):any;
+ export = init
+}