import { TimeoutExpired } from './objectUtils';
/**
 * Wraps a promise in a Task api for convenience.
 */
export declare class Task<T = void> {
    protected _promise: Promise<T>;
    private resolveFn;
    private rejectFn;
    private _isCompleted;
    constructor();
    readonly promise: Promise<T>;
    readonly isCompleted: boolean;
    resolve: (result: T | PromiseLike<T>) => void;
    reject: (reason: any) => void;
}
/**
 * A task that can expire after the given time.
 */
export declare class ExpirableTask<T = void> extends Task<T | typeof TimeoutExpired> {
    constructor(timeoutMS: number);
}
//# sourceMappingURL=Task.d.ts.map