export interface ApiResponse { data?: T; error?: string; } export interface WeatherAlert { event: string; headline: string; description: string; } export interface WeatherSample { date: string; tempMin: number; tempMax: number; alerts: WeatherAlert[]; icon: string; } export interface WeatherData { zipCode: string; samples: WeatherSample[]; tempUnit: string; coldThreshold: number; hotThreshold: number; shippingDistance: number; shippingDays: number; } export interface RadioOption { label: string; value: string; } export interface SettingField { key: string; label: string; type: "radio" | "number" | "string"; default?: any; options?: RadioOption[]; regex?: string; } export interface SettingsSpec { fields: SettingField[]; } export interface SettingsData { spec: SettingsSpec; values: Record; } export interface WeatherApi { getWeatherData(tenantId: string, account: string, orderId: string): Promise>; getSettings(tenantId: string, account: string): Promise>; saveSettings(tenantId: string, account: string, values: Record): Promise>; }