import { z } from 'zod'; /** * High-level runtime state tracked by the RadioPowerController. * * - `off`: radio is known to be off (or was never connected). * - `waking`: physical power-on command sent, waiting for the radio to respond. * - `awake`: radio is physically responding; software engine startup is optional. * - `shutting_down`: physical power-off command is being applied. * - `entering_standby`: physical standby command is being applied. * - `failed`: last transition failed; UI should show an error + retry. */ export declare const RadioPowerStateSchema: z.ZodEnum<["off", "waking", "awake", "shutting_down", "entering_standby", "failed"]>; export type RadioPowerState = z.infer; /** * Finer-grained progress stage inside `waking` / `shutting_down`. * UI uses this to show progress bar labels. */ export declare const RadioPowerStageSchema: z.ZodEnum<["idle", "sending_command", "waiting_ready", "waiting_standby_disconnect", "starting_engine", "stopping_engine", "disconnecting"]>; export type RadioPowerStage = z.infer; /** * WS event payload: server → client. */ export declare const RadioPowerStateEventSchema: z.ZodObject<{ profileId: z.ZodOptional; state: z.ZodEnum<["off", "waking", "awake", "shutting_down", "entering_standby", "failed"]>; stage: z.ZodEnum<["idle", "sending_command", "waiting_ready", "waiting_standby_disconnect", "starting_engine", "stopping_engine", "disconnecting"]>; /** Translation key reference for an inline error, e.g. 'radio:power.error.timeout'. */ errorKey: z.ZodOptional; /** Free-form details for debugging; not user-facing. */ errorDetail: z.ZodOptional; }, "strip", z.ZodTypeAny, { state: "failed" | "off" | "waking" | "awake" | "shutting_down" | "entering_standby"; stage: "idle" | "sending_command" | "waiting_ready" | "waiting_standby_disconnect" | "starting_engine" | "stopping_engine" | "disconnecting"; profileId?: string | undefined; errorKey?: string | undefined; errorDetail?: string | undefined; }, { state: "failed" | "off" | "waking" | "awake" | "shutting_down" | "entering_standby"; stage: "idle" | "sending_command" | "waiting_ready" | "waiting_standby_disconnect" | "starting_engine" | "stopping_engine" | "disconnecting"; profileId?: string | undefined; errorKey?: string | undefined; errorDetail?: string | undefined; }>; export type RadioPowerStateEvent = z.infer; /** * REST request body: POST /api/radio/power */ /** Allowed physical radio target states for a power request. */ export declare const RadioPowerTargetSchema: z.ZodEnum<["on", "off", "standby", "operate"]>; export type RadioPowerTarget = z.infer; export declare const RadioPowerRequestSchema: z.ZodObject<{ profileId: z.ZodString; /** Physical radio power target. This is not the TX-5DR software engine state. */ state: z.ZodEnum<["on", "off", "standby", "operate"]>; /** Automatically start the TX-5DR engine after successful physical power-on. */ autoEngine: z.ZodDefault>; }, "strip", z.ZodTypeAny, { state: "off" | "on" | "standby" | "operate"; profileId: string; autoEngine: boolean; }, { state: "off" | "on" | "standby" | "operate"; profileId: string; autoEngine?: boolean | undefined; }>; export type RadioPowerRequest = z.infer; /** * REST response: POST /api/radio/power */ export declare const RadioPowerResponseSchema: z.ZodObject<{ success: z.ZodBoolean; target: z.ZodEnum<["on", "off", "standby", "operate"]>; state: z.ZodEnum<["off", "waking", "awake", "shutting_down", "entering_standby", "failed"]>; }, "strip", z.ZodTypeAny, { success: boolean; state: "failed" | "off" | "waking" | "awake" | "shutting_down" | "entering_standby"; target: "off" | "on" | "standby" | "operate"; }, { success: boolean; state: "failed" | "off" | "waking" | "awake" | "shutting_down" | "entering_standby"; target: "off" | "on" | "standby" | "operate"; }>; export type RadioPowerResponse = z.infer; /** * REST response: GET /api/radio/power/support?profileId=xxx * The server resolves mfgName/modelName internally via HamLib.getSupportedRigs(). */ export declare const RadioPowerSupportInfoSchema: z.ZodObject<{ profileId: z.ZodString; canPowerOn: z.ZodBoolean; canPowerOff: z.ZodBoolean; /** * States the user is allowed to switch *between* while the radio is connected. * Empty when the radio is unsupported or not connected (UI then renders no dropdown). */ supportedStates: z.ZodDefault, "many">>; reason: z.ZodOptional>; rigInfo: z.ZodOptional>; }, "strip", z.ZodTypeAny, { profileId: string; canPowerOn: boolean; canPowerOff: boolean; supportedStates: ("off" | "standby" | "operate")[]; reason?: "model-unsupported" | "network-mode-no-wake" | "none-mode" | undefined; rigInfo?: { mfgName: string; modelName: string; } | undefined; }, { profileId: string; canPowerOn: boolean; canPowerOff: boolean; reason?: "model-unsupported" | "network-mode-no-wake" | "none-mode" | undefined; supportedStates?: ("off" | "standby" | "operate")[] | undefined; rigInfo?: { mfgName: string; modelName: string; } | undefined; }>; export type RadioPowerSupportInfo = z.infer; /** Convenience re-export so callers can validate a full config blob. */ export declare const RadioPowerProfileConfigSchema: z.ZodObject<{ type: z.ZodEnum<["none", "network", "serial", "icom-wlan"]>; network: z.ZodOptional>; icomWlan: z.ZodOptional; password: z.ZodOptional; dataMode: z.ZodDefault>; }, "strip", z.ZodTypeAny, { ip: string; port: number; dataMode: boolean; userName?: string | undefined; password?: string | undefined; }, { ip: string; port: number; userName?: string | undefined; password?: string | undefined; dataMode?: boolean | undefined; }>>; serial: z.ZodOptional>; stop_bits: z.ZodOptional>; serial_parity: z.ZodOptional>; serial_handshake: z.ZodOptional>; rts_state: z.ZodOptional>; dtr_state: z.ZodOptional>; rate: z.ZodOptional; timeout: z.ZodOptional; retry: z.ZodOptional; write_delay: z.ZodOptional; post_write_delay: z.ZodOptional; }, "strip", z.ZodTypeAny, { data_bits?: "5" | "6" | "7" | "8" | undefined; stop_bits?: "1" | "2" | undefined; serial_parity?: "None" | "Even" | "Odd" | "Mark" | "Space" | undefined; serial_handshake?: "None" | "Hardware" | "Software" | undefined; rts_state?: "ON" | "OFF" | "UNSET" | undefined; dtr_state?: "ON" | "OFF" | "UNSET" | undefined; rate?: number | undefined; timeout?: number | undefined; retry?: number | undefined; write_delay?: number | undefined; post_write_delay?: number | undefined; }, { data_bits?: "5" | "6" | "7" | "8" | undefined; stop_bits?: "1" | "2" | undefined; serial_parity?: "None" | "Even" | "Odd" | "Mark" | "Space" | undefined; serial_handshake?: "None" | "Hardware" | "Software" | undefined; rts_state?: "ON" | "OFF" | "UNSET" | undefined; dtr_state?: "ON" | "OFF" | "UNSET" | undefined; rate?: number | undefined; timeout?: number | undefined; retry?: number | undefined; write_delay?: number | undefined; post_write_delay?: number | undefined; }>>; backendConfig: z.ZodOptional>; }, "strip", z.ZodTypeAny, { path: string; rigModel: number; serialConfig?: { data_bits?: "5" | "6" | "7" | "8" | undefined; stop_bits?: "1" | "2" | undefined; serial_parity?: "None" | "Even" | "Odd" | "Mark" | "Space" | undefined; serial_handshake?: "None" | "Hardware" | "Software" | undefined; rts_state?: "ON" | "OFF" | "UNSET" | undefined; dtr_state?: "ON" | "OFF" | "UNSET" | undefined; rate?: number | undefined; timeout?: number | undefined; retry?: number | undefined; write_delay?: number | undefined; post_write_delay?: number | undefined; } | undefined; backendConfig?: Record | undefined; }, { path: string; rigModel: number; serialConfig?: { data_bits?: "5" | "6" | "7" | "8" | undefined; stop_bits?: "1" | "2" | undefined; serial_parity?: "None" | "Even" | "Odd" | "Mark" | "Space" | undefined; serial_handshake?: "None" | "Hardware" | "Software" | undefined; rts_state?: "ON" | "OFF" | "UNSET" | undefined; dtr_state?: "ON" | "OFF" | "UNSET" | undefined; rate?: number | undefined; timeout?: number | undefined; retry?: number | undefined; write_delay?: number | undefined; post_write_delay?: number | undefined; } | undefined; backendConfig?: Record | undefined; }>>; spectrum: z.ZodOptional; }, "strip", z.ZodTypeAny, { speed?: number | undefined; }, { speed?: number | undefined; }>>; transmitCompensationMs: z.ZodOptional; pttMethod: z.ZodOptional>; pttPort: z.ZodOptional; cwKeyPort: z.ZodOptional; cwKeyMethod: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: "none" | "network" | "serial" | "icom-wlan"; network?: { host: string; port: number; } | undefined; serial?: { path: string; rigModel: number; serialConfig?: { data_bits?: "5" | "6" | "7" | "8" | undefined; stop_bits?: "1" | "2" | undefined; serial_parity?: "None" | "Even" | "Odd" | "Mark" | "Space" | undefined; serial_handshake?: "None" | "Hardware" | "Software" | undefined; rts_state?: "ON" | "OFF" | "UNSET" | undefined; dtr_state?: "ON" | "OFF" | "UNSET" | undefined; rate?: number | undefined; timeout?: number | undefined; retry?: number | undefined; write_delay?: number | undefined; post_write_delay?: number | undefined; } | undefined; backendConfig?: Record | undefined; } | undefined; spectrum?: { speed?: number | undefined; } | undefined; icomWlan?: { ip: string; port: number; dataMode: boolean; userName?: string | undefined; password?: string | undefined; } | undefined; transmitCompensationMs?: number | undefined; pttMethod?: "cat" | "vox" | "dtr" | "rts" | undefined; pttPort?: string | undefined; cwKeyPort?: string | undefined; cwKeyMethod?: "dtr" | "rts" | undefined; }, { type: "none" | "network" | "serial" | "icom-wlan"; network?: { host: string; port: number; } | undefined; serial?: { path: string; rigModel: number; serialConfig?: { data_bits?: "5" | "6" | "7" | "8" | undefined; stop_bits?: "1" | "2" | undefined; serial_parity?: "None" | "Even" | "Odd" | "Mark" | "Space" | undefined; serial_handshake?: "None" | "Hardware" | "Software" | undefined; rts_state?: "ON" | "OFF" | "UNSET" | undefined; dtr_state?: "ON" | "OFF" | "UNSET" | undefined; rate?: number | undefined; timeout?: number | undefined; retry?: number | undefined; write_delay?: number | undefined; post_write_delay?: number | undefined; } | undefined; backendConfig?: Record | undefined; } | undefined; spectrum?: { speed?: number | undefined; } | undefined; icomWlan?: { ip: string; port: number; userName?: string | undefined; password?: string | undefined; dataMode?: boolean | undefined; } | undefined; transmitCompensationMs?: number | undefined; pttMethod?: "cat" | "vox" | "dtr" | "rts" | undefined; pttPort?: string | undefined; cwKeyPort?: string | undefined; cwKeyMethod?: "dtr" | "rts" | undefined; }>; //# sourceMappingURL=radio-power.schema.d.ts.map