from typing import Optional from .base import RouteChunkManagerBase from models.chunks import ChunkHandle, ChunkBounds, Sim3Transform from models.core import GPSPoint from models.processing import ChunkAlignmentResult class RouteChunkManager(RouteChunkManagerBase): async def create_chunk( self, flight_id: str, start_frame_id: int ) -> ChunkHandle: raise NotImplementedError async def add_frame_to_chunk( self, chunk_id: str, frame_id: int ) -> bool: raise NotImplementedError async def finalize_chunk(self, chunk_id: str) -> bool: raise NotImplementedError async def get_chunk(self, chunk_id: str) -> Optional[ChunkHandle]: raise NotImplementedError async def get_active_chunk( self, flight_id: str ) -> Optional[ChunkHandle]: raise NotImplementedError async def get_flight_chunks( self, flight_id: str ) -> list[ChunkHandle]: raise NotImplementedError async def estimate_chunk_bounds( self, chunk_id: str ) -> ChunkBounds: raise NotImplementedError async def anchor_chunk( self, chunk_id: str, frame_id: int, gps: GPSPoint ) -> bool: raise NotImplementedError async def match_chunk_to_satellite( self, chunk_id: str ) -> Optional[ChunkAlignmentResult]: raise NotImplementedError async def apply_transform_to_chunk( self, chunk_id: str, transform: Sim3Transform ) -> bool: raise NotImplementedError