import type { IncomingHttpHeaders, IncomingMessage } from "node:http"; export declare class RateLimitError extends Error { readonly status = 429; constructor(message?: string); } export declare function assertRateLimit(key: string, options: { blockMs: number; limit: number; windowMs: number; message?: string; }): void; export declare function recordRateLimitFailure(key: string, options: { blockMs: number; limit: number; windowMs: number; }): void; export declare function clearRateLimit(key: string): void; export declare function forceRateLimitSweepForTests(now?: number): void; export declare function rateLimitBucketCountForTests(): number; export declare function resetRateLimitStateForTests(): void; export declare function requestRateLimitKey(request: IncomingMessage, scope: string, subject?: string): string; export declare function requestClientAddress(headers: IncomingHttpHeaders, remoteAddress: string | undefined): string;