diff --git a/flight/flight.d.ts b/flight/flight.d.ts
new file mode 100644
index 000000000..fd0b7d944
--- /dev/null
+++ b/flight/flight.d.ts
@@ -0,0 +1,139 @@
+///
+
+// Type definitions for Flight 1.1.1
+// Project: http://flightjs.github.com/flight/
+// Definitions by: Jonathan Hedrén
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+interface FlightAdvice {
+ after(method: string, fn: Function);
+ around(method: string, fn: Function);
+ before(method: string, fn: Function);
+}
+
+interface FlightComponent {
+ node: Element;
+ $node: JQuery;
+}
+
+interface FlightBase extends FlightAdvice, FlightComponent {
+
+ defaultAttrs(obj: Object);
+
+ select(attr: string)
+
+ initialize();
+
+ on(eventType: string, handler: Function);
+ on(selector: string, eventType: string, handler: Function);
+ on(selector: Document, eventType: string, handler: Function);
+ on(selector: Element, eventType: string, handler: Function);
+ on(selector: Element[], eventType: string, handler: Function);
+ on(selector: string, eventType: string, handler: Object);
+ on(selector: Document, eventType: string, handler: Object);
+ on(selector: Element, eventType: string, handler: Object);
+ on(selector: Element[], eventType: string, handler: Object);
+
+ off(eventType: string, handler?: Function);
+ off(selector: string, eventType: string, handler?: Function);
+ off(selector: Document, eventType: string, handler?: Function);
+ off(selector: Element, eventType: string, handler?: Function);
+ off(selector: Element[], eventType: string, handler?: Function);
+ off(selector: string, eventType: Object, handler?: Function);
+ off(selector: Document, eventType: Object, handler?: Function);
+ off(selector: Element, eventType: Object, handler?: Function);
+ off(selector: Element[], eventType: Object, handler?: Function);
+ off(selector: string, eventType: string, handler?: Object);
+ off(selector: Document, eventType: string, handler?: Object);
+ off(selector: Element, eventType: string, handler?: Object);
+ off(selector: Element[], eventType: string, handler?: Object);
+ off(selector: string, eventType: Object, handler?: Object);
+ off(selector: Document, eventType: Object, handler?: Object);
+ off(selector: Element, eventType: Object, handler?: Object);
+ off(selector: Element[], eventType: Object, handler?: Object);
+
+ trigger(eventType: string);
+ trigger(selector: string, eventType: string, eventPayload?: Object);
+ trigger(selector: Document, eventType: string, eventPayload?: Object);
+ trigger(selector: Element, eventType: string, eventPayload?: Object);
+ trigger(selector: Element[], eventType: string, eventPayload?: Object);
+ trigger(eventType: Object);
+ trigger(selector: string, eventType: Object, eventPayload?: Object);
+ trigger(selector: Document, eventType: Object, eventPayload?: Object);
+ trigger(selector: Element, eventType: Object, eventPayload?: Object);
+ trigger(selector: Element[], eventType: Object, eventPayload?: Object);
+
+ teardown();
+}
+
+interface FlightAdviceStatic {
+ withAdvice();
+}
+
+interface FlightComponentStatic {
+ (...fns: Function[]): FlightComponentStatic;
+ attachTo(selector: string, options?: Object);
+ attachTo(selector: Element, options?: Object);
+ attachTo(selector: JQuery, options?: Object);
+ teardownAll();
+}
+
+interface FlightComposeStatic {
+ mixin(base: Object, mixins: Function[]): void;
+ unlockProperty(obj, prop, op);
+}
+interface FlightLogger {
+
+}
+
+interface FlightRegistryStatic {
+ addInstance(instance);
+ allInstances: Object;
+ components: Array;
+ events: Array;
+ findComponentInfo(which);
+ findInstanceInfo(instance);
+ findInstanceInfoByNode(node);
+ off(el, type, callback);
+ on(componentOn);
+ removeComponentInfo(componentInfo);
+ removeInstance(instance);
+ reset();
+ teardown();
+ trigger();
+ withRegistration();
+}
+
+interface FlightUtilsStatic {
+ compose(fn1: Function, fn2: Function, ...fns: Function[]): Function;
+ countThen(num: number, base: Function): Function;
+ debounce(func: Function, wait: number, immediate: boolean): Function;
+ delegate(rules: Object);
+ isDomObj(obj): boolean;
+ isEnumerable(obj: Object, property): boolean;
+ merge(obj1: Object, obj2: Object, deepClone?: boolean): Object;
+ merge(obj1: Object, obj2:Object, ...args: any[]): Object;
+ push(base: Object, extra: Object, protect?: boolean);
+ throttle(func: Function, wait: number): Function;
+ toArray(obj: Object, from?: number): Array;
+ uniqueArray(array: Array): Array;
+}
+
+interface FlightEventData {
+ el: HTMLElement;
+}
+
+interface FlightStatic {
+ advice: FlightAdviceStatic;
+ component: FlightComponentStatic;
+ compose: FlightComposeStatic;
+ logger: FlightLogger;
+ registry: FlightRegistryStatic;
+ utils: FlightUtilsStatic;
+}
+
+declare module "flight" {
+ export = flight;
+}
+declare var flight: FlightStatic;
\ No newline at end of file