export declare type RunTask = (...args: T[]) => Promise; export interface QueueContent { task: T; resolve: () => void; reject: (err?: any) => void; } export declare class Pool { private runTask; private limit; queue: Array>; processing: Array>; constructor(runTask: RunTask, limit: number); enqueue(task: T): Promise; run(item: QueueContent): void; check(): void; }