/// <reference types="node" />
import { EventEmitter } from 'events';
import { Config, PublicEvents } from './types';
export default class PromiseQueue<T> extends EventEmitter {
    static EVENTS: PublicEvents;
    private static PRIVATE_EVENTS;
    private _items;
    private _promise;
    private _promises;
    private _concurrence;
    private _shouldStopOnError;
    private _running;
    private _hasError;
    constructor(config: Config<T>);
    start(): void;
    cancel(): void;
    private _setupListeners;
    private _executePromise;
    private _runNextPromise;
    private _canRun;
}