/** * Rate limiter for controlling concurrent API requests across agents. * Prevents 429 (Too Many Requests) errors when running agents in parallel. * * Uses a token bucket algorithm with configurable: * - maxConcurrent: Maximum simultaneous in-flight requests * - minDelayMs: Minimum delay between consecutive request starts */ export interface RateLimiterConfig { /** Maximum concurrent requests allowed */ maxConcurrent: number; /** Minimum delay between consecutive requests (ms) */ minDelayMs: number; /** Maximum queue size before rejecting new requests */ maxQueueSize?: number; } export declare class RateLimiter { private readonly config; private inFlight; private lastRequestTime; private queue; private processing; constructor(config: RateLimiterConfig); /** * Schedule a function for rate-limited execution. * Returns a promise that resolves when the function completes. */ schedule(fn: () => Promise): Promise; /** * Execute multiple functions with rate limiting. * Similar to Promise.allSettled but rate-limited. */ scheduleAll(fns: Array<() => Promise>): Promise[]>; /** Current number of in-flight requests */ get activeRequests(): number; /** Current queue depth */ get queueDepth(): number; private processQueue; private executeRequest; private waitForSlot; private delay; } /** * Pre-configured rate limiters for common provider limits. */ export declare const ProviderRateLimiters: { /** OpenAI: 500 RPM on most tiers → ~8 RPS */ readonly openai: () => RateLimiter; /** Anthropic: 50 RPM on free tier → ~0.8 RPS */ readonly anthropic: () => RateLimiter; /** Google: 60 RPM on free tier → 1 RPS */ readonly google: () => RateLimiter; /** Conservative: Safe for any provider */ readonly conservative: () => RateLimiter; }; //# sourceMappingURL=rate-limiter.d.ts.map