import { ResponsePromise, VoidResponsePromise } from './interfaces'; import { ResponseError } from './errors'; export declare namespace promise { export function createPromise(prom: (onfulfilled: (value: T) => void, onrejected: (reason: ResponseError) => void) => void): ResponsePromise; export function createVoidPromise(prom: (onfulfilled: () => void, onrejected: (reason: ResponseError) => void) => void): VoidResponsePromise; export function createDelayedPromise(prom: (onfulfilled: (value: T) => void, onrejected: (reason: ResponseError) => void) => void): ResponsePromise; export function createDelayedVoidPromise(prom: (onfulfilled: () => void, onrejected: (reason: ResponseError) => void) => void): VoidResponsePromise; export function createFailedPromise(reason: ResponseError): ResponsePromise; export function createFailedVoidPromise(reason: ResponseError): VoidResponsePromise; export function resolve(promise: ResponsePromise, onfulfilled: (value: T) => void, onrejected: (reason: ResponseError) => void): void; export function resolveVoid(promise: VoidResponsePromise, onfulfilled: () => void, onrejected: (reason: ResponseError) => void): void; export function resolveCascade(promise1: ResponsePromise, promise2: ResponsePromise, onfulfilled: (value: T2) => void, onrejected: (reason: ResponseError) => void): void; export function resolveCascadeVoid(promise1: VoidPromise, promise2: ResponsePromise, onfulfilled: (value: T) => void, onrejected: (reason: ResponseError) => void): void; export function resolveSequentialVoid(promise1: VoidResponsePromise, promise2: VoidResponsePromise, onfulfilled: () => void, onrejected: (reason: ResponseError) => void): void; export function check(promise: ResponsePromise, onrejected: (reason: ResponseError) => void): ResponsePromise; export function checkVoid(promise: VoidResponsePromise, onrejected: (reason: ResponseError) => void): VoidResponsePromise; export function checkSpecial(promise: ResponsePromise, onrejected: (reason: ResponseError) => void, specialReason: ResponseError): ResponsePromise; export function delayPromise(promise: () => ResponsePromise): ResponsePromise; export function delayVoidPromise(promise: () => VoidResponsePromise): VoidResponsePromise; export function allDelayed(promises: VoidResponsePromise[]): VoidResponsePromise; export function raceDelayed(promises: VoidResponsePromise[]): VoidResponsePromise; export function all(promises: VoidResponsePromise[]): VoidResponsePromise; export function race(promises: VoidResponsePromise[]): VoidResponsePromise; class PromiseBase { protected _status: number; protected _failure: PromiseResult[]; protected _final: VoidPromiseResult[]; protected _reason: ResponseError | undefined; constructor(); protected registerCatch(onrejected: (reason?: ResponseError) => void): void; protected registerFinally(onfinally: () => void): void; protected runReject(): void; protected runFinally(): void; } class VoidPromise extends PromiseBase implements VoidResponsePromise { private _promise; private _success; constructor(promise: (onfulfilled: () => void, onrejected: (reason: ResponseError) => void) => void); start(): VoidResponsePromise; then(onfulfilled: () => void): VoidResponsePromise; catch(onrejected: (reason?: ResponseError) => void): VoidResponsePromise; finally(onfinally: () => void): VoidResponsePromise; } class PromiseResult { private _method; constructor(method: (argument: T) => void); run(argument: T): void; } class VoidPromiseResult { private _method; constructor(method: () => void); run(): void; } export {}; }