export interface RateLimitInfo { rate: number; per: number; } export declare class RateLimiter { private readonly rate; private readonly period; private events; constructor(rate: number, period: number); wouldExceedLimit(now: number): boolean; addEvent(now: number): void; getExcess(): number; clearEvents(): void; cleanOldEvents(now: number): void; getRate(): number; getPeriod(): number; } export declare class FairUsage { readonly rateLimitInfo: RateLimitInfo[]; private readonly perEventLimiters; private readonly eventExcess; private readonly eventStackTraces; totalEventCount: number; constructor(rateLimitInfo: RateLimitInfo[]); isAllowed(eventName: string): boolean; getExcessLimiters(): Map; setStackTrace(eventName: string, stack: string): void; getStackTrace(eventName: string): string; clearStackTraces(): void; } //# sourceMappingURL=fairUsage.d.ts.map