interface OnProgressData { queueLength: number; countRunning: number; } type ResolveValue = any; interface ThrottlerArgs { maxConcurrent?: number; delayMs?: number; onProgress?: (data: OnProgressData) => void; onResult?: (result: ResolveValue) => void; onError?: (err: ResolveValue) => void; onEnd?: (results: ResolveValue[], errors: ResolveValue[]) => void; } export interface IThrottler { setDelayMs(delayMs: number): void; add: (fn: () => Promise) => void; } export default class Throttler implements IThrottler { private readonly decrementTimeouts; private readonly queue; private readonly results; private readonly errors; private maxConcurrent; private delayMs; onProgress?: (data: OnProgressData) => void; onResult?: (result: ResolveValue) => void; onError?: (err: ResolveValue) => void; onEnd?: (results: ResolveValue[], errors: ResolveValue[]) => void; constructor(args?: ThrottlerArgs); setDelayMs(delayMs: number): void; add(fn: () => Promise): void; private run; } export {};