from typing import Optional from .base import ResultManagerBase from models.results import FrameResult, FlightResults, RefinedFrameResult from models.core import GPSPoint class ResultManager(ResultManagerBase): async def save_frame_result( self, flight_id: str, result: FrameResult ) -> bool: raise NotImplementedError async def get_frame_result( self, flight_id: str, frame_id: int ) -> Optional[FrameResult]: raise NotImplementedError async def get_flight_results(self, flight_id: str) -> FlightResults: raise NotImplementedError async def update_refined_result( self, flight_id: str, result: RefinedFrameResult ) -> bool: raise NotImplementedError async def get_object_gps( self, flight_id: str, frame_id: int, pixel: tuple[float, float], ) -> GPSPoint: raise NotImplementedError async def export_results( self, flight_id: str, format: str = "json" ) -> bytes: raise NotImplementedError async def get_statistics(self, flight_id: str) -> dict: raise NotImplementedError