// Type definitions for typescript-deferred v0.1.5 // Project: https://github.com/DirtyHairy/typescript-deferred // Definitions by: Christian Speckner // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped export interface ImmediateSuccessCB { (value: T): TP; } export interface ImmediateErrorCB { (err: any): TP; } export interface DeferredSuccessCB { (value: T): ThenableInterface; } export interface DeferredErrorCB { (error: any): ThenableInterface; } export interface ThenableInterface { then(successCB?: DeferredSuccessCB, errorCB?: DeferredErrorCB): ThenableInterface; then(successCB?: DeferredSuccessCB, errorCB?: ImmediateErrorCB): ThenableInterface; then(successCB?: ImmediateSuccessCB, errorCB?: DeferredErrorCB): ThenableInterface; then(successCB?: ImmediateSuccessCB, errorCB?: ImmediateErrorCB): ThenableInterface; } export interface PromiseInterface extends ThenableInterface { then(successCB?: DeferredSuccessCB, errorCB?: DeferredErrorCB): PromiseInterface; then(successCB?: DeferredSuccessCB, errorCB?: ImmediateErrorCB): PromiseInterface; then(successCB?: ImmediateSuccessCB, errorCB?: DeferredErrorCB): PromiseInterface; then(successCB?: ImmediateSuccessCB, errorCB?: ImmediateErrorCB): PromiseInterface; otherwise(errorCB?: DeferredErrorCB): PromiseInterface; otherwise(errorCB?: ImmediateErrorCB): PromiseInterface; always(errorCB?: DeferredErrorCB): PromiseInterface; always(errorCB?: ImmediateErrorCB): PromiseInterface; } export interface DeferredInterface { resolve(value?: ThenableInterface): DeferredInterface; resolve(value?: T): DeferredInterface; reject(error?: any): DeferredInterface; promise: PromiseInterface; } declare export function create(): DeferredInterface; declare export function when(value?: ThenableInterface): PromiseInterface; declare export function when(value?: T): PromiseInterface;