import { EventEmitter } from './EventEmitter';
export declare class Task {
    fn: any;
    payload?: any;
    constructor(fn: any, payload?: any);
    run(): any;
}
export declare class TaskQueue extends EventEmitter<'start' | 'pause' | 'drain'> {
    private tasks;
    private currentCount;
    private status;
    private concurrency;
    constructor(concurrency?: number);
    add(...tasks: Task[]): void;
    addAndStart(...tasks: Task[]): void;
    start(): void;
    private takeHeadTask;
    private runNext;
    pause(): void;
}
