import { type AuditTransport } from '@memento/core'; import type Database from 'better-sqlite3'; import type { Request, RequestHandler } from 'express'; export type HttpAuditEntry = { ts: string; key_id: string; route: string; tool: string | null; owner_id: string | null; agent_id: string | null; latency_ms: number; status: number; }; export type HttpAuditMiddlewareConfig = { logPath?: string; shouldAudit?: (req: Request) => boolean; database?: Database.Database; transport?: AuditTransport; }; export type StrictAuditCoverageMiddlewareConfig = { database: Database.Database; transport?: AuditTransport; }; export declare function resolveHttpAuditKeyId(req: Request): string; export declare function extractHttpAuditToolName(req: Request): string | null; export declare function createHttpAuditMiddleware(config?: HttpAuditMiddlewareConfig): RequestHandler; /** * Strict mode checks its prerequisites before a sensitive operation runs. The * finish listener still writes the final result, but an unavailable audit * table or an unverified actor cannot allow delete/admin operations through. */ export declare function createStrictAuditCoverageMiddleware(config: StrictAuditCoverageMiddlewareConfig): RequestHandler; //# sourceMappingURL=http-audit.middleware.d.ts.map