diff --git a/numbro/numbro-commonjs-tests.ts b/numbro/numbro-commonjs-tests.ts
new file mode 100644
index 0000000000..c428a475e8
--- /dev/null
+++ b/numbro/numbro-commonjs-tests.ts
@@ -0,0 +1,44 @@
+///
+import numbro = require("numbro");
+
+var valueFormat: string = numbro(1000).format('0,0');
+// '1,000'
+
+var valueUnformat: number = numbro().unformat('($10,000.00)');
+// '-10000'
+
+var value3: Numbro = numbro(1000);
+var added: Numbro = value3.add(10);
+// 1010
+
+var value4: Numbro = numbro(1000);
+var formatValue4a: string = value4.format('0,0');
+// '1,000'
+var formatValue4b: number = value4.value();
+// 1000
+
+var value5: Numbro = numbro();
+value5.set(1000);
+var value5Num: number = value5.value();
+// 1000
+
+var value6: Numbro = numbro(1000);
+var value: number = 100;
+var difference = value6.difference(value);
+// 900
+
+var value7: Numbro = numbro(0);
+numbro.zeroFormat('N/A');
+var zeroString: string = value7.format('0.0');
+// 'N/A'
+
+var a: Numbro = numbro(1000);
+var b: Numbro = numbro(a);
+var c: Numbro = a.clone();
+
+var aVal: number = a.set(2000).value();
+// 2000
+var bVal: number = b.value();
+// 1000
+var cVal: number = c.add(10).value();
+// 1010
diff --git a/numbro/numbro-tests.ts b/numbro/numbro-tests.ts
new file mode 100644
index 0000000000..0b18e898dd
--- /dev/null
+++ b/numbro/numbro-tests.ts
@@ -0,0 +1,43 @@
+///
+
+var valueFormat: string = numbro(1000).format('0,0');
+// '1,000'
+
+var valueUnformat: number = numbro().unformat('($10,000.00)');
+// '-10000'
+
+var value3: Numbro = numbro(1000);
+var added: Numbro = value3.add(10);
+// 1010
+
+var value4: Numbro = numbro(1000);
+var formatValue4a: string = value4.format('0,0');
+// '1,000'
+var formatValue4b: number = value4.value();
+// 1000
+
+var value5: Numbro = numbro();
+value5.set(1000);
+var value5Num: number = value5.value();
+// 1000
+
+var value6: Numbro = numbro(1000);
+var value: number = 100;
+var difference = value6.difference(value);
+// 900
+
+var value7: Numbro = numbro(0);
+numbro.zeroFormat('N/A');
+var zeroString: string = value7.format('0.0');
+// 'N/A'
+
+var a: Numbro = numbro(1000);
+var b: Numbro = numbro(a);
+var c: Numbro = a.clone();
+
+var aVal: number = a.set(2000).value();
+// 2000
+var bVal: number = b.value();
+// 1000
+var cVal: number = c.add(10).value();
+// 1010
diff --git a/numbro/numbro.d.ts b/numbro/numbro.d.ts
new file mode 100644
index 0000000000..a2c1f8d7a7
--- /dev/null
+++ b/numbro/numbro.d.ts
@@ -0,0 +1,48 @@
+// Type definitions for Numbro.js
+// Project: https://github.com/foretagsplatsen/numbro
+// Definitions by: Vincent Bortone
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+interface NumbroLanguage {
+ delimiters: {
+ thousands: string;
+ decimal: string;
+ };
+ abbreviations: {
+ thousand: string;
+ million: string;
+ billion: string;
+ trillion: string;
+ };
+ ordinal(num: number): string;
+ currency: {
+ symbol: string;
+ };
+}
+
+interface Numbro {
+ (value?: any): Numbro;
+ version: string;
+ isNumbro: boolean;
+ language(key: string, values?: NumbroLanguage): Numbro;
+ zeroFormat(format: string): string;
+ clone(): Numbro;
+ format(inputString: string): string;
+ unformat(inputString: string): number;
+ value(): number;
+ valueOf(): number;
+ set (value: any): Numbro;
+ add(value: any): Numbro;
+ subtract(value: any): Numbro;
+ multiply(value: any): Numbro;
+ divide(value: any): Numbro;
+ difference(value: any): number;
+}
+
+declare var numbro: Numbro;
+
+declare module "numbro" {
+
+ export = numbro;
+
+}