export interface PatternData { antenna_type: string; frequency_hz: number; wavelength_m: number; theta_deg: number[]; phi_deg: number[]; gain_dbi: number[][]; peak_gain_dbi: number; e_plane: PlanePoint[]; h_plane: PlanePoint[]; model: string; resonance?: ResonanceData; raw_cut?: { angles_deg: number[]; gain_db: number[]; plane: string }; import_info?: { format: string; filename?: string; points: number }; } export interface PlanePoint { theta_deg?: number; phi_deg?: number; gain_dbi: number; } export interface ResonanceData { frequency_hz: number; swr: number; return_loss_db: number; impedance_real: number; impedance_imag: number; } export interface ComputeParams { antenna_type: string; frequency_hz: number; impedance_real: number; impedance_imag: number; } export interface ScanParams { antenna_type: string; start_hz: number; stop_hz: number; points: number; } export type DisplayMode = 'surface' | 'wireframe' | 'e-plane' | 'h-plane'; export interface AppState { connected: boolean; loading: boolean; pattern: PatternData | null; displayMode: DisplayMode; antennaType: string; frequencyMhz: number; impedanceReal: number; impedanceImag: number; }