/** * COMPLIANCE & AUDIT LOGGING * Immutable audit trail, GDPR compliance, data retention */ export declare enum AuditEventType { USER_LOGIN = "user.login", USER_LOGOUT = "user.logout", API_KEY_CREATED = "api_key.created", API_KEY_REVOKED = "api_key.revoked", MODEL_REQUEST = "model.request", MODEL_RESPONSE = "model.response", DATA_EXPORT = "data.export", DATA_DELETION = "data.deletion", CONFIG_CHANGE = "config.change", PERMISSION_CHANGE = "permission.change", POLICY_VIOLATION = "policy.violation" } export declare enum ComplianceRegion { GDPR = "gdpr",// European Union CCPA = "ccpa",// California HIPAA = "hipaa",// Healthcare (US) SOC2 = "soc2",// Security standard ISO27001 = "iso27001" } export interface AuditEvent { id: string; timestamp: Date; type: AuditEventType; user_id?: string; tenant_id?: string; resource_type?: string; resource_id?: string; action: string; result: 'success' | 'failure'; ip_address?: string; user_agent?: string; metadata?: Record; compliance_flags?: ComplianceRegion[]; } export interface DataRetentionPolicy { type: string; retention_days: number; archive_after_days?: number; compliance_regions: ComplianceRegion[]; } export interface GDPRRequest { id: string; type: 'access' | 'deletion' | 'rectification' | 'portability'; user_id: string; status: 'pending' | 'processing' | 'completed' | 'failed'; created_at: Date; completed_at?: Date; result?: unknown; } export declare class AuditLogger { private events; private max_events; /** * Log audit event */ log(params: { type: AuditEventType; action: string; result: 'success' | 'failure'; user_id?: string; tenant_id?: string; resource_type?: string; resource_id?: string; ip_address?: string; user_agent?: string; metadata?: Record; compliance_flags?: ComplianceRegion[]; }): AuditEvent; /** * Query audit events */ query(filters: { user_id?: string; tenant_id?: string; type?: AuditEventType; start_date?: Date; end_date?: Date; result?: 'success' | 'failure'; limit?: number; }): AuditEvent[]; /** * Export audit trail */ export(format?: 'json' | 'csv'): string; /** * Get event count */ count(): number; /** * Clear old events */ clearOlderThan(days: number): number; private generateId; } export declare class GDPRComplianceManager { private requests; private audit_logger; constructor(audit_logger: AuditLogger); /** * Submit GDPR request */ submitRequest(type: GDPRRequest['type'], user_id: string): GDPRRequest; /** * Get request status */ getRequest(request_id: string): GDPRRequest | null; /** * Export user data (GDPR Article 20) */ exportUserData(user_id: string): Promise; /** * Delete user data (GDPR Article 17 - Right to be forgotten) */ deleteUserData(user_id: string): Promise; /** * Anonymize user data */ anonymizeUserData(user_id: string): Promise; private processRequest; private generateId; } export declare class DataRetentionManager { private policies; constructor(); /** * Register retention policy */ registerPolicy(policy: DataRetentionPolicy): void; /** * Get retention policy */ getPolicy(type: string): DataRetentionPolicy | null; /** * Check if data should be retained */ shouldRetain(type: string, created_at: Date): boolean; /** * Check if data should be archived */ shouldArchive(type: string, created_at: Date): boolean; /** * Get data age in days */ private getAgeDays; private initializeDefaultPolicies; } export declare class ComplianceReporter { private audit_logger; constructor(audit_logger: AuditLogger); /** * Generate compliance report */ generateReport(params: { region: ComplianceRegion; start_date: Date; end_date: Date; }): { region: ComplianceRegion; period: { start: Date; end: Date; }; total_events: number; events_by_type: Record; policy_violations: number; data_exports: number; data_deletions: number; }; } //# sourceMappingURL=audit-logger.d.ts.map