from typing import Optional import numpy as np from .base import FlightProcessingEngineBase from models.images import ImageData from models.results import FrameResult from models.processing import RelativePose from models.recovery import UserAnchor class FlightProcessingEngine(FlightProcessingEngineBase): async def process_frame( self, flight_id: str, image: ImageData ) -> Optional[FrameResult]: raise NotImplementedError async def get_relative_pose( self, prev_image: np.ndarray, curr_image: np.ndarray ) -> RelativePose: raise NotImplementedError async def apply_user_anchor( self, flight_id: str, frame_id: int, anchor: UserAnchor ) -> bool: raise NotImplementedError async def is_blocked(self, flight_id: str) -> bool: raise NotImplementedError async def resume_processing(self, flight_id: str) -> bool: raise NotImplementedError async def get_current_chunk_id(self, flight_id: str) -> Optional[str]: raise NotImplementedError