type Executor = (resolve: (value: T | PromiseLike) => void, reject: (reason?: unknown) => void) => void; export declare abstract class Awaitable implements Pick, keyof Promise> { protected readonly boundThen: Promise['then']; protected readonly boundCatch: Promise['catch']; protected readonly boundFinally: Promise['finally']; protected _reject: (reason: unknown) => void; protected _resolve: (value: T) => void; protected constructor(executor?: Executor); get then(): (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise; get catch(): (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise; get finally(): (onfinally?: (() => void) | null | undefined) => Promise; get [Symbol.toStringTag](): string; } export {};