export type LocationSourceMode = 'real' | 'mock'

export interface LocationSample {
  latitude: number
  longitude: number
  accuracy?: number
  speed?: number | null
  headingDeg?: number | null
  timestamp: number
  sourceMode: LocationSourceMode
}

export interface LocationSourceCallbacks {
  onLocation: (sample: LocationSample) => void
  onStatus: (message: string) => void
  onError: (message: string) => void
}

export interface LocationSource {
  readonly mode: LocationSourceMode
  readonly active: boolean
  start(): void
  stop(): void
  destroy(): void
}
