/** * Rate Limiter - Per-user and per-provider rate limiting with queuing. */ interface RateLimitConfig { maxRequests: number; windowMs: number; } export declare class RateLimiter { private userLimits; private providerLimits; private userConfig; private providerConfig; private maxQueueSize; constructor(opts?: { userLimit?: RateLimitConfig; providerLimit?: RateLimitConfig; maxQueueSize?: number; }); /** * Check if a request is allowed. If not, queues it with backpressure. * Returns a promise that resolves when the request can proceed. */ acquire(userId: string, provider: string): Promise; private checkLimit; private processQueue; /** * Get current usage stats. */ getUsage(userId?: string, provider?: string): { user?: { used: number; limit: number; windowMs: number; }; provider?: { used: number; limit: number; windowMs: number; }; }; /** * Reset all limits. */ reset(): void; } export {}; //# sourceMappingURL=rate-limiter.d.ts.map