/**
 * Audit middleware for automatic capture of MCP operations
 */
import type { CallToolResult, ResourceContents } from '@modelcontextprotocol/sdk/types.js';
import { AuditLogger } from './audit-logger.js';
import { AuditActor, AuditContext } from './types.js';
export interface AuditMiddlewareOptions {
    auditLogger: AuditLogger;
    extractActor?: (request: any) => AuditActor;
    extractContext?: (request: any) => Partial<AuditContext>;
    skipPaths?: string[];
    performanceThreshold?: number;
}
export declare class AuditMiddleware {
    private auditLogger;
    private extractActor;
    private extractContext;
    private skipPaths;
    private performanceThreshold;
    private activeRequests;
    constructor(options: AuditMiddlewareOptions);
    /**
     * Wrap a tool handler with audit logging
     */
    wrapToolHandler<T extends (...args: any[]) => Promise<CallToolResult>>(toolName: string, handler: T): T;
    /**
     * Wrap a resource handler with audit logging
     */
    wrapResourceHandler<T extends (...args: any[]) => Promise<ResourceContents>>(resourceType: string, handler: T): T;
    /**
     * Create an Express-style middleware for HTTP transports
     */
    createHttpMiddleware(): (req: any, res: any, next: any) => Promise<void>;
    /**
     * Log a tool call
     */
    private logToolCall;
    /**
     * Log a resource read
     */
    private logResourceRead;
    /**
     * Default actor extraction
     */
    private defaultExtractActor;
    /**
     * Default context extraction
     */
    private defaultExtractContext;
    /**
     * Extract resource info from URI
     */
    private extractResourceFromUri;
    /**
     * Calculate performance metrics
     */
    private calculatePerformance;
    /**
     * Create audit context for a request
     */
    static createContext(request?: any): AuditContext;
    /**
     * Create audit actor from various sources
     */
    static createActor(source: any): AuditActor;
}
//# sourceMappingURL=audit-middleware.d.ts.map