import { R as RateLimitStore, a as StoreEntry, B as BlockRecord } from '../types-BK5pGTGr.js'; export { F as FixedWindowEntry, S as SlidingWindowEntry } from '../types-BK5pGTGr.js'; interface MemoryStoreOptions { /** * Maximum unique keys held in memory at once. * When the cap is reached the oldest entry is evicted (LRU-style). * Set to `0` to disable the cap. * @default 10_000 */ maxKeys?: number; } /** * Default in-process storage backend. * * Uses two plain Maps — one for rate-limit trackers, one for block records. * Map insertion order provides free LRU eviction: the first key is always * the oldest when we need to make room for a new one. * * Not suitable for multi-process deployments; implement RateLimitStore with * a shared backend (Redis, Valkey, …) for that case. */ declare class MemoryStore implements RateLimitStore { private readonly entries; private readonly blocks; private readonly maxKeys; constructor({ maxKeys }?: MemoryStoreOptions); getEntry(key: string): StoreEntry | null; setEntry(key: string, entry: StoreEntry): void; deleteEntry(key: string): void; getBlock(key: string): BlockRecord | null; setBlock(key: string, record: BlockRecord): void; deleteBlock(key: string): void; resetKey(key: string): void; resetAll(): void; entryCount(): number; blockedCount(): number; cleanup(windowMs: number): void; destroy(): void; private evictIfFull; } export { BlockRecord, MemoryStore, type MemoryStoreOptions, RateLimitStore, StoreEntry };