from abc import ABC, abstractmethod from typing import Any, Dict, List, Optional class IAuditService(ABC): @abstractmethod def log_security_event( self, user_id: str, action: str, resource_type: str, details: Any ): pass class IMonitoringService(ABC): @abstractmethod def record_error( self, error_type: str, message: str, metadata: Optional[Dict[str, Any]] = None ): pass @abstractmethod def record_metric( self, name: str, value: float, tags: Optional[Dict[str, str]] = None ): pass @abstractmethod def get_dashboard_data(self) -> Dict[str, Any]: pass class IPerformanceMonitor(ABC): @abstractmethod def get_current_metrics(self) -> Dict[str, Any]: pass class IAIService(ABC): @abstractmethod async def initialize(self): pass @abstractmethod async def semantic_search( self, query: str, limit: int = 10, filters: Optional[Dict[str, Any]] = None ) -> List[Dict[str, Any]]: pass @abstractmethod async def add_document( self, doc_id: str, content: str, metadata: Dict[str, Any] ) -> bool: pass class IAuthService(ABC): @abstractmethod def hash_password(self, password: str) -> str: pass @abstractmethod def verify_password(self, plain_password: str, hashed_password: str) -> bool: pass class IDBService(ABC): @abstractmethod def get_database_stats(self) -> Dict[str, Any]: pass @abstractmethod def get_database_performance_metrics(self) -> Dict[str, Any]: pass