/**
 * A TaskCompletionSource-like class that allows promises to be resolved or rejected whenever.
 */
export declare class Deferred<T> {
    state?: any | undefined;
    readonly promise: Promise<T>;
    private resolvePromise;
    private rejectPromise;
    private _isResolved;
    private _isRejected;
    private _error;
    constructor(state?: any | undefined);
    /**
     * Gets a value indicating whether this promise has been completed.
     */
    get isCompleted(): boolean;
    /**
     * Gets a value indicating whether this promise is resolved.
     */
    get isResolved(): boolean;
    /**
     * Gets a value indicating whether this promise is rejected.
     */
    get isRejected(): boolean;
    /**
     * Gets the reason for promise rejection, if applicable.
     */
    get error(): any;
    /**
     * Resolves the promise.
     * @param value The result of the promise.
     */
    resolve(value: T | PromiseLike<T>): boolean;
    /**
     * Rejects the promise.
     * @param reason The reason for rejecting the promise.
     */
    reject(reason?: any): boolean;
}
