export interface LimitNginMemoryAlgorithm { shouldBlock(key: string): boolean; getState(key: string): T | undefined; getRemaining(key: string): number; getResetMs(key: string): number; cleanUp(): void; } export type TokenBucketEntry = { tokens: number; lastRefillTs: number; }; export type SlidingCounterEntry = { currentWindowStart: number; currentCount: number; previousCount: number; }; export declare class MemTokenBucket implements LimitNginMemoryAlgorithm { private store; private capacity; private intervalMs; private refillRatePerMs; private cleanupTimer; constructor(capacity: number, intervalInMs: number); getState(key: string): TokenBucketEntry | undefined; shouldBlock(key: string): boolean; getRemaining(key: string): number; getResetMs(key: string): number; cleanUp(): void; } export declare class MemSlidingWindowCounter implements LimitNginMemoryAlgorithm { private store; private capacity; private intervalMs; private cleanupTimer; constructor(allowedNoOfRequests: number, intervalInMs: number); getState(key: string): SlidingCounterEntry | undefined; shouldBlock(key: string): boolean; getRemaining(key: string): number; getResetMs(key: string): number; cleanUp(): void; } //# sourceMappingURL=mem.algo.d.ts.map