from abc import ABC, abstractmethod from typing import List, Optional, Callable from interfaces.highlight_detector import Highlight class HighlightRenderer(ABC): @abstractmethod def render( self, video_path: str, highlights: List[Highlight], output_dir: str, format_type: str = "landscape", progress_callback: Optional[Callable[[float, str], None]] = None, ) -> str: pass @abstractmethod def get_name(self) -> str: pass