diff --git a/ng-command/ng-command-tests.ts b/ng-command/ng-command-tests.ts
new file mode 100644
index 000000000..77fea7b40
--- /dev/null
+++ b/ng-command/ng-command-tests.ts
@@ -0,0 +1,25 @@
+///
+///
+
+var app = angular.module('testModule', ['ng-command']);
+
+class CommandTestController {
+
+ constructor($command: ngCommand.ICommandFactory, $scope: ng.IScope, $timeout: ng.ITimeoutService) {
+
+ var cmd = $command($scope, () => {
+ return $timeout(() => {}, 0)
+ })
+
+ var cmdWithCanExecute = $command($scope, () => {
+ return $timeout(() => {}, 0)
+ }, () => false);
+
+ cmd.isExecuting === false;
+ cmd.canExecute === false;
+ cmd.execute();
+ }
+
+}
+
+app.controller('TestController', CommandTestController);
diff --git a/ng-command/ng-command.d.ts b/ng-command/ng-command.d.ts
new file mode 100644
index 000000000..f840ebea0
--- /dev/null
+++ b/ng-command/ng-command.d.ts
@@ -0,0 +1,49 @@
+// Type definitions for ng-command 0.2.0
+// Project: https://github.com/stephenlautier/ng-command
+// Definitions by: Stephen Lautier
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module ngCommand {
+
+ var ModuleName: string;
+
+ /**
+ * Command proxy object.
+ */
+ interface ICommand {
+ /**
+ * Determines whether the command is currently executing.
+ */
+ isExecuting: boolean;
+ /**
+ * Determines whether the command can execute or not.
+ */
+ canExecute: boolean;
+ /**
+ * Executes the command function.
+ */
+ execute: () => angular.IPromise;
+ }
+
+ class Command implements ICommand {
+ static id: string;
+
+ isExecuting: boolean;
+ canExecute: boolean;
+ constructor($scope: angular.IScope, execute: () => angular.IPromise, canExecute?: () => boolean);
+ execute(): angular.IPromise;
+ }
+
+ /**
+ * Command factory which creates instances of @see ICommand.
+ */
+ interface ICommandFactory {
+ /**
+ * Factory instance creator method.
+ * @param $scope Scope which will keep track of the command.
+ * @param execute The execute function when the command is executed.
+ * @param canExecute Additional function which determines whether the command can executes.
+ */
+ ($scope: angular.IScope, execute: () => angular.IPromise, canExecute?: () => boolean): ICommand;
+ }
+}