type Value<T> = PromiseLike<T> | T;
type Resolve<T> = (value: Value<T>) => void;
type Reject = (reason?: any) => void;
type Options = {
    signal?: AbortSignal;
    timeout?: number;
};
export declare class StatefulPromise<T> extends Promise<T> {
    constructor(executor?: (resolve: Resolve<T>, reject: Reject) => void, options?: Options);
    isPending: boolean;
    isFulfilled: boolean;
    isRejected: boolean;
    state: "fulfilled" | "pending" | "rejected";
    result?: T | unknown;
    readonly resolve: (value: Value<T>) => void;
    readonly reject: (reason?: any) => void;
    static resolved<U>(value: U): StatefulPromise<U>;
    static rejected(reason: unknown): StatefulPromise<never>;
}
export {};
//# sourceMappingURL=StatefulPromise.d.ts.map