import { type LoggerOptions } from '@d-fischer/logger'; import type { RateLimiter, RateLimiterRequestOptions } from '../RateLimiter'; export interface TimeBasedRateLimiterConfig { bucketSize: number; timeFrame: number; logger?: Partial; doRequest: (req: Req) => Promise; } export declare class TimeBasedRateLimiter implements RateLimiter { private _queue; private _usedFromBucket; private readonly _bucketSize; private readonly _timeFrame; private readonly _callback; private readonly _counterTimers; private _paused; private _destroyed; private readonly _logger; constructor({ logger, bucketSize, timeFrame, doRequest }: TimeBasedRateLimiterConfig); request(req: Req, options?: RateLimiterRequestOptions): Promise; clear(): void; pause(): void; resume(): void; destroy(): void; private _runRequest; private _runNextRequest; }