export interface RateLimiterOptions { maxConcurrent?: number; delayMs?: number; maxQueueSize?: number; } export declare class RateLimiter { protected options: RateLimiterOptions; private running; private queue; private lastExecutionTime; constructor(options?: RateLimiterOptions); schedule(fn: () => Promise): Promise; private waitForSlot; private processQueue; getStats(): { running: number; queued: number; maxConcurrent: number | undefined; }; clear(): void; } export declare class AdaptiveRateLimiter extends RateLimiter { private consecutiveErrors; private baseDelayMs; constructor(options?: RateLimiterOptions); schedule(fn: () => Promise): Promise; private isRateLimitError; }