"""Audio processing service interface.""" from abc import ABC, abstractmethod from typing import TYPE_CHECKING if TYPE_CHECKING: from ..models.audio_content import AudioContent from ..models.voice_settings import VoiceSettings from ..models.processing_result import ProcessingResult class IAudioProcessingService(ABC): """Interface for audio processing pipeline orchestration.""" @abstractmethod def process_audio_pipeline( self, audio: 'AudioContent', target_language: str, voice_settings: 'VoiceSettings' ) -> 'ProcessingResult': """ Process audio through the complete pipeline: STT -> Translation -> TTS. Args: audio: The input audio content target_language: The target language for translation voice_settings: Voice settings for TTS synthesis Returns: ProcessingResult: The result of the complete processing pipeline Raises: AudioProcessingException: If any step in the pipeline fails """ pass