export declare const noop: () => void;
export declare type Task<TaskResultType> = () => Promise<TaskResultType>;
export interface TaskQueueLike {
    add(task: Task<void>, onFinally?: () => void | Promise<void>): void;
    run<T>(task: Task<T>): Promise<T>;
}
export declare class TaskQueue implements TaskQueueLike {
    #private;
    private readonly onError;
    constructor(concurrency?: number, onError?: (error: Error, retry: () => void) => void);
    get size(): number;
    get concurrency(): number;
    add(task: any, onFinally?: any): void;
    run<T>(task: Task<T>): Promise<T>;
    onIdle(): Promise<void>;
    onEmpty(): Promise<void>;
    clear(): void;
    pause(): void;
}
//# sourceMappingURL=task-queue.d.ts.map