export interface Deferred extends Promise { readonly state: "pending" | "fulfilled" | "rejected"; resolve(value?: T | PromiseLike): void; reject(reason?: any): void; } /** Creates a Promise with the `reject` and `resolve` functions * placed as methods on the promise object itself. It allows you to do: * * ```ts * import { deferred } from "./deferred.ts"; * * const p = deferred(); * // ... * p.resolve(42); * ``` */ export declare function deferred(): Deferred;