/** * Resolve method signature. * * @public */ export type Resolver = (value: R) => void /** * Reject method signature. * * @public */ export type Rejection = (reason?: string | Error | unknown) => void /** * Abstract deferred promise. * * @public */ export interface Deferral { /** Abort signal, if provided at construction. */ readonly signal?: AbortSignal /** Root promise instance. */ promise(): Promise /** Internal resolve function. */ resolve(value: R): void /** Reject root promise. */ reject(reason?: string | Error | unknown): void /** Alias to await root promise. */ untilResolved(): Promise /** Test if deferral has already been resolved or rejected. */ isComplete(): boolean }