import type { GpsStrength, GpsStrengthEvent, SmartGPSConfig } from './types'; type GpsStrengthCallback = (event: GpsStrengthEvent) => void; /** * Smart GPS Controller — adaptive accuracy management for battery efficiency. * * Core idea: don't use maximum GPS accuracy when you don't need it. * - Walking slowly → medium accuracy, longer interval * - Running → high accuracy, short interval * - Stationary → minimum accuracy, very long interval (or pause GPS) * - Weak GPS signal → reduce polling frequency to save battery * * Uses motion detection + GPS accuracy heuristics to dynamically * adjust the tracking profile. */ export declare class SmartGPSController { private config; private _currentStrength; private _isStationary; private _lastSpeed; private _lastAccuracy; private _stationaryStartTime; private _currentIntervalMs; private strengthListeners; constructor(config?: SmartGPSConfig); /** Current GPS signal strength assessment */ get gpsStrength(): GpsStrength; /** Whether the device is estimated as stationary */ get isStationary(): boolean; /** Current recommended polling interval based on conditions */ get recommendedInterval(): number; /** * Feed a new location sample to the controller. * Returns the recommended tracking interval for the next sample. */ feed(accuracy: number, speed: number | null, timestamp: number): number; /** Reset stationary detection state */ reset(): void; /** Update configuration at runtime */ configure(config: Partial): void; /** * Assess GPS signal quality based on horizontal accuracy. * Uses same thresholds as the native filter. */ assessStrength(accuracy: number): GpsStrength; /** * Check if GPS signal is good enough for quality tracking. * When false, the tracker may want to: * - Reduce polling frequency * - Show a warning to the user * - Use cached positions */ isGpsUsable(): boolean; /** * Whether we should skip this GPS sample (too inaccurate). * Use this in the tick callback to decide whether to record the point. */ shouldSkipSample(accuracy: number): boolean; /** Subscribe to GPS strength change events */ onGpsStrengthChange(callback: GpsStrengthCallback): () => void; } /** Singleton instance */ export declare const smartGPSController: SmartGPSController; export default SmartGPSController; //# sourceMappingURL=SmartGPSController.d.ts.map