/** Common result from any rate limiter */ interface LimitResult { success: boolean; limit: number; remaining: number; reset: number; } /** Anything that exposes a .limit(identifier) method */ interface RateLimiterInstance { limit(identifier: string): Promise; } export interface RateLimitManagerOptions { redisUrl?: string; redisToken?: string; standardRedisUrl?: string; hourlyLimit?: number; fiveMinuteLimit?: number; minuteLimit?: number; hourlyPrefix?: string; fiveMinutePrefix?: string; minutePrefix?: string; timeout?: number; } export declare class RateLimitManager { private ioRedisClient?; hourlyRateLimit: RateLimiterInstance; fiveMinuteRateLimit: RateLimiterInstance; minuteRateLimit: RateLimiterInstance; constructor(options: RateLimitManagerOptions); checkRateLimits(identifier: string): Promise<{ success: boolean; limit: number; remaining: number; reset: number; }>; disconnect(): Promise; } export {}; //# sourceMappingURL=RateLimitManager.d.ts.map