/** Deferred object that represents promise with its resolve/reject methods */
export declare class Deferred<T> {
    protected _status: 'pending' | 'resolved' | 'rejected';
    protected _value: T | undefined;
    protected _callbacks: [(arg: T) => void, (arg?: any) => void];
    /** @returns promise based on {@link Deferred} state*/
    get promise(): Promise<T>;
    /** Resolves deferred promise */
    resolve(arg: T): Deferred<T>;
    /** Rejects deferred promise */
    reject(arg?: any): Deferred<T>;
}
/** Creates Deferred Object that wraps promise and its resolve and reject callbacks */
export declare function createDeferred<T>(): Deferred<T>;
