"""Protocols for translation service backends.""" from __future__ import annotations from typing import List, Optional, Protocol, Sequence, Union, runtime_checkable TranslateInput = Union[str, Sequence[str]] TranslateOutput = Union[Optional[str], List[Optional[str]]] @runtime_checkable class TranslationBackendProtocol(Protocol): """Shared protocol implemented by translation backends.""" model: str @property def supports_batch(self) -> bool: ... def translate( self, text: TranslateInput, target_lang: str, source_lang: Optional[str] = None, context: Optional[str] = None, prompt: Optional[str] = None, ) -> TranslateOutput: ...