import type { HttpMiddleware } from "../middleware/middleware-definition"; import type { HttpContext } from "../server/http-context"; export interface RateLimitOptions { windowMs?: number; max?: number; trustProxy?: boolean; keyGenerator?: (ctx: HttpContext) => string; store?: RateLimitStore; /** Maximum number of keys retained by the built-in memory store. */ memoryStoreMaxEntries?: number; } interface Counter { count: number; resetAt: number; } export interface RateLimitStore { increment(key: string, now: number, windowMs: number): Counter | Promise; prune?(now: number): void | Promise; } export declare function rateLimit(options?: RateLimitOptions): HttpMiddleware; export declare function createMemoryRateLimitStore(maxEntries?: number): RateLimitStore; export {};