diff --git a/riotcontrol/riotcontrol-tests.ts b/riotcontrol/riotcontrol-tests.ts
new file mode 100644
index 000000000..b3eee8b2e
--- /dev/null
+++ b/riotcontrol/riotcontrol-tests.ts
@@ -0,0 +1,41 @@
+///
+
+import riotcontrol = require('riotcontrol');
+
+{
+ let store: RiotControl.Store;
+ let result: void;
+ result = riotcontrol.addStore(store);
+}
+
+{
+ let events: string;
+ let fn: Function;
+ let result: void;
+ result = riotcontrol.on(events, fn);
+}
+
+{
+ let name: string;
+ let fn: Function;
+ let result: void;
+ result = riotcontrol.one(name, fn);
+}
+
+{
+ let events: string;
+ let fn: Function;
+ let result: void;
+ result = riotcontrol.off(events);
+ result = riotcontrol.off(events, fn);
+}
+
+{
+ let name: string;
+ let arg: any;
+ let result: void;
+ result = riotcontrol.trigger(name);
+ result = riotcontrol.trigger(name, arg);
+ result = riotcontrol.trigger(name, arg, arg);
+ result = riotcontrol.trigger(name, arg, arg, arg);
+}
diff --git a/riotcontrol/riotcontrol.d.ts b/riotcontrol/riotcontrol.d.ts
new file mode 100644
index 000000000..0fcafcf28
--- /dev/null
+++ b/riotcontrol/riotcontrol.d.ts
@@ -0,0 +1,26 @@
+// Type definitions for RiotControl
+// Project: https://github.com/jimsparkman/RiotControl
+// Definitions by: Ilya Mochalov
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module RiotControl {
+ interface Store {
+ on(events: string, fn: Function): Store;
+ one(name: string, fn: Function): Store;
+ off(events: string, fn?: Function): Store;
+ trigger(name: string, ...args: any[]): Store;
+ }
+
+ var _stores: Store[];
+
+ function addStore(store: Store): void;
+
+ function on(events: string, fn: Function): void;
+ function one(name: string, fn: Function): void;
+ function off(events: string, fn?: Function): void;
+ function trigger(name: string, ...args: any[]): void;
+}
+
+declare module "riotcontrol" {
+ export = RiotControl;
+}