// Type definitions for Flux // Project: http://facebook.github.io/flux/ // Definitions by: Steve Baker // Definitions: https://github.com/borisyankov/DefinitelyTyped declare module 'flux' { /** * Dispatcher class * Create an instance to use throughout the application. * Or extend it to create a derived dispatcher class. * * Specify a type in the 'TPayload' generic argument to use strongly-typed payloads, * otherwise specify 'any' * * Examples: * var dispatcher = new flux.Dispatcher() * var typedDispatcher = new flux.Dispatcher() * class DerivedDispatcher extends flux.Dispatcher { } */ export class Dispatcher { /** * Create an instance of the Dispatcher class to use throughout the application. * * Specify a type in the 'TPayload' generic argument to use strongly-typed payloads, * otherwise specify 'any' * * Examples: * var dispatcher = new flux.Dispatcher() * var typedDispatcher = new flux.Dispatcher() */ constructor() /** * Registers a callback that will be invoked with every payload sent to the dispatcher. * Returns a string token to identify the callback to be used with waitFor() or unregister. */ register(callback: (payload: TPayload) => void): string /** * Unregisters a callback with the given ID token */ unregister(id: string): void /** * Waits for the callbacks with the specified IDs to be invoked before continuing execution * of the current callback. This method should only be used by a callback in response * to a dispatched payload. */ waitFor(IDs: string[]): void /** * Dispatches a payload to all registered callbacks */ dispatch(payload: TPayload): void /** * Gets whether the dispatcher is currently dispatching */ isDispatching(): boolean } }