/**
 * Sliding-window rate limiter.
 *
 * Tracks timestamps of recent events per key and rejects new events
 * once the count within the window exceeds the configured maximum.
 */
export declare class SlidingWindowRateLimiter {
    private readonly maxPerWindow;
    private readonly windowMs;
    private state;
    constructor(maxPerWindow: number, windowMs?: number);
    /**
     * Check if a new event is allowed for the given key.
     * @param key - The rate limit bucket key.
     * @param maxOverride - Per-call limit override (uses constructor default if omitted).
     */
    check(key: string, maxOverride?: number): {
        allowed: boolean;
        retryAfterMs?: number;
    };
    reset(): void;
}
//# sourceMappingURL=rate-limiter.d.ts.map