export type Arguments = string[];
type WorkingQueue = Arguments[];
/**
 * This is not really generic but written especially for the benchmarking script.
 * It offers a work stealing thread pool executor.
 */
export declare class LimitedThreadPool {
    private readonly workingQueue;
    private readonly limit;
    private readonly parallel;
    private readonly module;
    private counter;
    private skipped;
    private currentlyRunning;
    private reportingInterval;
    private readonly timeLimitInMs;
    /**
   * Create a new parallel helper that runs the given `module` once for each list of {@link Arguments} in the `queue`.
   * The `limit` stops the execution if `<limit>` number of runs exited successfully.
   * The `parallel` parameter limits the number of parallel executions.
   */
    constructor(module: string, queue: WorkingQueue, limit: number, parallel: number, timeLimitInMs?: number);
    run(): Promise<void>;
    getStats(): {
        counter: number;
        skipped: Arguments[];
    };
    private runNext;
    private onChildExit;
}
export {};
