export declare class PromisePool<T = unknown> {
    private readonly promises;
    private waitingPromise;
    private resumeFunction;
    private _concurrency;
    private _queuedPromiseCount;
    constructor(concurrency?: number);
    get workingPromiseCount(): number;
    get concurrency(): number;
    set concurrency(concurrency: number);
    get queuedPromiseCount(): number;
    promiseAll(): Promise<T[]>;
    promiseAllSettled(): Promise<PromiseSettledResult<T>[]>;
    run(startPromise: () => Promise<T>): Promise<void>;
    runAndWaitForReturnValue<R extends T>(startPromise: () => Promise<R>): Promise<R>;
    private privateRunAndWaitForReturnValue;
    private resume;
}
