import { DeepMaybeObservable, Supportable, Pausable, ReadonlyObservable } from '@usels/core'; interface UseGeolocationOptions { /** Use high accuracy mode */ enableHighAccuracy?: boolean; /** Maximum age of a cached position in ms */ maximumAge?: number; /** Timeout for position request in ms */ timeout?: number; /** Start watching immediately on mount (default: true) */ immediate?: boolean; } interface UseGeolocationCoords { readonly accuracy: number; readonly latitude: number; readonly longitude: number; readonly altitude: number | null; readonly altitudeAccuracy: number | null; readonly heading: number | null; readonly speed: number | null; } interface UseGeolocationReturn extends Supportable, Pausable { /** Current position coordinates */ coords$: ReadonlyObservable; /** Timestamp of last successful position update */ locatedAt$: ReadonlyObservable; /** Last geolocation error */ error$: ReadonlyObservable; } /** * Framework-agnostic reactive wrapper around * [Geolocation.watchPosition()](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition). * * Exposes current coordinates, last update timestamp, and any error as * observables, plus `pause()` / `resume()` controls for the underlying * watcher. When `immediate` is true (default), the watcher is started in * `onMount`. */ declare function createGeolocation(options?: DeepMaybeObservable): UseGeolocationReturn; export { type UseGeolocationCoords, type UseGeolocationOptions, type UseGeolocationReturn, createGeolocation };