/** * Token bucket rate limiter (per-IP) */ /** Maximum unique IPs tracked by rate limiter to prevent memory exhaustion */ export declare const MAX_RATE_LIMIT_BUCKETS = 10000; export declare class RateLimiter { private readonly buckets; private readonly maxTokens; private readonly windowMs; private readonly maxBuckets; constructor(maxTokens: number, windowMs: number, maxBuckets?: number); isAllowed(ip: string): boolean; private evictOldest; cleanup(): void; } //# sourceMappingURL=rate-limiter.d.ts.map