diff --git a/knockout/knockout.amd.d.ts b/knockout/knockout.amd.d.ts
new file mode 100644
index 000000000..093478ab4
--- /dev/null
+++ b/knockout/knockout.amd.d.ts
@@ -0,0 +1,80 @@
+// Type definitions for Knockout 2.2 (as an AMD module)
+// Project: http://knockoutjs.com
+// Definitions by: Boris Yankov
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+///
+
+declare module 'knockout' {
+ export var utils: KnockoutUtils;
+ export var memoization: KnockoutMemoization;
+ export var bindingHandlers: KnockoutBindingHandlers;
+ export var virtualElements: KnockoutVirtualElements;
+ export var extenders: KnockoutExtenders;
+ export function applyBindings(viewModel: any, rootNode?: any): void;
+ export function applyBindingsToDescendants(viewModel: any, rootNode: any): void;
+ export function applyBindingsToNode(node: Element, options: any, viewModel: any): void;
+ export var subscribable: KnockoutSubscribableStatic;
+ export var observable: KnockoutObservableStatic;
+ export var computed: KnockoutComputedStatic;
+ export var observableArray: KnockoutObservableArrayStatic;
+ export function contextFor(node: any): any;
+ export function isSubscribable(instance: any): bool;
+ export function toJSON(viewModel: any, replacer?: Function, space?: any): string;
+ export function toJS(viewModel: any): any;
+ export function isObservable(instance: any): bool;
+ export function isComputed(instance: any): bool;
+ export function dataFor(node: any): any;
+ export function removeNode(node: Element);
+ export function cleanNode(node: Element);
+ export function renderTemplate(template: Function, viewModel: any, options?: any, target?: any, renderMode?: any);
+ export function renderTemplate(template: string, viewModel: any, options?: any, target?: any, renderMode?: any);
+
+ //////////////////////////////////
+ //// templateSources.js
+ ////////////////////////////////////
+ export var templateSources: KnockoutTemplateSources;
+ ////////////////////////////////////
+ //// templateEngine.js
+ ////////////////////////////////////
+ export var templateEngine: {
+ prototype: KnockoutTemplateEngine;
+ new (): KnockoutTemplateEngine;
+ };
+ ////////////////////////////////////
+ //// templateRewriting.js
+ ////////////////////////////////////
+ export var templateRewriting: {
+ ensureTemplateIsRewritten(template, templateEngine, templateDocument);
+ memoizeBindingAttributeSyntax(htmlString: string, templateEngine: KnockoutTemplateEngine);
+ applyMemoizedBindingsToNextSibling(bindings);
+ };
+ ////////////////////////////////////
+ //// nativeTemplateEngine.js
+ ////////////////////////////////////
+ export var nativeTemplateEngine: {
+ prototype: KnockoutNativeTemplateEngine;
+ new (): KnockoutNativeTemplateEngine;
+ instance: KnockoutNativeTemplateEngine;
+ };
+ ////////////////////////////////////
+ //// jqueryTmplTemplateEngine.js
+ ////////////////////////////////////
+ export var jqueryTmplTemplateEngine: {
+ prototype: KnockoutTemplateEngine;
+ renderTemplateSource(templateSource, bindingContext, options);
+ createJavaScriptEvaluatorBlock(script: string): string;
+ addTemplate(templateName, templateMarkup);
+ };
+ ////////////////////////////////////
+ //// templating.js
+ ////////////////////////////////////
+ export function setTemplateEngine(templateEngine: KnockoutNativeTemplateEngine);
+ export function renderTemplate(template, dataOrBindingContext, options, targetNodeOrNodeArray, renderMode);
+ export function renderTemplateForEach(template, arrayOrObservableArray, options, targetNode, parentBindingContext);
+ export var expressionRewriting: {
+ bindingRewriteValidators: any;
+ };
+
+ ///////////////////////////////////
+ export var bindingProvider: any;
+}
\ No newline at end of file