export declare class ExtendablePromise<T = unknown> implements Promise<PromiseSettledResult<T>[]> {
    #private;
    constructor(f?: T | PromiseLike<T>);
    waitUntil(f?: T | PromiseLike<T>): void;
    /** @deprecated Name of this property might change */
    get settled(): boolean;
    then<TResult1 = PromiseSettledResult<T>[], TResult2 = never>(onfulfilled?: ((value: PromiseSettledResult<T>[]) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): Promise<PromiseSettledResult<T>[] | TResult>;
    finally(onfinally?: (() => void) | null): Promise<PromiseSettledResult<T>[]>;
    readonly [Symbol.toStringTag] = "ExtendablePromise";
}
export interface PromiseFulfilledResult<T> {
    status: "fulfilled";
    value: T;
}
export interface PromiseRejectedResult {
    status: "rejected";
    reason: any;
}
export declare type PromiseSettledResult<T> = PromiseFulfilledResult<T> | PromiseRejectedResult;
