export type FutureStates = number;
export namespace FutureStates {
    let INITIAL: number;
    let PENDING: number;
    let RESOLVED: number;
    let REJECTED: number;
}
export default Future;
declare class Future {
    /**
     * @template T
     * @param {function(resolve:function(T), reject:function(reason))} resolver
     * @constructor
     * @extends Promise<T>
     * @class
     */
    constructor(resolver: any);
    resolver: any;
    state: number;
    callbacksRejection: any[];
    rejectionReason: any;
    callbacksResolution: any[];
    resolvedValue: any;
    /**
     *
     * @param reason
     * @private
     */
    private __handleRejection;
    /**
     *
     * @private
     */
    private __clearCallbacks;
    /**
     *
     * @private
     */
    private __handleResolution;
    resolve(): void;
    /**
     *
     * @param {function(T)} resolvedCallback
     * @param {function(reason?)} [rejectionCallback]
     */
    then(resolvedCallback: (arg0: T) => any, rejectionCallback?: (arg0: reason | null) => any): void;
    /**
     *
     * @param {function} rejectionCallback
     */
    catch(rejectionCallback: Function): void;
}
//# sourceMappingURL=Future.d.ts.map