import type { Context } from '../context.js'; type Middleware = (ctx: Context, next: () => Promise) => any; interface AuditLogEntry { id: string; timestamp: Date; userId?: string; userEmail?: string; userRoles?: string[]; action: string; resource: string; method: string; path: string; statusCode: number; duration: number; ip: string; userAgent?: string; requestBody?: any; responseBody?: any; metadata?: Record; success: boolean; errorMessage?: string; tenantId?: string; } interface AuditConfig { storage: 'file' | 'database' | 'elasticsearch' | 'custom'; storageConfig?: { filePath?: string; rotateDaily?: boolean; maxFileSize?: number; compress?: boolean; database?: any; customHandler?: (entry: AuditLogEntry) => Promise; }; includeRequestBody?: boolean; includeResponseBody?: boolean; excludePaths?: string[]; excludeUserAgents?: string[]; sensitiveFields?: string[]; onLog?: (entry: AuditLogEntry) => void; compliance?: 'SOC2' | 'GDPR' | 'HIPAA' | 'PCI-DSS'; retentionDays?: number; } interface ComplianceRule { name: string; requiredFields: string[]; dataRetention: number; encryptionRequired: boolean; anonymizeUser: boolean; } /** * Advanced Audit Logging Plugin * * Features: * - Comprehensive request/response logging * - Compliance support (SOC 2, GDPR, HIPAA, PCI-DSS) * - Multiple storage backends * - Log rotation and archival * - Sensitive data masking * - Performance impact minimization * - Async logging for non-blocking * - Query and search capabilities */ export declare function auditLog(config: AuditConfig): Middleware; /** * Query audit logs (for file storage) */ export declare function queryAuditLogs(filePath: string, filter: { userId?: string; resource?: string; action?: string; startDate?: Date; endDate?: Date; success?: boolean; }): Promise; export { type AuditLogEntry, type AuditConfig, type ComplianceRule }; //# sourceMappingURL=auditLog.d.ts.map