// Core exports export { audit } from './services/audit.service'; export type { AuditConfig, AuditEvent } from './types'; // Privacy-preserving audit exports export { privacyAuditLogger } from './services/privacyAuditLogger'; export type { PHIFields } from './services/privacyAuditLogger'; // Utility exports export { hashUserId, generateSalt, createPHIReference, parsePHIReference } from './utils/crypto'; // Service exports for advanced usage export { hashMappingService } from './services/hashMapping'; export { clickhouseService } from './services/clickhouse'; // Hooks export { useAuditLog } from './hooks/useAuditLog'; export { useAuditStream } from './hooks/useAuditStream'; export { useUserActivity } from './hooks/useUserActivity'; export { useAuditSearch } from './hooks/useAuditSearch'; export { usePrivacyAuditLog, usePHIFieldTracking } from './hooks/usePrivacyAuditLog'; // Components export { AuditLogViewer } from './components/AuditLogViewer'; export { ActivityTimeline } from './components/ActivityTimeline'; export { AuditEventDetails } from './components/AuditEventDetails'; export { AuditSearchBar } from './components/AuditSearchBar'; // Utilities export { AuditFormatter } from './utils/formatter'; export { AuditExporter } from './utils/exporter'; // Types export type { Actor, Resource, Changes, Context, AuditEventOptions, AuditEventQuery, AuditEventResult, AuditEventStats, StreamConfig, StreamSubscription, } from './types'; // Privacy-aware convenience functions import { privacyAuditLogger } from './services/privacyAuditLogger'; import { clickhouseService } from './services/clickhouse'; /** * Initialize the audit system with privacy features */ export async function initializePrivacyAudit(): Promise { await clickhouseService.initialize(); } /** * Log an audit event with automatic PHI obfuscation */ export async function logPrivacyAuditEvent( action: string, options?: { userId?: string; resourceType?: string; resourceId?: string; phi?: Record; metadata?: Record; } ): Promise { return privacyAuditLogger.logEvent({ actor: { id: options?.userId || 'system', }, action, resource: options?.resourceType ? { type: options.resourceType, id: options.resourceId || '', } : undefined, phi: options?.phi, metadata: options?.metadata, }); } /** * Log PHI access for HIPAA compliance */ export async function logPHIAccess( userId: string, patientId: string, accessType: 'view' | 'update' | 'delete', phiData?: Record ): Promise { return privacyAuditLogger.logEvent({ actor: { id: userId, }, action: `phi_${accessType}`, resource: { type: 'patient', id: patientId, }, phi: phiData, severity: accessType === 'delete' ? 'high' : 'medium', }); } /** * Generate HIPAA compliance audit report */ export async function generateHIPAAComplianceReport( startDate: Date, endDate: Date, options?: { includePHI?: boolean; actorId?: string; resourceType?: string; } ): Promise { return privacyAuditLogger.generateAuditReport(startDate, endDate, options); }