export type RateLimitSettings = { enabled: boolean; hitsPerMinute: number; /** * Determines how many times request should be repeated when API returns status `429`. * * Default is `3` */ retryCount: number; /** * Determines how often retry should happen. * * Time units - `milliseconds`. * * Default is `1000` */ timeBetweenRetries: number; }; type Task = () => Promise | T; export declare class RateLimiter { private rateLimitSettings; private requestQueue; private completedQueueSize; private isThrottleActive; private isRequestInProgress; private isSleeping; constructor(rateLimitSettings?: Partial); private disableThrottle; private taskCleanUp; private execute; addAndExecute(request: Task, hits: number, priority?: boolean): void; isEnabled(): boolean; setRateLimitSettings: (settings: Partial) => void; getRetryCount: () => number; getTimeBetweenRetries: () => number; setIsSleeping: (isSleeping: boolean) => void; } export {};