export interface ProgressOptions {
    maxWidth?: number | string;
    height?: number | string;
    duration?: number;
    hideDuration?: number;
    zIndex?: number | string;
    className?: string;
    color?: string;
    timing?: string;
    position?: 'top' | 'bottom' | 'none';
    container?: HTMLElement;
}
export declare class Progress {
    private _el;
    private _state;
    private _opts;
    private _appearRafId;
    private _disappearTid;
    private _pendingPromises;
    private _delayTimers;
    private _detachListeners;
    constructor(options?: ProgressOptions);
    setOptions(newOptions: ProgressOptions): void;
    private _css;
    get isInProgress(): boolean;
    start(): void;
    end(immediately?: boolean): void;
    private _detach;
    promise<T>(p: Promise<T>, { delay, min, waitAnimation }?: {
        delay?: number;
        min?: number;
        waitAnimation?: boolean;
    }): Promise<T>;
}
