export interface NavigationRoute { coordinates: [number, number][]; distance?: number; duration?: number; instructions?: NavigationInstruction[]; } export interface NavigationInstruction { type: 'turn' | 'straight' | 'arrive' | 'depart'; direction?: 'left' | 'right' | 'slight-left' | 'slight-right' | 'sharp-left' | 'sharp-right'; distance: number; text: string; coordinate: [number, number]; } export interface NavigationState { isNavigating: boolean; currentRoute: NavigationRoute | null; currentStepIndex: number; distanceRemaining: number; durationRemaining: number; currentPosition: [number, number] | null; nextInstruction: NavigationInstruction | null; bearing: number; } export interface NavigationOptions { followUserLocation?: boolean; cameraPitch?: number; cameraZoom?: number; updateInterval?: number; onNavigationUpdate?: (state: NavigationState) => void; onNavigationComplete?: () => void; } export default class NavigationManager { private map; private camera; private currentRoute; private routeGeoJSON; private isNavigating; private currentStepIndex; private currentPosition; private updateInterval; private options; private navigationState; constructor(map: any, camera: any); setCamera(camera: any): void; /** * Start navigation with a route */ startNavigation(route: NavigationRoute, options?: NavigationOptions): void; /** * Stop navigation */ stopNavigation(): void; /** * Update the current position (should be called with GPS updates) */ updatePosition(position: [number, number]): void; /** * Get current navigation state */ getNavigationState(): NavigationState; /** * Check if currently navigating */ isActive(): boolean; /** * Display route on map * In React Native MapLibre GL, we store the route data for React component rendering */ private displayRoute; /** * Get route GeoJSON for React component rendering */ getRouteGeoJSON(): any; /** * Clear route from map */ private clearRoute; /** * Update navigation state based on current position */ private updateNavigationState; /** * Update camera to follow navigation */ private updateCamera; /** * Calculate distance between two coordinates (Haversine formula) */ private calculateDistance; /** * Calculate bearing between two coordinates */ private calculateBearing; /** * Format distance for display */ static formatDistance(meters: number): string; /** * Format duration for display */ static formatDuration(seconds: number): string; } //# sourceMappingURL=NavigationManager.d.ts.map