diff --git a/lolex/lolex-tests.ts b/lolex/lolex-tests.ts
new file mode 100644
index 000000000..10500211c
--- /dev/null
+++ b/lolex/lolex-tests.ts
@@ -0,0 +1,116 @@
+///
+
+import lolex = require("lolex");
+
+function a() {
+ var clock = lolex.createClock();
+
+ clock.setTimeout(function () {
+ console.log("The poblano is a mild chili pepper originating in the state of Puebla, Mexico.");
+ }, 15);
+
+ // ...
+
+ clock.tick(15);
+}
+
+function b() {
+ var clock = lolex.install(window);
+
+ window.setTimeout(() => {}, 15); // Schedules with clock.setTimeout
+
+ clock.uninstall();
+
+ // window.setTimeout is restored to the native implementation
+}
+
+function c() {
+ var clock = lolex.install();
+
+ // Equivalent to
+ // var clock = lolex.install(typeof global !== "undefined" ? global : window);
+}
+
+var clock: lolex.Clock;
+
+/**
+ * var clock = lolex.createClock([now])
+ */
+
+clock = lolex.createClock();
+clock = lolex.createClock(Date.now());
+
+
+/**
+ * var clock = lolex.install([context[, now[, toFake]]])
+ */
+
+clock = lolex.install();
+clock = lolex.install(window);
+clock = lolex.install(window, Date.now());
+clock = lolex.install(window, Date.now(), ['setTimeout', 'clearTimeout']);
+
+
+/**
+ * var clock = lolex.install([now[, toFake]])
+ */
+
+clock = lolex.install(Date.now());
+clock = lolex.install(Date.now(), ['setTimeout', 'clearTimeout']);
+
+
+var id: number;
+/**
+ * var id = clock.setTimeout(callback, timeout)
+ */
+
+id = clock.setTimeout(() => {}, 1000);
+
+
+/**
+ * clock.clearTimeout(id)
+ */
+
+clock.clearTimeout(id);
+
+
+/**
+ * var id = clock.setInterval(callback, timeout)
+ */
+
+id = clock.setInterval(() => {}, 1000);
+
+
+/**
+ * clock.clearInterval(id)
+ */
+
+clock.clearInterval(id);
+
+
+/**
+ * var id = clock.setImmediate(callback)
+ */
+
+id = clock.setImmediate(() => {});
+
+
+/**
+ * clock.clearImmediate(id)
+ */
+
+clock.clearImmediate(id);
+
+
+/**
+ * clock.tick(time)
+ */
+
+clock.tick(1000);
+
+
+/**
+ * clock.uninstall()
+ */
+
+clock.uninstall();
diff --git a/lolex/lolex.d.ts b/lolex/lolex.d.ts
new file mode 100644
index 000000000..bc0f0c81c
--- /dev/null
+++ b/lolex/lolex.d.ts
@@ -0,0 +1,24 @@
+// Type definitions for lolex 1.2.1
+// Project: https://github.com/sinonjs/lolex
+// Definitions by: Wim Looman
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module 'lolex' {
+ export interface Clock {
+ setTimeout(callback: () => any, timeout: number): number;
+ setInterval(callback: () => any, timeout: number): number;
+ setImmediate(callback: () => any): number;
+
+ clearTimeout(id: number): void;
+ clearInterval(id: number): void;
+ clearImmediate(id: number): void;
+
+ tick(ms: number): void;
+ uninstall(): void;
+ }
+
+ export function createClock(now?: number): Clock;
+
+ export function install(now?: number, toFake?: string[]): Clock;
+ export function install(context?: any, now?: number, toFake?: string[]): Clock;
+}