export declare function Promisify<T>(o: T | PromiseLike<T>): PromiseLike<T>;
export declare type ResolveHandler<T, TResult> = (value: T) => TResult | PromiseLike<TResult>;
export declare type RejectHandler<TResult> = (reason: any) => void | TResult | PromiseLike<TResult>;
export declare function isPromiseLike<T>(o: T | PromiseLike<T>): o is PromiseLike<T>;
export declare function when<T>(promises: PromiseLike<T>[]): PromiseLike<T[]>;
export declare function whenOrTimeout<T>(promise: PromiseLike<T>, timeoutInMs: number): PromiseLike<T>;
export declare enum PromiseStatus {
    Pending = 0,
    Resolved = 1,
    Rejected = 2
}
