export interface RateLimiterConfiguration { rateLimit: number; duration?: number; blockDuration?: number; } export interface EndpointRateLimiterConfiguration extends RateLimiterConfiguration { endpoint: string; } export interface RateLimiterConfigurations { global: RateLimiterConfiguration; endpoints: EndpointRateLimiterConfiguration[]; } export declare class RateLimiter { private global; private endpoints; constructor({ whitelist, configurations, }: { whitelist: string[]; configurations: RateLimiterConfigurations; }); consume(ip: string, endpoint?: string): Promise; hasExceededRateLimit(ip: string, endpoint?: string): Promise; hasExceededRateLimitNoConsume(ip: string, endpoint?: string): Promise; getRateLimitedEndpoints(): string[]; isBlocked(ip: string): Promise; private buildRateLimiter; } //# sourceMappingURL=rate-limiter.d.ts.map