import type { IDisposable } from '../lifecycle/dispose/disposable.js'; export type ValueCallback = (value: T | Promise) => void; export type ProgressCallback = (value: T) => void; export interface IProgressHolder { progress(fn: ProgressCallback): Promise & IProgressHolder; } /** * a promise can resolve or reject later * @public */ export declare class DeferredPromise { #private; readonly promise: Promise & IProgressHolder; constructor(); get p(): Promise & IProgressHolder; /** * notify progress to callbacks * @param progress argument * @returns */ notify(progress: PT): this; /** * register a progress callback * @param fn progress callback function, will be called when notify is called */ protected progress(fn: ProgressCallback): IDisposable; /** * whether the promise is still working (not completed) */ get working(): boolean; /** * @deprecated use settled */ get completed(): boolean; /** * whether the promise is settled (resolved or rejected) */ get settled(): boolean; get resolved(): boolean; get rejected(): boolean; /** * resolve the promise */ complete(value: T): void; /** * reject the promise */ error(err: any): void; /** * reject the deferred with {CancelError} */ cancel(): void; get callback(): (error?: null | undefined | Error, data?: T) => void; private timer?; timeout(ms: number): { dispose: () => void; }; /** * Convert promise into deferred * returns a DeferredPromise, resolve when prev resolve, reject when prev reject */ static wrap(prev: Promise): DeferredPromise; } //# sourceMappingURL=deferred-promise.d.ts.map