export interface GpsTelemetry { has_fix: boolean utc_time: string latitude: number | null longitude: number | null satellites: number | null altitude_m: number | null coordinate_system: string source_sentence: string raw_coordinate_format: string source_mode: string updated_at: string } export interface SessionAppStats { connected: number send_calls?: number send_bytes?: number send_errors?: number recv_calls?: number recv_bytes?: number recv_timeouts?: number recv_errors?: number } export interface SessionKcpStats { connected?: number conv?: number rto_ms?: number srtt_ms?: number srttvar_ms?: number snd_queue?: number rcv_queue?: number snd_buffer?: number xmit_total?: number } export interface SessionTelemetry { app: SessionAppStats kcp: SessionKcpStats } export interface NativeUdpIngress { started: boolean bind_addr: string packets_received: number invalid_packets: number last_sender: string last_error: string } export interface ControlArbiterStatus { active_source: string | null control_lease_remaining_ms: number packet_counts: Record send_rate_hz: number source_lease_ms: number zero_burst_packets: number last_error: string last_sent_at_monotonic: number } export interface ControlSenderStatus { backend_ready: boolean started: boolean connected: boolean peer_id: string target_peer: string send_count: number send_errors: number drain_errors: number last_error: string } export interface NetworkTelemetry { peer_status: string latency_ms: number | null jitter_ms: number | null packet_loss_pct: number | null tx_kbps: number rx_kbps: number transport: string source_mode: string updated_at: string active_control_source: string | null control_lease_remaining_ms: number combined: { connected_sessions: number send_bytes: number recv_bytes: number tx_kbps: number rx_kbps: number } sessions: { video: SessionTelemetry control: SessionTelemetry } ingress: { native_udp: NativeUdpIngress } control: { arbiter: ControlArbiterStatus sender: ControlSenderStatus } } export interface VideoStatus { available: boolean source_mode: string frame_count: number fps: number frame_dir: string source_detail?: string timing?: { available: boolean latest_delta_ms: number | null delta_samples_ms: number[] sample_count: number sample_window_size: number timestamp_unit: string | null timestamp_endianness: string | null } receiver?: { backend_ready: boolean mode: string connected: boolean has_recent_frame: boolean frames_received: number latest_sequence: number | null last_error: string config_path: string server_addr?: string relay_via?: string peer_id?: string buffer_bytes?: number timing?: { available: boolean latest_delta_ms: number | null delta_samples_ms: number[] sample_count: number sample_window_size: number timestamp_unit: string | null timestamp_endianness: string | null } } } export interface DashboardSnapshot { gps: GpsTelemetry network: NetworkTelemetry video: VideoStatus }