export declare type ICommonFunction<T = any> = (...args: any[]) => T;
export default class PromiseQueue {
    process: ICommonFunction<Promise<any>>;
    maxConcurrent: number;
    retry: boolean;
    queue: any[];
    processing: Set<any>;
    processed: Set<any>;
    numRunning: number;
    runPromise: Promise<any>;
    resolve: ICommonFunction;
    reject: ICommonFunction;
    constructor(callback: ICommonFunction<Promise<any>>, options?: {
        maxConcurrent?: number;
        retry?: boolean;
    });
    add(job: any, ...args: any[]): void;
    run(): Promise<any>;
    private runJob;
    _next(): void;
    _reset(): void;
}
