export interface ClearablePromise extends Promise { clear: () => void; } export type PTimeoutOptions = { readonly customTimers?: { setTimeout: typeof setTimeout; clearTimeout: typeof clearTimeout; }; }; export default function pTimeout(promise: PromiseLike, milliseconds: number, message?: string | Error, options?: PTimeoutOptions): ClearablePromise; export default function pTimeout(promise: PromiseLike, milliseconds: number, fallback?: () => FallbackReturnType | Promise, options?: PTimeoutOptions): ClearablePromise;