diff --git a/reflux/reflux.d.ts b/reflux/reflux.d.ts new file mode 100644 index 000000000..335f268ca --- /dev/null +++ b/reflux/reflux.d.ts @@ -0,0 +1,57 @@ +// Type definitions for RefluxJS +// Project: https://github.com/reflux/refluxjs +// Definitions by: Maurice de Beijer +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module RefluxCore { + + interface StoreDefinition { + listenables?: any[], + init?: Function, + getInitialState?: Function, + [propertyName: string]: any; + } + + interface ListenFn { + (...params: any[]):any, + completed: Function, + failed: Function + } + interface Listenable { + listen: ListenFn + } + + interface Subscription { + stop: Function, + listenable: Listenable + } + + interface Store { + hasListener(listenable: Listenable): boolean, + listenToMany(listenables: Listenable[]): void, + validateListening(listenable: Listenable): string, + listenTo(listenable: Listenable, callback: Function, defaultCallback?: Function): Subscription, + stopListeningTo(listenable: Listenable): boolean, + stopListeningToAll(): void, + fetchInitialState(listenable: Listenable, defaultCallback: Function): void, + trigger(state: any) + } + + interface ActionsDefinition { + [index: string]:any + } + + interface Actions { + [index: string]: Listenable + } + + function createStore(definition: StoreDefinition): Store; + + function createActions(definition: ActionsDefinition): any; + function createActions(definitions: string[]): any; +} + +declare module "reflux" { + export = RefluxCore; +} +