export declare enum PromiseState { None = 0, Resolved = 1, Rejected = 2, } export interface IPromise { Result(): PromiseResult; ContinueWith(continuationCallback: (promiseResult: PromiseResult) => TContinuationResult): IPromise; ContinueWithPromise(continuationCallback: (promiseResult: PromiseResult) => IPromise): IPromise; OnSuccessContinueWith(continuationCallback: (result: T) => TContinuationResult): IPromise; OnSuccessContinueWithPromise(continuationCallback: (result: T) => IPromise): IPromise; On(successCallback: (result: T) => void, errorCallback: (error: string) => void): IPromise; Finally(callback: () => void): IPromise; } export interface IDeferred { State(): PromiseState; Promise(): IPromise; Resolve(result: T): IDeferred; Reject(error: string): IDeferred; } export declare class PromiseResult { protected isCompleted: boolean; protected isError: boolean; protected error: string; protected result: T; constructor(promiseResultEventSource: PromiseResultEventSource); readonly IsCompleted: boolean; readonly IsError: boolean; readonly Error: string; readonly Result: T; ThrowIfError: () => void; } export declare class PromiseResultEventSource { private onSetResult; private onSetError; SetResult: (result: T) => void; SetError: (error: string) => void; On: (onSetResult: (result: T) => void, onSetError: (error: string) => void) => void; } export declare class PromiseHelper { static WhenAll: (promises: Promise[]) => Promise; static FromResult: (result: TResult) => Promise; static FromError: (error: string) => Promise; } export declare class Promise implements IPromise { private sink; constructor(sink: Sink); Result: () => PromiseResult; ContinueWith: (continuationCallback: (promiseResult: PromiseResult) => TContinuationResult) => Promise; OnSuccessContinueWith: (continuationCallback: (result: T) => TContinuationResult) => Promise; ContinueWithPromise: (continuationCallback: (promiseResult: PromiseResult) => Promise) => Promise; OnSuccessContinueWithPromise: (continuationCallback: (result: T) => Promise) => Promise; On: (successCallback: (result: T) => void, errorCallback: (error: string) => void) => Promise; Finally: (callback: () => void) => Promise; } export declare class Deferred implements IDeferred { private promise; private sink; constructor(); State: () => PromiseState; Promise: () => Promise; Resolve: (result: T) => Deferred; Reject: (error: string) => Deferred; } export declare class Sink { private state; private promiseResult; private promiseResultEvents; private successHandlers; private errorHandlers; constructor(); readonly State: PromiseState; readonly Result: PromiseResult; Resolve: (result: T) => void; Reject: (error: string) => void; on: (successCallback: (result: T) => void, errorCallback: (error: string) => void) => void; private ExecuteSuccessCallback; private ExecuteErrorCallback; private DetachHandlers; }