import type { PluginListenerHandle } from '@capacitor/core'; export interface SatelliteStatus { satellitesInView: number; usedInFix: number; constellationCounts: { [key: string]: number; }; } export interface WifiAp { ssid: string; bssid: string; rssi: number; distance?: number; } export interface WifiScanResult { apCount: number; aps: WifiAp[]; } export interface ImuData { accelX: number; accelY: number; accelZ: number; gyroX: number; gyroY: number; gyroZ: number; speed?: number; acceleration?: number; directionRad?: number; } export interface GpsData { latitude: number; longitude: number; accuracy: number; satellitesInView?: number; usedInFix?: number; constellationCounts?: { [key: string]: number; }; } export interface PositioningData { source: 'GNSS' | 'WIFI' | 'FUSED' | 'MOCK'; timestamp: number; latitude: number; longitude: number; accuracy: number; gnssData?: SatelliteStatus; wifiData?: WifiAp[]; imuData?: ImuData; } export interface DumonGeolocationPlugin { startPositioning(): Promise; stopPositioning(): Promise; getLatestPosition(): Promise; addListener(eventName: 'onPositionUpdate', listenerFunc: (data: PositioningData) => void): PluginListenerHandle; }