// Type definitions for delay 2.0 // Project: https://github.com/sindresorhus/delay#readme // Definitions by: BendingBender // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 export = delay; declare function delay(ms: number): delay.PDelayedPassThroughThunk; declare function delay(ms: number, value: T): delay.PDelayedThunk; declare namespace delay { function reject(ms: number, rejectionValue?: any): PDelayedThunk; class CancelError extends Error { readonly name: 'CancelError'; constructor(message?: string); } type PDelayedThunk = ((value: any) => DelayedPromiseLike) & DelayedPromiseLike; type PDelayedPassThroughThunk = ((value: TValue) => DelayedPromiseLike) & DelayedPromiseLike; interface DelayedPromiseLike { then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null): Promise; catch(onrejected?: ((reason: any) => TResult | PromiseLike) | null): Promise; cancel(): void; } }