import { type LonLatPoint } from '../../utils/projection'
import { type GameSessionStatus } from '../core/gameSessionState'

export type TelemetryEvent =
  | { type: 'reset' }
  | { type: 'session_state_updated'; at: number; status: GameSessionStatus; startedAt: number | null; endedAt: number | null }
  | { type: 'target_updated'; controlId: string | null; point: LonLatPoint | null }
  | { type: 'gps_updated'; at: number; lon: number; lat: number; accuracyMeters: number | null }
  | { type: 'accelerometer_updated'; at: number; x: number; y: number; z: number }
  | { type: 'gyroscope_updated'; at: number; x: number; y: number; z: number }
  | { type: 'device_motion_updated'; at: number; alpha: number | null; beta: number | null; gamma: number | null }
  | { type: 'heart_rate_updated'; at: number; bpm: number | null }
