import { Wardn } from "../wardn"; import { WardnRequest, ScanResult } from "../types"; /** * Minimal Express-compatible request interface * Avoids hard dependency on @types/express while providing type safety */ interface ExpressLikeRequest { body?: Record; headers?: Record; wardnResult?: ScanResult; [key: string]: unknown; } /** * Minimal Express-compatible response interface */ interface ExpressLikeResponse { status(code: number): ExpressLikeResponse; json(body: unknown): void; [key: string]: unknown; } /** * Express-compatible next function */ type ExpressLikeNextFunction = (error?: unknown) => void; export interface MiddlewareConfig { /** * Function to extract WardnRequest from the specific request object */ extractRequest?: (req: ExpressLikeRequest) => WardnRequest | Promise; /** * On Block callback. If not provided, defaults to 403 Forbidden. */ onBlock?: (req: ExpressLikeRequest, res: ExpressLikeResponse, result: ScanResult) => void; } export declare function createExpressMiddleware(guard: Wardn, config?: MiddlewareConfig): (req: ExpressLikeRequest, res: ExpressLikeResponse, next: ExpressLikeNextFunction) => Promise; export {};