diff --git a/backbone/backbone.d.ts b/backbone/backbone.d.ts
index f49d3663d..b257e3c69 100644
--- a/backbone/backbone.d.ts
+++ b/backbone/backbone.d.ts
@@ -1,245 +1,247 @@
-// Type definitions for Backbone 0.9.10
-// Project: http://backbonejs.org/
-// Definitions by: Boris Yankov
-// Definitions: https://github.com/borisyankov/DefinitelyTyped
-
-
-///
-
-declare module Backbone {
-
- export interface AddOptions extends Silenceable {
- at: number;
- }
-
- export interface CreateOptions extends Silenceable {
- wait: bool;
- }
-
- export interface HistoryOptions extends Silenceable {
- pushState: bool;
- root: string;
- }
-
- export interface NavigateOptions {
- trigger: bool;
- }
-
- export interface RouterOptions {
- routes: any;
- }
-
- export interface Silenceable {
- silent: bool;
- }
-
- interface on { (eventName: string, callback: (...args: any[]) => void, context?: any): any; }
- interface off { (eventName?: string, callback?: (...args: any[]) => void, context?: any): any; }
- interface trigger { (eventName: string, ...args: any[]): any; }
- interface bind { (eventName: string, callback: (...args: any[]) => void, context?: any): any; }
- interface unbind { (eventName?: string, callback?: (...args: any[]) => void, context?: any): any; }
-
- declare class Events {
- on(eventName: string, callback: (...args:any[]) => void, context?: any): any;
- off(eventName?: string, callback?: (...args:any[]) => void, context?: any): any;
- trigger(eventName: string, ...args: any[]): any;
- bind(eventName: string, callback: (...args:any[]) => void, context?: any): any;
- unbind(eventName?: string, callback?: (...args:any[]) => void, context?: any): any;
- }
-
- export class ModelBase extends Events {
- fetch(options?: JQueryAjaxSettings);
- url(): string;
- parse(response);
- toJSON(): any;
- }
-
- export class Model extends ModelBase {
-
- static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality
-
- attributes: any;
- changed: any[];
- cid: string;
- id: any;
- idAttribute: string;
- urlRoot() : string;
-
- constructor (attributes?: any, options?: any);
- initialize(attributes?: any);
-
- get(attributeName: string): any;
- set(attributeName: string, value: any);
- set(obj: any);
-
- change();
- changedAttributes(attributes?: any): any[];
- clear(options?: Silenceable);
- clone(): Model;
- defaults(): any;
- destroy(options?: JQueryAjaxSettings);
- escape(attribute: string);
- has(attribute: string): bool;
- hasChanged(attribute?: string): bool;
- isNew(): bool;
- isValid(): string;
- previous(attribute: string): any;
- previousAttributes(): any[];
- save(attributes?: any, options?: JQueryAjaxSettings);
- unset(attribute: string, options?: Silenceable);
- validate(attributes: any): any;
- }
-
- export class Collection extends ModelBase {
-
- static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality
-
- model: Model;
- models: any;
- collection: Model;
- length: number;
-
- constructor (models?: any, options?: any);
-
- comparator(element: Model): number;
- comparator(element: Model): string;
- comparator(compare: Model, to?: Model): number;
-
- add(model: Model, options?: AddOptions);
- add(models: Model[], options?: AddOptions);
- at(index: number): Model;
- get(id: any): Model;
- create(attributes: any, options?: CreateOptions): Model;
- pluck(attribute: string): any[];
- push(model: Model, options?: AddOptions);
- pop(options?: Silenceable);
- remove(model: Model, options?: Silenceable);
- remove(models: Model[], options?: Silenceable);
- reset(models?: Model[], options?: Silenceable);
- shift(options?: Silenceable);
- sort(options?: Silenceable);
- unshift(model: Model, options?: AddOptions);
- where(properies: any): Model[];
-
- all(iterator: (element: Model, index: number) => bool, context?: any): bool;
- any(iterator: (element: Model, index: number) => bool, context?: any): bool;
- collect(iterator: (element: Model, index: number, context?: any) => any[], context?: any): any[];
- compact(): Model[];
- contains(value: any): bool;
- countBy(iterator: (element: Model, index: number) => any): any[];
- countBy(attribute: string): any[];
- detect(iterator: (item: any) => bool, context?: any): any; // ???
- difference(...model: Model[]): Model[];
- drop(): Model;
- drop(n: number): Model[];
- each(iterator: (element: Model, index: number, list?: any) => void, context?: any);
- every(iterator: (element: Model, index: number) => bool, context?: any): bool;
- filter(iterator: (element: Model, index: number) => bool, context?: any): Model[];
- find(iterator: (element: Model, index: number) => bool, context?: any): Model;
- first(): Model;
- first(n: number): Model[];
- flatten(shallow?: bool): Model[];
- foldl(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any;
- forEach(iterator: (element: Model, index: number, list?: any) => void, context?: any);
- include(value: any): bool;
- indexOf(element: Model, isSorted?: bool): number;
- initial(): Model;
- initial(n: number): Model[];
- inject(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any;
- intersection(...model: Model[]): Model[];
- isEmpty(object: any): bool;
- invoke(methodName: string, arguments?: any[]);
- last(): Model;
- last(n: number): Model[];
- lastIndexOf(element: Model, fromIndex?: number): number;
- map(iterator: (element: Model, index: number, context?: any) => any[], context?: any): any[];
- max(iterator?: (element: Model, index: number) => any, context?: any): Model;
- min(iterator?: (element: Model, index: number) => any, context?: any): Model;
- object(...values: any[]): any[];
- reduce(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any;
- select(iterator: any, context?: any): any[];
- size(): number;
- shuffle(): any[];
- some(iterator: (element: Model, index: number) => bool, context?: any): bool;
- sortBy(iterator: (element: Model, index: number) => number, context?: any): Model[];
- sortBy(attribute: string, context?: any): Model[];
- sortedIndex(element: Model, iterator?: (element: Model, index: number) => number): number;
- range(stop: number, step?: number);
- range(start: number, stop: number, step?: number);
- reduceRight(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any[];
- reject(iterator: (element: Model, index: number) => bool, context?: any): Model[];
- rest(): Model;
- rest(n: number): Model[];
- tail(): Model;
- tail(n: number): Model[];
- toArray(): any[];
- union(...model: Model[]): Model[];
- uniq(isSorted?: bool, iterator?: (element: Model, index: number) => bool): Model[];
- without(...values: any[]): Model[];
- zip(...model: Model[]): Model[];
- }
-
- export class Router extends Events {
-
- static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality
-
- routes: any;
-
- constructor (options?: RouterOptions);
- initialize (options?: RouterOptions);
- route(route: string, name: string, callback?: (...parameter: any[]) => void);
- navigate(fragment: string, options?: NavigateOptions);
- }
-
- export var history: History;
- export class History {
- start(options?: HistoryOptions);
- navigate(fragment: string, options: any);
- pushSate();
- }
-
- export interface ViewOptions {
- model?: Backbone.Model;
- collection?: Backbone.Collection;
- el?: Element;
- id?: string;
- className?: string;
- tagName?: string;
- attributes?: any[];
- }
-
- export class View extends Events {
-
- static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality
-
- constructor (options?: ViewOptions);
-
- $(selector: string): any;
- model: Model;
- make(tagName: string, attrs?, opts?): View;
- setElement(element: HTMLElement, delegate?: bool);
- tagName: string;
- events: any;
-
- el: HTMLElement;
- $el;
- setElement(element);
- attributes;
- $(selector);
- render();
- remove();
- make(tagName, attributes?, content?);
- //delegateEvents: any;
- delegateEvents(events?: any): any;
- undelegateEvents();
- }
-
- // SYNC
- function sync(method, model, options?: JQueryAjaxSettings);
- var emulateHTTP: bool;
- var emulateJSONBackbone: bool;
-
- // Utility
- function noConflict(): Backbone;
- function setDomLibrary(jQueryNew);
-}
+// Type definitions for Backbone 0.9.10
+// Project: http://backbonejs.org/
+// Definitions by: Boris Yankov
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+///
+
+declare module Backbone {
+
+ export interface AddOptions extends Silenceable {
+ at: number;
+ }
+
+ export interface CreateOptions extends Silenceable {
+ wait: bool;
+ }
+
+ export interface HistoryOptions extends Silenceable {
+ pushState: bool;
+ root: string;
+ }
+
+ export interface NavigateOptions {
+ trigger: bool;
+ }
+
+ export interface RouterOptions {
+ routes: any;
+ }
+
+ export interface Silenceable {
+ silent: bool;
+ }
+
+ interface on { (eventName: string, callback: (...args: any[]) => void, context?: any): any; }
+ interface off { (eventName?: string, callback?: (...args: any[]) => void, context?: any): any; }
+ interface trigger { (eventName: string, ...args: any[]): any; }
+ interface bind { (eventName: string, callback: (...args: any[]) => void, context?: any): any; }
+ interface unbind { (eventName?: string, callback?: (...args: any[]) => void, context?: any): any; }
+
+ declare class Events {
+ on(eventName: string, callback: (...args:any[]) => void, context?: any): any;
+ off(eventName?: string, callback?: (...args:any[]) => void, context?: any): any;
+ trigger(eventName: string, ...args: any[]): any;
+ bind(eventName: string, callback: (...args:any[]) => void, context?: any): any;
+ unbind(eventName?: string, callback?: (...args:any[]) => void, context?: any): any;
+ }
+
+ export class ModelBase extends Events {
+ fetch(options?: JQueryAjaxSettings);
+ url(): string;
+ parse(response);
+ toJSON(): any;
+ }
+
+ export class Model extends ModelBase {
+
+ static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality
+
+ attributes: any;
+ changed: any[];
+ cid: string;
+ id: any;
+ idAttribute: string;
+ urlRoot() : string;
+
+ constructor (attributes?: any, options?: any);
+ initialize(attributes?: any);
+
+ get(attributeName: string): any;
+ set(attributeName: string, value: any);
+ set(obj: any);
+
+ change();
+ changedAttributes(attributes?: any): any[];
+ clear(options?: Silenceable);
+ clone(): Model;
+ defaults(): any;
+ destroy(options?: JQueryAjaxSettings);
+ escape(attribute: string);
+ has(attribute: string): bool;
+ hasChanged(attribute?: string): bool;
+ isNew(): bool;
+ isValid(): string;
+ previous(attribute: string): any;
+ previousAttributes(): any[];
+ save(attributes?: any, options?: JQueryAjaxSettings);
+ unset(attribute: string, options?: Silenceable);
+ validate(attributes: any): any;
+ }
+
+ export class Collection extends ModelBase {
+
+ static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality
+
+ model: Model;
+ models: any;
+ collection: Model;
+ length: number;
+
+ constructor (models?: any, options?: any);
+
+ comparator(element: Model): number;
+ comparator(element: Model): string;
+ comparator(compare: Model, to?: Model): number;
+
+ add(model: Model, options?: AddOptions);
+ add(models: Model[], options?: AddOptions);
+ at(index: number): Model;
+ get(id: any): Model;
+ create(attributes: any, options?: CreateOptions): Model;
+ pluck(attribute: string): any[];
+ push(model: Model, options?: AddOptions);
+ pop(options?: Silenceable);
+ remove(model: Model, options?: Silenceable);
+ remove(models: Model[], options?: Silenceable);
+ reset(models?: Model[], options?: Silenceable);
+ shift(options?: Silenceable);
+ sort(options?: Silenceable);
+ unshift(model: Model, options?: AddOptions);
+ where(properies: any): Model[];
+
+ all(iterator: (element: Model, index: number) => bool, context?: any): bool;
+ any(iterator: (element: Model, index: number) => bool, context?: any): bool;
+ collect(iterator: (element: Model, index: number, context?: any) => any[], context?: any): any[];
+ compact(): Model[];
+ contains(value: any): bool;
+ countBy(iterator: (element: Model, index: number) => any): any[];
+ countBy(attribute: string): any[];
+ detect(iterator: (item: any) => bool, context?: any): any; // ???
+ difference(...model: Model[]): Model[];
+ drop(): Model;
+ drop(n: number): Model[];
+ each(iterator: (element: Model, index: number, list?: any) => void, context?: any);
+ every(iterator: (element: Model, index: number) => bool, context?: any): bool;
+ filter(iterator: (element: Model, index: number) => bool, context?: any): Model[];
+ find(iterator: (element: Model, index: number) => bool, context?: any): Model;
+ first(): Model;
+ first(n: number): Model[];
+ flatten(shallow?: bool): Model[];
+ foldl(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any;
+ forEach(iterator: (element: Model, index: number, list?: any) => void, context?: any);
+ include(value: any): bool;
+ indexOf(element: Model, isSorted?: bool): number;
+ initial(): Model;
+ initial(n: number): Model[];
+ inject(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any;
+ intersection(...model: Model[]): Model[];
+ isEmpty(object: any): bool;
+ invoke(methodName: string, arguments?: any[]);
+ last(): Model;
+ last(n: number): Model[];
+ lastIndexOf(element: Model, fromIndex?: number): number;
+ map(iterator: (element: Model, index: number, context?: any) => any[], context?: any): any[];
+ max(iterator?: (element: Model, index: number) => any, context?: any): Model;
+ min(iterator?: (element: Model, index: number) => any, context?: any): Model;
+ object(...values: any[]): any[];
+ reduce(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any;
+ select(iterator: any, context?: any): any[];
+ size(): number;
+ shuffle(): any[];
+ some(iterator: (element: Model, index: number) => bool, context?: any): bool;
+ sortBy(iterator: (element: Model, index: number) => number, context?: any): Model[];
+ sortBy(attribute: string, context?: any): Model[];
+ sortedIndex(element: Model, iterator?: (element: Model, index: number) => number): number;
+ range(stop: number, step?: number);
+ range(start: number, stop: number, step?: number);
+ reduceRight(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any[];
+ reject(iterator: (element: Model, index: number) => bool, context?: any): Model[];
+ rest(): Model;
+ rest(n: number): Model[];
+ tail(): Model;
+ tail(n: number): Model[];
+ toArray(): any[];
+ union(...model: Model[]): Model[];
+ uniq(isSorted?: bool, iterator?: (element: Model, index: number) => bool): Model[];
+ without(...values: any[]): Model[];
+ zip(...model: Model[]): Model[];
+ }
+
+ export class Router extends Events {
+
+ static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality
+
+ routes: any;
+
+ constructor (options?: RouterOptions);
+ initialize (options?: RouterOptions);
+ route(route: string, name: string, callback?: (...parameter: any[]) => void);
+ navigate(fragment: string, options?: NavigateOptions);
+ }
+
+ export var history: History;
+ export class History {
+ start(options?: HistoryOptions);
+ navigate(fragment: string, options: any);
+ pushSate();
+ getFragment(fragment?: string, forcePushState?: bool): string;
+ getHash(window?: Window): string;
+ }
+
+ export interface ViewOptions {
+ model?: Backbone.Model;
+ collection?: Backbone.Collection;
+ el?: Element;
+ id?: string;
+ className?: string;
+ tagName?: string;
+ attributes?: any[];
+ }
+
+ export class View extends Events {
+
+ static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality
+
+ constructor (options?: ViewOptions);
+
+ $(selector: string): any;
+ model: Model;
+ make(tagName: string, attrs?, opts?): View;
+ setElement(element: HTMLElement, delegate?: bool);
+ tagName: string;
+ events: any;
+
+ el: HTMLElement;
+ $el;
+ setElement(element);
+ attributes;
+ $(selector);
+ render();
+ remove();
+ make(tagName, attributes?, content?);
+ //delegateEvents: any;
+ delegateEvents(events?: any): any;
+ undelegateEvents();
+ }
+
+ // SYNC
+ function sync(method, model, options?: JQueryAjaxSettings);
+ var emulateHTTP: bool;
+ var emulateJSONBackbone: bool;
+
+ // Utility
+ function noConflict(): Backbone;
+ function setDomLibrary(jQueryNew);
+}