export declare function timeout<T>(ms: number, err?: string | Error): Promise<T>;
export declare function delay<T>(ms: number, defaulValue?: T): Promise<T>;
export declare function wait<T>(ms: number): Promise<T>;
export declare function spread<T>(fn: (...args: T[]) => void): Promise<T>;
export interface ExtendedPromiseOptions {
    onCancel?: () => void;
    onProgress?: (data: any) => void;
}
export declare function extendedPromise<T>(promise: Promise<T>, options?: ExtendedPromiseOptions): ExtendedPromise<T>;
