export interface RefreshPromise { promise: Promise; cacheDuration: number; } export declare function singletonPromise(rp: undefined | RefreshPromise, method: () => Promise, cacheDuration?: number): RefreshPromise; export declare class TimeoutError extends Error { promise: Promise; constructor(promise: Promise); } export declare function timeoutPromise(timeout: number, promise: Promise): Promise; export declare function timeoutFunction(timeout: number, f: (isTimedOut: () => boolean) => Promise): Promise; export declare function createPromiseDebouncer(): (func: () => Promise) => Promise; export declare function createMapPromiseDebouncer(): (key: any, debounce: number, func: () => Promise) => Promise;