import type { SimulationContext, SimulationFunction } from './types.js'; export interface RequireHeaderOptions { status?: number; message?: string; code?: string; } export interface RequireBearerTokenOptions extends RequireHeaderOptions { headerName?: string; } export interface RateLimitOptions { windowMs: number; max: number; key?: (context: SimulationContext) => string; status?: number; message?: string; code?: string; } /** * Wraps a simulation handler so it returns 401 (by default) when a header is missing. */ export declare const requireHeader: (name: string, options?: RequireHeaderOptions) => >(handler: SimulationFunction) => SimulationFunction; /** * Requires `Authorization: Bearer ` and validates the token. */ export declare const requireBearerToken: (validate: (token: string, context: SimulationContext) => boolean | Promise, options?: RequireBearerTokenOptions) => >(handler: SimulationFunction) => SimulationFunction; /** * Simple in-memory sliding-window rate limiter keyed by a function of the request. */ export declare const rateLimit: (options: RateLimitOptions) => >(handler: SimulationFunction) => SimulationFunction; //# sourceMappingURL=helpers.d.ts.map