UNPKG

expo-realtime-maps-navigation

Version:

JavaScript-pure React Native navigation package with Google Places + HERE Routing APIs, dual maps support, and complete customization - No native modules required!

83 lines (82 loc) 5.86 kB
export { computeRoute, startNavigation, stopNavigation, pauseNavigation, resumeNavigation, isNavigating, getCurrentLocation, requestLocationPermissions, requestBackgroundLocationPermission, voice, simulation, events, utils, NavigationError, TRANSPORT_MODES, ROUTE_PREFERENCES, AVOIDANCES, } from './api/navigation'; export { HereNavProvider, useHereNavContext, type HereNavContextState, type HereNavContextActions, type HereNavContextValue, } from './components/HereNavProvider'; export { NavigationOverlay, MinimalNavigationOverlay, DetailedNavigationOverlay, type NavigationOverlayProps, type MarkerVariant, type RouteStyle, type UserMarkerStyle, type ManeuverMarkerStyle, type FollowOptions, } from './components/NavigationOverlay'; export { NavigationControl, CompactNavigationControl, MinimalNavigationControl, OverlayNavigationControl, type NavigationControlProps, type ControlPosition, type LayoutVariant, type ProgressDisplayOptions, type NavigationButtonConfig, } from './components/NavigationControl'; export { useNavigationSession, type NavigationSessionAPI } from './hooks/useNavigationSession'; export { useRouteProgress, useRouteProgressMetrics, useNextManeuver, useSpeedData, type RouteProgressData, } from './hooks/useRouteProgress'; export { useLiveLocation, useLocationStatus, useCurrentPosition, useCurrentHeading, useLocationHealth, calculateDistance, calculateBearing, type LiveLocationData, } from './hooks/useLiveLocation'; export { useNavigationEvents, useNavigationEventType, useNavigationProgress, useManeuverEvents, useVoiceEvents, useNavigationErrors, useArrivalEvents, useReroutingEvents, useNavigationEventLogger, useNavigationEventStats, type NavigationEventCallback, type NavigationEventOptions, } from './hooks/useNavigationEvents'; export { getPolylineFromHereRoute, getTrafficColoredSegments, followUserOnMap, fitRoute, calculateBoundingBox, getZoomLevelForBoundingBox, interpolateRoutePosition, createMapRegion, createTrafficAwarePolylines, smoothPolyline, } from './utils/mapHelpers'; export { requestLocationPermissionsWithRationale, requestAlwaysAuthorizationWithRationale, openLocationSettings, ensureForegroundService, stopForegroundService, isBatteryOptimizationDisabled, requestBatteryOptimizationExemption, ensureNavigationPermissions, getPermissionStatusMessage, getPermissionGuidance, } from './utils/permissions'; export { ThemeProvider, useTheme, useColors, useTypography, useSpacing, useBorderRadius, useShadow, BaseColors, Typography, Spacing, BorderRadius, Shadow, ThemePresets, type NavigationTheme, type ThemeColors, type ThemeTypography, type ThemeSpacing, type ThemeBorderRadius, type ThemeShadow, type ThemeProviderProps, } from './theme/ThemeProvider'; export { Button, type ButtonProps, type ButtonVariant, type ButtonSize, } from './components/primitives/Button'; export { Card, type CardProps } from './components/primitives/Card'; export type { LatLng, TransportMode, RoutePreference, RouteAvoidance, RouteComputeRequest, Maneuver, ManeuverType, HereRoute, NavigationOptions, NavigationProgress, LocationData, PermissionStatus, PermissionState, NavigationError as NavigationErrorType, NavigationEvent, HerePlatformKeys, NavigationConfig, LocationConfig, HereNavConfig, TrafficSegment, CameraOptions, GetPolylineFromRoute, GetTrafficColoredSegments, FollowUserOnMap, FitRoute, } from './types'; import { computeRoute, startNavigation, stopNavigation, pauseNavigation, resumeNavigation, isNavigating, getCurrentLocation, requestLocationPermissions, requestBackgroundLocationPermission } from './api/navigation'; export type MapProvider = 'react-native-maps' | 'expo-maps' | 'auto'; export interface VersionCompatibility { provider: MapProvider; version?: string; compatible: boolean; recommended?: boolean; } export interface MapProviderConfig { provider: MapProvider; fallback?: MapProvider; } export declare const MapProviderUtils: { detectAvailable(): { provider: MapProvider; version?: string | undefined; compatible: boolean; }[]; getExpoSDKVersion(): number; getRecommended(): MapProvider; isProviderCompatible(provider: MapProvider): boolean; getCompatibilityInfo(): { expoSDK: number; providers: { provider: MapProvider; version?: string | undefined; compatible: boolean; }[]; recommendations: { 'SDK 48-49': string; 'SDK 50-52': string; 'SDK 53+': string; }; }; }; declare const HereNavigation: { computeRoute: typeof computeRoute; startNavigation: typeof startNavigation; stopNavigation: typeof stopNavigation; pauseNavigation: typeof pauseNavigation; resumeNavigation: typeof resumeNavigation; isNavigating: typeof isNavigating; getCurrentLocation: typeof getCurrentLocation; requestLocationPermissions: typeof requestLocationPermissions; requestBackgroundLocationPermission: typeof requestBackgroundLocationPermission; voice: { mute(): void; unmute(): void; setLanguage(languageCode: string): Promise<void>; getAvailableLanguages(): Promise<string[]>; }; simulation: { start(route: import("./types").HereRoute, speedKph?: number): Promise<void>; stop(): Promise<void>; }; events: { subscribe(callback: (event: import("./types").NavigationEvent) => void): () => void; subscribeToProgress(callback: (progress: import("./types").NavigationProgress) => void): () => void; subscribeToManeuvers(callback: (maneuver: any) => void): () => void; subscribeToVoice(callback: (voice: any) => void): () => void; }; utils: { getSDKVersion(): string; clearCache(): Promise<void>; isInitialized(): boolean; }; }; export default HereNavigation;