import { z } from 'zod'; import { SlotPackSchema, SlotInfoSchema, SlotPackFrequencyContextSchema } from './slot-info.schema.js'; import type { PluginStatus, PluginDataPayload, PluginLogEntry, PluginRuntimeLogEntry, PluginRuntimeLogHistoryPayload, PluginSystemSnapshot } from './plugin.schema.js'; import { ModeDescriptorSchema } from './mode.schema.js'; import { QSORecordSchema } from './qso.schema.js'; import { LogBookStatisticsSchema } from './logbook.schema.js'; import { TunerStatusSchema } from './radio.schema.js'; import { RadioProfileSchema, ProfileChangedEventSchema } from './radio-profile.schema.js'; import { UserRole } from './auth.schema.js'; import type { VoicePTTLock } from './voice.schema.js'; import type { VoiceKeyerStatus } from './voice-keyer.schema.js'; import type { CWKeyerStatus, CWKeyerConfig } from './cw-keyer.schema.js'; import { type CWDecoderEvent, type CWDecoderStatus } from './cw-decoder.schema.js'; import { CapabilityListSchema, CapabilityStateSchema } from './radio-capability.schema.js'; import { AudioSidecarStatusPayloadSchema } from './audio-sidecar.schema.js'; import { SpectrumCapabilitiesSchema, SpectrumFrameSchema, SpectrumSessionStateSchema } from './spectrum.schema.js'; import type { RealtimeSettingsResponseData } from './realtime.schema.js'; export declare enum WSMessageType { PING = "ping", PONG = "pong", ERROR = "error", /** 服务端通知客户端:此连接已被同一 clientInstance 的新连接替换,客户端不应重连 */ CONNECTION_REPLACED = "connectionReplaced", START_ENGINE = "startEngine", STOP_ENGINE = "stopEngine", GET_STATUS = "getStatus", SET_MODE = "setMode", MODE_CHANGED = "modeChanged", SLOT_START = "slotStart", SUB_WINDOW = "subWindow", SLOT_PACK_UPDATED = "slotPackUpdated", SPECTRUM_CAPABILITIES = "spectrumCapabilities", SUBSCRIBE_SPECTRUM = "subscribeSpectrum", SPECTRUM_SUBSCRIPTION_CHANGED = "spectrumSubscriptionChanged", SPECTRUM_FRAME = "spectrumFrame", SPECTRUM_SESSION_STATE_CHANGED = "spectrumSessionStateChanged", INVOKE_SPECTRUM_CONTROL = "invokeSpectrumControl", DECODE_ERROR = "decodeError", SYSTEM_STATUS = "systemStatus", BOOTSTRAP_STATUS_CHANGED = "bootstrapStatusChanged", CLIENT_COUNT_CHANGED = "clientCountChanged", CLOCK_STATUS_CHANGED = "clockStatusChanged", RIGCTLD_STATUS = "rigctldStatus", GET_OPERATORS = "getOperators", OPERATORS_LIST = "operatorsList", OPERATOR_STATUS_UPDATE = "operatorStatusUpdate", SET_OPERATOR_CONTEXT = "setOperatorContext", SET_OPERATOR_RUNTIME_STATE = "setOperatorRuntimeState", SET_OPERATOR_RUNTIME_SLOT_CONTENT = "setOperatorRuntimeSlotContent", SET_OPERATOR_TRANSMIT_CYCLES = "setOperatorTransmitCycles", START_OPERATOR = "startOperator", STOP_OPERATOR = "stopOperator", OPERATOR_REQUEST_CALL = "operatorRequestCall", SET_CLIENT_ENABLED_OPERATORS = "setClientEnabledOperators", SET_CLIENT_SELECTED_OPERATOR = "setClientSelectedOperator", CLIENT_HANDSHAKE = "clientHandshake", SERVER_HANDSHAKE_COMPLETE = "serverHandshakeComplete", SLOT_PACKS_RESET = "slotPacksReset", TRANSMISSION_LOG = "transmissionLog", SET_VOLUME_GAIN = "setVolumeGain", SET_VOLUME_GAIN_DB = "setVolumeGainDb", VOLUME_GAIN_CHANGED = "volumeGainChanged", QSO_RECORD_ADDED = "qsoRecordAdded", QSO_RECORD_UPDATED = "qsoRecordUpdated", LOGBOOK_UPDATED = "logbookUpdated", LOGBOOK_CHANGE_NOTICE = "logbookChangeNotice", RADIO_STATUS_CHANGED = "radioStatusChanged", RADIO_ERROR = "radioError", RADIO_MANUAL_RECONNECT = "radioManualReconnect", RADIO_DISCONNECTED_DURING_TRANSMISSION = "radioDisconnectedDuringTransmission", FREQUENCY_CHANGED = "frequencyChanged", PTT_STATUS_CHANGED = "pttStatusChanged", FORCE_STOP_TRANSMISSION = "forceStopTransmission", REMOVE_OPERATOR_FROM_TRANSMISSION = "removeOperatorFromTransmission", START_TUNE_TONE = "startTuneTone", STOP_TUNE_TONE = "stopTuneTone", TUNE_TONE_STATUS_CHANGED = "tuneToneStatusChanged", METER_DATA = "meterData", SQUELCH_STATUS_CHANGED = "squelchStatusChanged", TEXT_MESSAGE = "textMessage", /** @deprecated Use RADIO_CAPABILITY_CHANGED with id='tuner_switch' instead */ TUNER_STATUS_CHANGED = "tunerStatusChanged", /** 连接时下发能力快照(server → client) */ RADIO_CAPABILITY_LIST = "radioCapabilityList", /** 单个能力值变化(server → client) */ RADIO_CAPABILITY_CHANGED = "radioCapabilityChanged", /** 客户端写入能力值(client → server) */ WRITE_RADIO_CAPABILITY = "writeRadioCapability", /** 客户端请求刷新所有能力值(client → server) */ REFRESH_RADIO_CAPABILITIES = "refreshRadioCapabilities", RADIO_STOP_RECONNECT = "radioStopReconnect", /** 音频 sidecar 状态变化(server → client) */ AUDIO_SIDECAR_STATUS_CHANGED = "audioSidecarStatusChanged", /** 客户端请求立即重试音频启动(client → server) */ AUDIO_RETRY_NOW = "audioRetryNow", /** 电源操作进度事件(server → client) */ RADIO_POWER_STATE = "radioPowerState", PROFILE_CHANGED = "profileChanged", PROFILE_LIST_UPDATED = "profileListUpdated", REALTIME_SETTINGS_CHANGED = "realtimeSettingsChanged", AUTH_REQUIRED = "authRequired", AUTH_TOKEN = "authToken", AUTH_PUBLIC_VIEWER = "authPublicViewer", AUTH_RESULT = "authResult", AUTH_EXPIRED = "authExpired", VOICE_PTT_REQUEST = "voicePttRequest", VOICE_PTT_RELEASE = "voicePttRelease", VOICE_PTT_LOCK_CHANGED = "voicePttLockChanged", VOICE_SET_RADIO_MODE = "voiceSetRadioMode", VOICE_RADIO_MODE_CHANGED = "voiceRadioModeChanged", VOICE_KEYER_PLAY = "voiceKeyerPlay", VOICE_KEYER_STOP = "voiceKeyerStop", VOICE_KEYER_STATUS_CHANGED = "voiceKeyerStatusChanged", /** CW 键控器状态变化(server → client) */ CW_KEYER_STATUS = "cwKeyerStatus", /** CW 手键动作(client → server) */ CW_KEY_ACTION = "cwKeyAction", /** CW 文字输入(client → server) */ CW_TEXT_INPUT = "cwTextInput", /** CW 播放预设报文(client → server) */ CW_PLAY_MESSAGE = "cwPlayMessage", /** CW 停止播放(client → server) */ CW_STOP_MESSAGE = "cwStopMessage", /** CW 配置变更通知(server → client) */ CW_CONFIG_CHANGED = "cwConfigChanged", /** CW 解码器状态快照(server → client) */ CW_DECODER_STATUS = "cwDecoderStatus", /** CW 解码器增量事件(server → client) */ CW_DECODER_EVENT = "cwDecoderEvent", PROCESS_SNAPSHOT = "processSnapshot", PROCESS_SNAPSHOT_HISTORY = "processSnapshotHistory", PLUGIN_LIST = "pluginList", PLUGIN_STATUS_CHANGED = "pluginStatusChanged", PLUGIN_DATA = "pluginData", PLUGIN_LOG = "pluginLog", PLUGIN_RUNTIME_LOG = "pluginRuntimeLog", GET_PLUGIN_RUNTIME_LOG_HISTORY = "getPluginRuntimeLogHistory", PLUGIN_RUNTIME_LOG_HISTORY = "pluginRuntimeLogHistory", PLUGIN_USER_ACTION = "pluginUserAction", PLUGIN_PAGE_PUSH = "pluginPagePush", PLUGIN_PANEL_META = "pluginPanelMeta", PLUGIN_PANEL_CONTRIBUTIONS_CHANGED = "pluginPanelContributionsChanged", OPENWEBRX_LISTEN_STATUS = "openwebrxListenStatus", OPENWEBRX_PROFILE_SELECT_REQUEST = "openwebrxProfileSelectRequest", OPENWEBRX_PROFILE_SELECT_RESPONSE = "openwebrxProfileSelectResponse", OPENWEBRX_PROFILE_VERIFY_RESULT = "openwebrxProfileVerifyResult", OPENWEBRX_CLIENT_COUNT = "openwebrxClientCount", OPENWEBRX_COOLDOWN_NOTICE = "openwebrxCooldownNotice" } export declare const SystemStatusSchema: z.ZodObject<{ isRunning: z.ZodBoolean; isDecoding: z.ZodBoolean; currentMode: z.ZodObject<{ name: z.ZodString; slotMs: z.ZodNumber; toleranceMs: z.ZodDefault; windowTiming: z.ZodArray; transmitTiming: z.ZodNumber; encodeAdvance: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }, { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }>; currentTime: z.ZodNumber; nextSlotIn: z.ZodNumber; audioStarted: z.ZodBoolean; radioConnected: z.ZodOptional; radioConnectionHealth: z.ZodOptional>; /** 引擎模式:digital(FT8/FT4)、voice(语音通联)或 cw(莫尔斯码) */ engineMode: z.ZodDefault>; /** 当前电台调制模式(语音模式下使用,如 USB/LSB/FM/AM) */ currentRadioMode: z.ZodOptional; /** 引擎状态机当前状态 */ engineState: z.ZodOptional>; /** 引擎状态机上下文的精简投影 */ engineContext: z.ZodOptional; startedResources: z.ZodOptional>; forcedStop: z.ZodOptional; }, "strip", z.ZodTypeAny, { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; }, { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; engineMode: "voice" | "cw" | "digital"; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }, { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; engineMode?: "voice" | "cw" | "digital" | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }>; export declare const BootstrapLifecycleSchema: z.ZodEnum<["booting", "completed", "degraded", "failed", "dismissed"]>; export declare const BootstrapPhaseStateSchema: z.ZodEnum<["pending", "running", "ready", "skipped", "warning", "failed", "timed_out"]>; export declare const BootstrapPhaseIdSchema: z.ZodEnum<["config-auth", "core-http", "engine-bootstrap", "audio-device-discovery", "logbook-prewarm", "plugin-bootstrap", "ntp-initial-check", "active-profile-autostart"]>; export declare const BootstrapPhaseStatusSchema: z.ZodObject<{ id: z.ZodEnum<["config-auth", "core-http", "engine-bootstrap", "audio-device-discovery", "logbook-prewarm", "plugin-bootstrap", "ntp-initial-check", "active-profile-autostart"]>; label: z.ZodString; description: z.ZodOptional; state: z.ZodEnum<["pending", "running", "ready", "skipped", "warning", "failed", "timed_out"]>; startedAt: z.ZodOptional; completedAt: z.ZodOptional; updatedAt: z.ZodNumber; durationMs: z.ZodOptional; message: z.ZodOptional; retryable: z.ZodOptional; userVisible: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }, { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }>; export declare const BootstrapStatusSchema: z.ZodObject<{ bootSessionId: z.ZodString; lifecycle: z.ZodEnum<["booting", "completed", "degraded", "failed", "dismissed"]>; startedAt: z.ZodNumber; updatedAt: z.ZodNumber; completedAt: z.ZodOptional; durationMs: z.ZodOptional; blockingReady: z.ZodDefault; phases: z.ZodArray; label: z.ZodString; description: z.ZodOptional; state: z.ZodEnum<["pending", "running", "ready", "skipped", "warning", "failed", "timed_out"]>; startedAt: z.ZodOptional; completedAt: z.ZodOptional; updatedAt: z.ZodNumber; durationMs: z.ZodOptional; message: z.ZodOptional; retryable: z.ZodOptional; userVisible: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }, { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }>, "many">; summary: z.ZodObject<{ total: z.ZodNumber; pending: z.ZodNumber; running: z.ZodNumber; ready: z.ZodNumber; skipped: z.ZodNumber; warning: z.ZodNumber; failed: z.ZodNumber; timedOut: z.ZodNumber; }, "strip", z.ZodTypeAny, { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }, { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }>; }, "strip", z.ZodTypeAny, { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; blockingReady: boolean; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; }, { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; blockingReady?: boolean | undefined; }>; export declare const SubWindowInfoSchema: z.ZodObject<{ slotInfo: z.ZodObject<{ id: z.ZodString; startMs: z.ZodNumber; phaseMs: z.ZodNumber; driftMs: z.ZodDefault; cycleNumber: z.ZodNumber; utcSeconds: z.ZodNumber; mode: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }, { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }>; windowIdx: z.ZodNumber; }, "strip", z.ZodTypeAny, { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }; }, { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }; }>; export declare const DecodeErrorInfoSchema: z.ZodObject<{ error: z.ZodObject<{ message: z.ZodString; stack: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; stack?: string | undefined; }, { message: string; stack?: string | undefined; }>; request: z.ZodObject<{ slotId: z.ZodString; windowIdx: z.ZodNumber; }, "strip", z.ZodTypeAny, { slotId: string; windowIdx: number; }, { slotId: string; windowIdx: number; }>; }, "strip", z.ZodTypeAny, { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }, { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }>; export declare const FrequencyStateSchema: z.ZodObject<{ frequency: z.ZodNumber; mode: z.ZodString; band: z.ZodString; description: z.ZodString; radioMode: z.ZodOptional; radioConnected: z.ZodBoolean; source: z.ZodOptional>; }, "strip", z.ZodTypeAny, { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }, { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }>; export declare const SpectrumControlInvocationSchema: z.ZodObject<{ id: z.ZodEnum<["zoom-step", "digital-window-toggle", "openwebrx-detail-toggle", "viewport-zoom"]>; action: z.ZodEnum<["in", "out", "toggle"]>; }, "strip", z.ZodTypeAny, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }>; export type SpectrumControlInvocation = z.infer; export declare const PTTStatusSchema: z.ZodObject<{ isTransmitting: z.ZodBoolean; operatorIds: z.ZodArray; }, "strip", z.ZodTypeAny, { operatorIds: string[]; isTransmitting: boolean; }, { operatorIds: string[]; isTransmitting: boolean; }>; export declare const TuneToneStartPayloadSchema: z.ZodObject<{ operatorId: z.ZodOptional; toneHz: z.ZodOptional; }, "strip", z.ZodTypeAny, { operatorId?: string | undefined; toneHz?: number | undefined; }, { operatorId?: string | undefined; toneHz?: number | undefined; }>; export type TuneToneStartPayload = z.infer; export declare const TuneToneStatusSchema: z.ZodObject<{ active: z.ZodBoolean; toneHz: z.ZodNullable; startedAt: z.ZodNullable; maxDurationMs: z.ZodNumber; error: z.ZodOptional; }, "strip", z.ZodTypeAny, { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }, { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }>; export type TuneToneStatus = z.infer; export declare const SquelchStatusSchema: z.ZodObject<{ supported: z.ZodBoolean; open: z.ZodNullable; muted: z.ZodBoolean; source: z.ZodEnum<["hamlib-dcd", "unsupported"]>; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }, { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }>; export declare const OperatorRuntimeSlotSchema: z.ZodEnum<["TX1", "TX2", "TX3", "TX4", "TX5", "TX6"]>; export type OperatorRuntimeSlot = z.infer; export declare const StrategyRuntimeContextSchema: z.ZodObject<{ targetCallsign: z.ZodOptional; targetGrid: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; actualFrequency: z.ZodOptional; }, "strip", z.ZodTypeAny, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }>; export type StrategyRuntimeContext = z.infer; export declare const StrategyRuntimeSnapshotSchema: z.ZodObject<{ currentState: z.ZodString; slots: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; context: z.ZodOptional; targetGrid: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; actualFrequency: z.ZodOptional; }, "strip", z.ZodTypeAny, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }>>; availableSlots: z.ZodOptional>; }, "strip", z.ZodTypeAny, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }>; export type StrategyRuntimeSnapshot = z.infer; export declare const LevelMeterDisplayStyleSchema: z.ZodEnum<["s-meter-dbm", "s-meter", "db-over-s9"]>; export type LevelMeterDisplayStyle = z.infer; /** * Meter level reading * * Depending on the radio/vendor strategy, the same structure can represent: * - branded S-meter output with optional dBm estimate * - branded S-meter output without dBm display * - generic Hamlib STRENGTH output shown as dB relative to S9 */ export declare const LevelMeterReadingSchema: z.ZodObject<{ /** Raw meter reading from the radio or normalized backend value */ raw: z.ZodNumber; /** Percentage (0-100%) */ percent: z.ZodNumber; /** S-unit value (0-9+), supports decimal (e.g., 4.5 = S4.5) */ sUnits: z.ZodNumber; /** dB above S9 (only when >S9, e.g., 20 means S9+20dB) */ dbAboveS9: z.ZodOptional; /** Estimated absolute signal level in dBm (may be approximate depending on strategy) */ dBm: z.ZodNumber; /** Human-readable formatted string (e.g., "S4", "S9+20dB", "-24 dB@S9") */ formatted: z.ZodString; /** Preferred frontend presentation style for this meter reading */ displayStyle: z.ZodEnum<["s-meter-dbm", "s-meter", "db-over-s9"]>; }, "strip", z.ZodTypeAny, { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; }, { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; }>; export type LevelMeterReading = z.infer; export declare const MeterCapabilitiesSchema: z.ZodObject<{ strength: z.ZodBoolean; swr: z.ZodBoolean; alc: z.ZodBoolean; power: z.ZodBoolean; powerWatts: z.ZodBoolean; }, "strip", z.ZodTypeAny, { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; }, { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; }>; export type MeterCapabilities = z.infer; export declare const MeterDataSchema: z.ZodObject<{ swr: z.ZodNullable>; alc: z.ZodNullable>; level: z.ZodNullableS9, e.g., 20 means S9+20dB) */ dbAboveS9: z.ZodOptional; /** Estimated absolute signal level in dBm (may be approximate depending on strategy) */ dBm: z.ZodNumber; /** Human-readable formatted string (e.g., "S4", "S9+20dB", "-24 dB@S9") */ formatted: z.ZodString; /** Preferred frontend presentation style for this meter reading */ displayStyle: z.ZodEnum<["s-meter-dbm", "s-meter", "db-over-s9"]>; }, "strip", z.ZodTypeAny, { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; }, { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; }>>; power: z.ZodNullable; maxWatts: z.ZodNullable; }, "strip", z.ZodTypeAny, { percent: number; raw: number; watts: number | null; maxWatts: number | null; }, { percent: number; raw: number; watts: number | null; maxWatts: number | null; }>>; }, "strip", z.ZodTypeAny, { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }, { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }>; export type SystemStatus = z.infer; export type BootstrapLifecycle = z.infer; export type BootstrapPhaseState = z.infer; export type BootstrapPhaseId = z.infer; export type BootstrapPhaseStatus = z.infer; export type BootstrapStatus = z.infer; export type SubWindowInfo = z.infer; export type DecodeErrorInfo = z.infer; export type FrequencyState = z.infer; export type PTTStatus = z.infer; export type SquelchStatus = z.infer; export type MeterData = z.infer; export declare const WSBaseMessageSchema: z.ZodObject<{ type: z.ZodNativeEnum; timestamp: z.ZodString; id: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: WSMessageType; timestamp: string; id?: string | undefined; }, { type: WSMessageType; timestamp: string; id?: string | undefined; }>; export declare const WSPingMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PING; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.PING; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export declare const WSPongMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PONG; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.PONG; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export declare const WSModeChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ name: z.ZodString; slotMs: z.ZodNumber; toleranceMs: z.ZodDefault; windowTiming: z.ZodArray; transmitTiming: z.ZodNumber; encodeAdvance: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }, { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.MODE_CHANGED; timestamp: string; data: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; id?: string | undefined; }, { type: WSMessageType.MODE_CHANGED; timestamp: string; data: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; id?: string | undefined; }>; export declare const WSSlotStartMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ id: z.ZodString; startMs: z.ZodNumber; phaseMs: z.ZodNumber; driftMs: z.ZodDefault; cycleNumber: z.ZodNumber; utcSeconds: z.ZodNumber; mode: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }, { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SLOT_START; timestamp: string; data: { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }; id?: string | undefined; }, { type: WSMessageType.SLOT_START; timestamp: string; data: { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }; id?: string | undefined; }>; export declare const WSSubWindowMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ slotInfo: z.ZodObject<{ id: z.ZodString; startMs: z.ZodNumber; phaseMs: z.ZodNumber; driftMs: z.ZodDefault; cycleNumber: z.ZodNumber; utcSeconds: z.ZodNumber; mode: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }, { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }>; windowIdx: z.ZodNumber; }, "strip", z.ZodTypeAny, { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }; }, { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SUB_WINDOW; timestamp: string; data: { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }; }; id?: string | undefined; }, { type: WSMessageType.SUB_WINDOW; timestamp: string; data: { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }; }; id?: string | undefined; }>; export declare const WSSlotPackUpdatedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ slotId: z.ZodString; startMs: z.ZodNumber; endMs: z.ZodNumber; frames: z.ZodArray; logbookAnalysis: z.ZodOptional; isNewDxccEntity: z.ZodOptional; isNewBandDxccEntity: z.ZodOptional; isConfirmedDxcc: z.ZodOptional; isNewGrid: z.ZodOptional; callsign: z.ZodOptional; grid: z.ZodOptional; prefix: z.ZodOptional; state: z.ZodOptional; stateConfidence: z.ZodOptional>; dxccId: z.ZodOptional; dxccEntity: z.ZodOptional; dxccStatus: z.ZodOptional>; }, "strip", z.ZodTypeAny, { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; }, { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; }>>; operatorId: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; snr: number; freq: number; dt: number; confidence: number; operatorId?: string | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }, { message: string; snr: number; freq: number; dt: number; operatorId?: string | undefined; confidence?: number | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }>, "many">; stats: z.ZodDefault; successfulDecodes: z.ZodDefault; totalFramesBeforeDedup: z.ZodDefault; totalFramesAfterDedup: z.ZodDefault; lastUpdated: z.ZodDefault; updateSeq: z.ZodOptional; }, "strip", z.ZodTypeAny, { totalDecodes: number; successfulDecodes: number; totalFramesBeforeDedup: number; totalFramesAfterDedup: number; lastUpdated: number; updateSeq?: number | undefined; }, { totalDecodes?: number | undefined; successfulDecodes?: number | undefined; totalFramesBeforeDedup?: number | undefined; totalFramesAfterDedup?: number | undefined; lastUpdated?: number | undefined; updateSeq?: number | undefined; }>>; decodeHistory: z.ZodDefault, "many">>; frequencyContext: z.ZodOptional; mode: z.ZodOptional; band: z.ZodOptional; radioMode: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; }, { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { startMs: number; slotId: string; frames: { message: string; snr: number; freq: number; dt: number; confidence: number; operatorId?: string | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }[]; endMs: number; stats: { totalDecodes: number; successfulDecodes: number; totalFramesBeforeDedup: number; totalFramesAfterDedup: number; lastUpdated: number; updateSeq?: number | undefined; }; decodeHistory: { windowIdx: number; timestamp: number; processingTimeMs: number; frameCount: number; }[]; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; }, { startMs: number; slotId: string; frames: { message: string; snr: number; freq: number; dt: number; operatorId?: string | undefined; confidence?: number | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }[]; endMs: number; stats?: { totalDecodes?: number | undefined; successfulDecodes?: number | undefined; totalFramesBeforeDedup?: number | undefined; totalFramesAfterDedup?: number | undefined; lastUpdated?: number | undefined; updateSeq?: number | undefined; } | undefined; decodeHistory?: { windowIdx: number; timestamp: number; processingTimeMs: number; frameCount: number; }[] | undefined; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SLOT_PACK_UPDATED; timestamp: string; data: { startMs: number; slotId: string; frames: { message: string; snr: number; freq: number; dt: number; confidence: number; operatorId?: string | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }[]; endMs: number; stats: { totalDecodes: number; successfulDecodes: number; totalFramesBeforeDedup: number; totalFramesAfterDedup: number; lastUpdated: number; updateSeq?: number | undefined; }; decodeHistory: { windowIdx: number; timestamp: number; processingTimeMs: number; frameCount: number; }[]; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.SLOT_PACK_UPDATED; timestamp: string; data: { startMs: number; slotId: string; frames: { message: string; snr: number; freq: number; dt: number; operatorId?: string | undefined; confidence?: number | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }[]; endMs: number; stats?: { totalDecodes?: number | undefined; successfulDecodes?: number | undefined; totalFramesBeforeDedup?: number | undefined; totalFramesAfterDedup?: number | undefined; lastUpdated?: number | undefined; updateSeq?: number | undefined; } | undefined; decodeHistory?: { windowIdx: number; timestamp: number; processingTimeMs: number; frameCount: number; }[] | undefined; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; }; id?: string | undefined; }>; export declare const WSSpectrumCapabilitiesMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ profileId: z.ZodNullable; defaultKind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>; sources: z.ZodArray; supported: z.ZodBoolean; available: z.ZodBoolean; defaultSelected: z.ZodBoolean; reason: z.ZodOptional; sourceBinCount: z.ZodOptional>; displayBinCount: z.ZodNumber; supportsWaterfall: z.ZodBoolean; frequencyRangeMode: z.ZodEnum<["absolute", "baseband"]>; }, "strip", z.ZodTypeAny, { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }, { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }, { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SPECTRUM_CAPABILITIES; timestamp: string; data: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }; id?: string | undefined; }, { type: WSMessageType.SPECTRUM_CAPABILITIES; timestamp: string; data: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }; id?: string | undefined; }>; export declare const WSSubscribeSpectrumMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ kind: z.ZodNullable>; }, "strip", z.ZodTypeAny, { kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; }, { kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SUBSCRIBE_SPECTRUM; timestamp: string; data: { kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; }; id?: string | undefined; }, { type: WSMessageType.SUBSCRIBE_SPECTRUM; timestamp: string; data: { kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; }; id?: string | undefined; }>; export declare const WSSpectrumSubscriptionChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ requestedKind: z.ZodNullable>; effectiveKind: z.ZodNullable>; ok: z.ZodBoolean; reason: z.ZodOptional; capabilities: z.ZodOptional; defaultKind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>; sources: z.ZodArray; supported: z.ZodBoolean; available: z.ZodBoolean; defaultSelected: z.ZodBoolean; reason: z.ZodOptional; sourceBinCount: z.ZodOptional>; displayBinCount: z.ZodNumber; supportsWaterfall: z.ZodBoolean; frequencyRangeMode: z.ZodEnum<["absolute", "baseband"]>; }, "strip", z.ZodTypeAny, { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }, { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }, { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }>>; }, "strip", z.ZodTypeAny, { ok: boolean; requestedKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; effectiveKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; reason?: string | undefined; capabilities?: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; } | undefined; }, { ok: boolean; requestedKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; effectiveKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; reason?: string | undefined; capabilities?: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SPECTRUM_SUBSCRIPTION_CHANGED; timestamp: string; data: { ok: boolean; requestedKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; effectiveKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; reason?: string | undefined; capabilities?: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.SPECTRUM_SUBSCRIPTION_CHANGED; timestamp: string; data: { ok: boolean; requestedKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; effectiveKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; reason?: string | undefined; capabilities?: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; } | undefined; }; id?: string | undefined; }>; export declare const WSSpectrumFrameMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ timestamp: z.ZodNumber; kind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>; frequencyRange: z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, "strip", z.ZodTypeAny, { min: number; max: number; }, { min: number; max: number; }>; binaryData: z.ZodObject<{ data: z.ZodString; format: z.ZodObject<{ type: z.ZodLiteral<"int16">; length: z.ZodNumber; scale: z.ZodOptional; offset: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }, { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }>; }, "strip", z.ZodTypeAny, { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }, { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }>; meta: z.ZodObject<{ sourceBinCount: z.ZodNumber; displayBinCount: z.ZodNumber; centerFrequency: z.ZodOptional; spanHz: z.ZodOptional; profileId: z.ZodOptional>; radioModel: z.ZodOptional; }, "strip", z.ZodTypeAny, { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }, { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }>; }, "strip", z.ZodTypeAny, { timestamp: number; frequencyRange: { min: number; max: number; }; binaryData: { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; meta: { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }; }, { timestamp: number; frequencyRange: { min: number; max: number; }; binaryData: { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; meta: { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SPECTRUM_FRAME; timestamp: string; data: { timestamp: number; frequencyRange: { min: number; max: number; }; binaryData: { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; meta: { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.SPECTRUM_FRAME; timestamp: string; data: { timestamp: number; frequencyRange: { min: number; max: number; }; binaryData: { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; meta: { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }; }; id?: string | undefined; }>; export declare const WSSpectrumSessionStateChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ kind: z.ZodNullable>; sourceMode: z.ZodEnum<["baseband", "center", "fixed", "scroll-center", "scroll-fixed", "full", "detail", "unknown"]>; frequencyRangeMode: z.ZodEnum<["baseband", "absolute-center", "absolute-fixed", "absolute-windowed"]>; displayRange: z.ZodNullable>; centerFrequency: z.ZodNullable; currentRadioFrequency: z.ZodNullable; standardFrequencyHz: z.ZodNullable; edgeLowHz: z.ZodNullable; edgeHighHz: z.ZodNullable; spanHz: z.ZodNullable; voice: z.ZodObject<{ radioMode: z.ZodNullable; bandwidthLabel: z.ZodNullable; occupiedBandwidthHz: z.ZodNullable; offsetModel: z.ZodNullable>; }, "strip", z.ZodTypeAny, { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }, { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }>; interaction: z.ZodObject<{ showTxMarkers: z.ZodBoolean; showRxMarkers: z.ZodBoolean; canDragTx: z.ZodBoolean; canRightClickSetFrequency: z.ZodBoolean; canDoubleClickSetFrequency: z.ZodBoolean; canDragFrequency: z.ZodBoolean; frequencyGestureTarget: z.ZodNullable>; frequencyStepHz: z.ZodNullable; presetMarkers: z.ZodArray; clickable: z.ZodBoolean; }, "strip", z.ZodTypeAny, { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }, { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }>, "many">; canDragVoiceOverlay: z.ZodBoolean; showVoiceOverlay: z.ZodBoolean; canLocalViewportZoom: z.ZodBoolean; canLocalViewportPan: z.ZodBoolean; supportsManualRange: z.ZodBoolean; supportsAutoRange: z.ZodBoolean; defaultRangeMode: z.ZodNullable>; }, "strip", z.ZodTypeAny, { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }, { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }>; controls: z.ZodArray; action: z.ZodEnum<["in", "out", "toggle"]>; kind: z.ZodEnum<["server", "local"]>; visible: z.ZodBoolean; enabled: z.ZodBoolean; active: z.ZodBoolean; pending: z.ZodBoolean; }, "strip", z.ZodTypeAny, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }>, "many">; }, "strip", z.ZodTypeAny, { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }, { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SPECTRUM_SESSION_STATE_CHANGED; timestamp: string; data: { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }; id?: string | undefined; }, { type: WSMessageType.SPECTRUM_SESSION_STATE_CHANGED; timestamp: string; data: { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }; id?: string | undefined; }>; export declare const WSInvokeSpectrumControlMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ id: z.ZodEnum<["zoom-step", "digital-window-toggle", "openwebrx-detail-toggle", "viewport-zoom"]>; action: z.ZodEnum<["in", "out", "toggle"]>; }, "strip", z.ZodTypeAny, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.INVOKE_SPECTRUM_CONTROL; timestamp: string; data: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }; id?: string | undefined; }, { type: WSMessageType.INVOKE_SPECTRUM_CONTROL; timestamp: string; data: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }; id?: string | undefined; }>; export declare const WSDecodeErrorMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ error: z.ZodObject<{ message: z.ZodString; stack: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; stack?: string | undefined; }, { message: string; stack?: string | undefined; }>; request: z.ZodObject<{ slotId: z.ZodString; windowIdx: z.ZodNumber; }, "strip", z.ZodTypeAny, { slotId: string; windowIdx: number; }, { slotId: string; windowIdx: number; }>; }, "strip", z.ZodTypeAny, { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }, { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.DECODE_ERROR; timestamp: string; data: { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }; id?: string | undefined; }, { type: WSMessageType.DECODE_ERROR; timestamp: string; data: { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }; id?: string | undefined; }>; export declare const WSSystemStatusMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ isRunning: z.ZodBoolean; isDecoding: z.ZodBoolean; currentMode: z.ZodObject<{ name: z.ZodString; slotMs: z.ZodNumber; toleranceMs: z.ZodDefault; windowTiming: z.ZodArray; transmitTiming: z.ZodNumber; encodeAdvance: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }, { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }>; currentTime: z.ZodNumber; nextSlotIn: z.ZodNumber; audioStarted: z.ZodBoolean; radioConnected: z.ZodOptional; radioConnectionHealth: z.ZodOptional>; /** 引擎模式:digital(FT8/FT4)、voice(语音通联)或 cw(莫尔斯码) */ engineMode: z.ZodDefault>; /** 当前电台调制模式(语音模式下使用,如 USB/LSB/FM/AM) */ currentRadioMode: z.ZodOptional; /** 引擎状态机当前状态 */ engineState: z.ZodOptional>; /** 引擎状态机上下文的精简投影 */ engineContext: z.ZodOptional; startedResources: z.ZodOptional>; forcedStop: z.ZodOptional; }, "strip", z.ZodTypeAny, { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; }, { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; engineMode: "voice" | "cw" | "digital"; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }, { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; engineMode?: "voice" | "cw" | "digital" | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SYSTEM_STATUS; timestamp: string; data: { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; engineMode: "voice" | "cw" | "digital"; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }; id?: string | undefined; }, { type: WSMessageType.SYSTEM_STATUS; timestamp: string; data: { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; engineMode?: "voice" | "cw" | "digital" | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }; id?: string | undefined; }>; export declare const WSBootstrapStatusChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ bootSessionId: z.ZodString; lifecycle: z.ZodEnum<["booting", "completed", "degraded", "failed", "dismissed"]>; startedAt: z.ZodNumber; updatedAt: z.ZodNumber; completedAt: z.ZodOptional; durationMs: z.ZodOptional; blockingReady: z.ZodDefault; phases: z.ZodArray; label: z.ZodString; description: z.ZodOptional; state: z.ZodEnum<["pending", "running", "ready", "skipped", "warning", "failed", "timed_out"]>; startedAt: z.ZodOptional; completedAt: z.ZodOptional; updatedAt: z.ZodNumber; durationMs: z.ZodOptional; message: z.ZodOptional; retryable: z.ZodOptional; userVisible: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }, { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }>, "many">; summary: z.ZodObject<{ total: z.ZodNumber; pending: z.ZodNumber; running: z.ZodNumber; ready: z.ZodNumber; skipped: z.ZodNumber; warning: z.ZodNumber; failed: z.ZodNumber; timedOut: z.ZodNumber; }, "strip", z.ZodTypeAny, { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }, { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }>; }, "strip", z.ZodTypeAny, { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; blockingReady: boolean; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; }, { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; blockingReady?: boolean | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.BOOTSTRAP_STATUS_CHANGED; timestamp: string; data: { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; blockingReady: boolean; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; }; id?: string | undefined; }, { type: WSMessageType.BOOTSTRAP_STATUS_CHANGED; timestamp: string; data: { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; blockingReady?: boolean | undefined; }; id?: string | undefined; }>; export declare const WSClientCountChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ count: z.ZodNumber; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; count: number; }, { timestamp: number; count: number; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CLIENT_COUNT_CHANGED; timestamp: string; data: { timestamp: number; count: number; }; id?: string | undefined; }, { type: WSMessageType.CLIENT_COUNT_CHANGED; timestamp: string; data: { timestamp: number; count: number; }; id?: string | undefined; }>; export declare const WSClockStatusChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ appliedOffsetMs: z.ZodNumber; indicatorState: z.ZodEnum<["ok", "warn", "alert", "stale", "failed", "never"]>; }, "strip", z.ZodTypeAny, { appliedOffsetMs: number; indicatorState: "never" | "warn" | "failed" | "stale" | "ok" | "alert"; }, { appliedOffsetMs: number; indicatorState: "never" | "warn" | "failed" | "stale" | "ok" | "alert"; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CLOCK_STATUS_CHANGED; timestamp: string; data: { appliedOffsetMs: number; indicatorState: "never" | "warn" | "failed" | "stale" | "ok" | "alert"; }; id?: string | undefined; }, { type: WSMessageType.CLOCK_STATUS_CHANGED; timestamp: string; data: { appliedOffsetMs: number; indicatorState: "never" | "warn" | "failed" | "stale" | "ok" | "alert"; }; id?: string | undefined; }>; export declare const WSErrorMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ message: z.ZodString; userMessage: z.ZodOptional; /** 前端 i18n 翻译键(优先用于 Toast 副标题本地化) */ userMessageKey: z.ZodOptional; userMessageParams: z.ZodOptional>>; code: z.ZodOptional; severity: z.ZodOptional>; suggestions: z.ZodOptional>; timestamp: z.ZodOptional>; context: z.ZodOptional>; details: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; code?: string | undefined; timestamp?: string | number | undefined; details?: any; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; }, { message: string; code?: string | undefined; timestamp?: string | number | undefined; details?: any; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.ERROR; timestamp: string; data: { message: string; code?: string | undefined; timestamp?: string | number | undefined; details?: any; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; }; id?: string | undefined; }, { type: WSMessageType.ERROR; timestamp: string; data: { message: string; code?: string | undefined; timestamp?: string | number | undefined; details?: any; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; }; id?: string | undefined; }>; export declare const WSLogbookChangeNoticeMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ logBookId: z.ZodString; operatorId: z.ZodOptional; }, "strip", z.ZodTypeAny, { logBookId: string; operatorId?: string | undefined; }, { logBookId: string; operatorId?: string | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.LOGBOOK_CHANGE_NOTICE; timestamp: string; data: { logBookId: string; operatorId?: string | undefined; }; id?: string | undefined; }, { type: WSMessageType.LOGBOOK_CHANGE_NOTICE; timestamp: string; data: { logBookId: string; operatorId?: string | undefined; }; id?: string | undefined; }>; export declare const WSStartEngineMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.START_ENGINE; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.START_ENGINE; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export declare const WSStopEngineMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.STOP_ENGINE; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.STOP_ENGINE; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export declare const WSSetModeMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ mode: z.ZodObject<{ name: z.ZodString; slotMs: z.ZodNumber; toleranceMs: z.ZodDefault; windowTiming: z.ZodArray; transmitTiming: z.ZodNumber; encodeAdvance: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }, { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }>; }, "strip", z.ZodTypeAny, { mode: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; }, { mode: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_MODE; timestamp: string; data: { mode: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; }; id?: string | undefined; }, { type: WSMessageType.SET_MODE; timestamp: string; data: { mode: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; }; id?: string | undefined; }>; export declare const WSGetStatusMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.GET_STATUS; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.GET_STATUS; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; /** * 电台操作员状态信息 */ export declare const OperatorStatusSchema: z.ZodObject<{ id: z.ZodString; isActive: z.ZodBoolean; isTransmitting: z.ZodBoolean; isInActivePTT: z.ZodOptional; currentSlot: z.ZodOptional; context: z.ZodObject<{ myCall: z.ZodString; myGrid: z.ZodString; targetCall: z.ZodString; targetGrid: z.ZodOptional; frequency: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; }, "strip", z.ZodTypeAny, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }>; strategy: z.ZodObject<{ name: z.ZodString; state: z.ZodString; availableSlots: z.ZodArray; }, "strip", z.ZodTypeAny, { name: string; state: string; availableSlots: string[]; }, { name: string; state: string; availableSlots: string[]; }>; runtime: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; context: z.ZodOptional; targetGrid: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; actualFrequency: z.ZodOptional; }, "strip", z.ZodTypeAny, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }>>; availableSlots: z.ZodOptional>; }, "strip", z.ZodTypeAny, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }>>; slots: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; transmitCycles: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }>; export type OperatorStatus = z.infer; /** * 获取操作员列表消息 */ export declare const WSGetOperatorsMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; }, "strip", z.ZodTypeAny, { type: WSMessageType.GET_OPERATORS; timestamp: string; id?: string | undefined; }, { type: WSMessageType.GET_OPERATORS; timestamp: string; id?: string | undefined; }>; /** * 操作员列表响应消息 */ export declare const WSOperatorsListMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operators: z.ZodArray; currentSlot: z.ZodOptional; context: z.ZodObject<{ myCall: z.ZodString; myGrid: z.ZodString; targetCall: z.ZodString; targetGrid: z.ZodOptional; frequency: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; }, "strip", z.ZodTypeAny, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }>; strategy: z.ZodObject<{ name: z.ZodString; state: z.ZodString; availableSlots: z.ZodArray; }, "strip", z.ZodTypeAny, { name: string; state: string; availableSlots: string[]; }, { name: string; state: string; availableSlots: string[]; }>; runtime: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; context: z.ZodOptional; targetGrid: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; actualFrequency: z.ZodOptional; }, "strip", z.ZodTypeAny, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }>>; availableSlots: z.ZodOptional>; }, "strip", z.ZodTypeAny, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }>>; slots: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; transmitCycles: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { operators: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }[]; }, { operators: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.OPERATORS_LIST; timestamp: string; data: { operators: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }[]; }; id?: string | undefined; }, { type: WSMessageType.OPERATORS_LIST; timestamp: string; data: { operators: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }[]; }; id?: string | undefined; }>; /** * 操作员状态更新消息 */ export declare const WSOperatorStatusUpdateMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ id: z.ZodString; isActive: z.ZodBoolean; isTransmitting: z.ZodBoolean; isInActivePTT: z.ZodOptional; currentSlot: z.ZodOptional; context: z.ZodObject<{ myCall: z.ZodString; myGrid: z.ZodString; targetCall: z.ZodString; targetGrid: z.ZodOptional; frequency: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; }, "strip", z.ZodTypeAny, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }>; strategy: z.ZodObject<{ name: z.ZodString; state: z.ZodString; availableSlots: z.ZodArray; }, "strip", z.ZodTypeAny, { name: string; state: string; availableSlots: string[]; }, { name: string; state: string; availableSlots: string[]; }>; runtime: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; context: z.ZodOptional; targetGrid: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; actualFrequency: z.ZodOptional; }, "strip", z.ZodTypeAny, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }>>; availableSlots: z.ZodOptional>; }, "strip", z.ZodTypeAny, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }>>; slots: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; transmitCycles: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.OPERATOR_STATUS_UPDATE; timestamp: string; data: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }; id?: string | undefined; }, { type: WSMessageType.OPERATOR_STATUS_UPDATE; timestamp: string; data: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }; id?: string | undefined; }>; /** * 设置操作员上下文消息 */ export declare const WSSetOperatorContextMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; context: z.ZodObject<{ myCall: z.ZodOptional; myGrid: z.ZodOptional; targetCallsign: z.ZodOptional; targetGrid: z.ZodOptional; frequency: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; }, "strip", z.ZodTypeAny, { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }, { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }>; }, "strip", z.ZodTypeAny, { operatorId: string; context: { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }; }, { operatorId: string; context: { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_OPERATOR_CONTEXT; timestamp: string; data: { operatorId: string; context: { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.SET_OPERATOR_CONTEXT; timestamp: string; data: { operatorId: string; context: { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }; }; id?: string | undefined; }>; /** * 设置操作员运行时状态消息 */ export declare const WSSetOperatorRuntimeStateMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; state: z.ZodEnum<["TX1", "TX2", "TX3", "TX4", "TX5", "TX6"]>; }, "strip", z.ZodTypeAny, { operatorId: string; state: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; }, { operatorId: string; state: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_OPERATOR_RUNTIME_STATE; timestamp: string; data: { operatorId: string; state: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; }; id?: string | undefined; }, { type: WSMessageType.SET_OPERATOR_RUNTIME_STATE; timestamp: string; data: { operatorId: string; state: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; }; id?: string | undefined; }>; /** * 设置操作员运行时槽位内容消息 */ export declare const WSSetOperatorRuntimeSlotContentMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; slot: z.ZodEnum<["TX1", "TX2", "TX3", "TX4", "TX5", "TX6"]>; content: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; slot: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; content: string; }, { operatorId: string; slot: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; content: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_OPERATOR_RUNTIME_SLOT_CONTENT; timestamp: string; data: { operatorId: string; slot: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; content: string; }; id?: string | undefined; }, { type: WSMessageType.SET_OPERATOR_RUNTIME_SLOT_CONTENT; timestamp: string; data: { operatorId: string; slot: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; content: string; }; id?: string | undefined; }>; /** * 设置操作员发射周期消息 */ export declare const WSSetOperatorTransmitCyclesMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; transmitCycles: z.ZodArray; }, "strip", z.ZodTypeAny, { operatorId: string; transmitCycles: number[]; }, { operatorId: string; transmitCycles: number[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_OPERATOR_TRANSMIT_CYCLES; timestamp: string; data: { operatorId: string; transmitCycles: number[]; }; id?: string | undefined; }, { type: WSMessageType.SET_OPERATOR_TRANSMIT_CYCLES; timestamp: string; data: { operatorId: string; transmitCycles: number[]; }; id?: string | undefined; }>; /** * 启动操作员消息 */ export declare const WSStartOperatorMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; }, { operatorId: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.START_OPERATOR; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }, { type: WSMessageType.START_OPERATOR; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }>; /** * 停止操作员消息 */ export declare const WSStopOperatorMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; }, { operatorId: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.STOP_OPERATOR; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }, { type: WSMessageType.STOP_OPERATOR; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }>; /** * 手动双击消息行时附带的原始解码快照 */ export declare const WSSelectedFrameSchema: z.ZodObject<{ message: z.ZodString; snr: z.ZodNumber; dt: z.ZodNumber; freq: z.ZodNumber; slotStartMs: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; snr: number; freq: number; dt: number; slotStartMs: number; }, { message: string; snr: number; freq: number; dt: number; slotStartMs: number; }>; /** * 操作员请求手动呼叫消息 */ export declare const WSOperatorRequestCallMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; callsign: z.ZodString; selectedFrame: z.ZodOptional>; }, "strip", z.ZodTypeAny, { operatorId: string; callsign: string; selectedFrame?: { message: string; snr: number; freq: number; dt: number; slotStartMs: number; } | undefined; }, { operatorId: string; callsign: string; selectedFrame?: { message: string; snr: number; freq: number; dt: number; slotStartMs: number; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.OPERATOR_REQUEST_CALL; timestamp: string; data: { operatorId: string; callsign: string; selectedFrame?: { message: string; snr: number; freq: number; dt: number; slotStartMs: number; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.OPERATOR_REQUEST_CALL; timestamp: string; data: { operatorId: string; callsign: string; selectedFrame?: { message: string; snr: number; freq: number; dt: number; slotStartMs: number; } | undefined; }; id?: string | undefined; }>; /** * 设置客户端启用的操作员列表消息 */ export declare const WSSetClientEnabledOperatorsMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ enabledOperatorIds: z.ZodArray; }, "strip", z.ZodTypeAny, { enabledOperatorIds: string[]; }, { enabledOperatorIds: string[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_CLIENT_ENABLED_OPERATORS; timestamp: string; data: { enabledOperatorIds: string[]; }; id?: string | undefined; }, { type: WSMessageType.SET_CLIENT_ENABLED_OPERATORS; timestamp: string; data: { enabledOperatorIds: string[]; }; id?: string | undefined; }>; /** * 设置客户端当前选中操作员消息 */ export declare const WSSetClientSelectedOperatorMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ selectedOperatorId: z.ZodNullable; }, "strip", z.ZodTypeAny, { selectedOperatorId: string | null; }, { selectedOperatorId: string | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_CLIENT_SELECTED_OPERATOR; timestamp: string; data: { selectedOperatorId: string | null; }; id?: string | undefined; }, { type: WSMessageType.SET_CLIENT_SELECTED_OPERATOR; timestamp: string; data: { selectedOperatorId: string | null; }; id?: string | undefined; }>; /** * 客户端握手消息 */ export declare const WSClientHandshakeMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ enabledOperatorIds: z.ZodNullable>; selectedOperatorId: z.ZodOptional>; clientInstanceId: z.ZodString; clientVersion: z.ZodOptional; clientCapabilities: z.ZodOptional>; }, "strip", z.ZodTypeAny, { enabledOperatorIds: string[] | null; clientInstanceId: string; selectedOperatorId?: string | null | undefined; clientVersion?: string | undefined; clientCapabilities?: string[] | undefined; }, { enabledOperatorIds: string[] | null; clientInstanceId: string; selectedOperatorId?: string | null | undefined; clientVersion?: string | undefined; clientCapabilities?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CLIENT_HANDSHAKE; timestamp: string; data: { enabledOperatorIds: string[] | null; clientInstanceId: string; selectedOperatorId?: string | null | undefined; clientVersion?: string | undefined; clientCapabilities?: string[] | undefined; }; id?: string | undefined; }, { type: WSMessageType.CLIENT_HANDSHAKE; timestamp: string; data: { enabledOperatorIds: string[] | null; clientInstanceId: string; selectedOperatorId?: string | null | undefined; clientVersion?: string | undefined; clientCapabilities?: string[] | undefined; }; id?: string | undefined; }>; /** * 服务器握手完成消息 */ export declare const WSServerHandshakeCompleteMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ serverVersion: z.ZodOptional; supportedFeatures: z.ZodOptional>; finalEnabledOperatorIds: z.ZodOptional>; finalSelectedOperatorId: z.ZodOptional>; }, "strip", z.ZodTypeAny, { serverVersion?: string | undefined; supportedFeatures?: string[] | undefined; finalEnabledOperatorIds?: string[] | undefined; finalSelectedOperatorId?: string | null | undefined; }, { serverVersion?: string | undefined; supportedFeatures?: string[] | undefined; finalEnabledOperatorIds?: string[] | undefined; finalSelectedOperatorId?: string | null | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SERVER_HANDSHAKE_COMPLETE; timestamp: string; data: { serverVersion?: string | undefined; supportedFeatures?: string[] | undefined; finalEnabledOperatorIds?: string[] | undefined; finalSelectedOperatorId?: string | null | undefined; }; id?: string | undefined; }, { type: WSMessageType.SERVER_HANDSHAKE_COMPLETE; timestamp: string; data: { serverVersion?: string | undefined; supportedFeatures?: string[] | undefined; finalEnabledOperatorIds?: string[] | undefined; finalSelectedOperatorId?: string | null | undefined; }; id?: string | undefined; }>; export declare const WSSlotPacksResetMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ phase: z.ZodEnum<["start", "complete"]>; }, "strip", z.ZodTypeAny, { phase: "start" | "complete"; }, { phase: "start" | "complete"; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SLOT_PACKS_RESET; timestamp: string; data: { phase: "start" | "complete"; }; id?: string | undefined; }, { type: WSMessageType.SLOT_PACKS_RESET; timestamp: string; data: { phase: "start" | "complete"; }; id?: string | undefined; }>; export type WSGetOperatorsMessage = z.infer; export type WSOperatorsListMessage = z.infer; export type WSOperatorStatusUpdateMessage = z.infer; export type WSSetOperatorContextMessage = z.infer; export type WSSetOperatorRuntimeStateMessage = z.infer; export type WSSetOperatorRuntimeSlotContentMessage = z.infer; export type WSSetOperatorTransmitCyclesMessage = z.infer; export type WSStartOperatorMessage = z.infer; export type WSStopOperatorMessage = z.infer; export type WSSelectedFrame = z.infer; export type WSOperatorRequestCallMessage = z.infer; export type WSSetClientEnabledOperatorsMessage = z.infer; export type WSSetClientSelectedOperatorMessage = z.infer; export type WSClientHandshakeMessage = z.infer; export type WSServerHandshakeCompleteMessage = z.infer; export type WSSlotPacksResetMessage = z.infer; /** * 发射日志消息 */ export declare const WSTransmissionLogMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; time: z.ZodString; message: z.ZodString; frequency: z.ZodNumber; slotStartMs: z.ZodNumber; replaceExisting: z.ZodOptional; frequencyContext: z.ZodOptional; mode: z.ZodOptional; band: z.ZodOptional; radioMode: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; }, { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { message: string; operatorId: string; frequency: number; time: string; slotStartMs: number; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; replaceExisting?: boolean | undefined; }, { message: string; operatorId: string; frequency: number; time: string; slotStartMs: number; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; replaceExisting?: boolean | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.TRANSMISSION_LOG; timestamp: string; data: { message: string; operatorId: string; frequency: number; time: string; slotStartMs: number; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; replaceExisting?: boolean | undefined; }; id?: string | undefined; }, { type: WSMessageType.TRANSMISSION_LOG; timestamp: string; data: { message: string; operatorId: string; frequency: number; time: string; slotStartMs: number; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; replaceExisting?: boolean | undefined; }; id?: string | undefined; }>; export type WSTransmissionLogMessage = z.infer; /** * 设置音量增益消息(线性单位) */ export declare const WSSetVolumeGainMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ gain: z.ZodNumber; }, "strip", z.ZodTypeAny, { gain: number; }, { gain: number; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_VOLUME_GAIN; timestamp: string; data: { gain: number; }; id?: string | undefined; }, { type: WSMessageType.SET_VOLUME_GAIN; timestamp: string; data: { gain: number; }; id?: string | undefined; }>; export type WSSetVolumeGainMessage = z.infer; /** * 设置音量增益消息(dB单位) */ export declare const WSSetVolumeGainDbMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ gainDb: z.ZodNumber; }, "strip", z.ZodTypeAny, { gainDb: number; }, { gainDb: number; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_VOLUME_GAIN_DB; timestamp: string; data: { gainDb: number; }; id?: string | undefined; }, { type: WSMessageType.SET_VOLUME_GAIN_DB; timestamp: string; data: { gainDb: number; }; id?: string | undefined; }>; export type WSSetVolumeGainDbMessage = z.infer; /** * QSO记录添加消息(服务端到客户端) */ export declare const WSQSORecordAddedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; logBookId: z.ZodString; qsoRecord: z.ZodObject<{ id: z.ZodString; callsign: z.ZodString; grid: z.ZodOptional; frequency: z.ZodNumber; mode: z.ZodString; submode: z.ZodOptional; startTime: z.ZodNumber; endTime: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; messageHistory: z.ZodArray; comment: z.ZodOptional; myCallsign: z.ZodOptional; myGrid: z.ZodOptional; qth: z.ZodOptional; dxccId: z.ZodOptional; dxccEntity: z.ZodOptional; dxccStatus: z.ZodOptional>; countryCode: z.ZodOptional; cqZone: z.ZodOptional; ituZone: z.ZodOptional; dxccSource: z.ZodOptional>; dxccConfidence: z.ZodOptional>; dxccResolvedAt: z.ZodOptional; dxccResolverVersion: z.ZodOptional; dxccNeedsReview: z.ZodOptional; stationLocationId: z.ZodOptional; myDxccId: z.ZodOptional; myCqZone: z.ZodOptional; myItuZone: z.ZodOptional; myState: z.ZodOptional; myCounty: z.ZodOptional; myIota: z.ZodOptional; lotwQslSent: z.ZodOptional>; lotwQslReceived: z.ZodOptional>; lotwQslSentDate: z.ZodOptional; lotwQslReceivedDate: z.ZodOptional; qrzQslSent: z.ZodOptional>; qrzQslReceived: z.ZodOptional>; qrzQslSentDate: z.ZodOptional; qrzQslReceivedDate: z.ZodOptional; notes: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }, { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }>; }, "strip", z.ZodTypeAny, { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }, { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.QSO_RECORD_ADDED; timestamp: string; data: { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.QSO_RECORD_ADDED; timestamp: string; data: { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }; id?: string | undefined; }>; export type WSQSORecordAddedMessage = z.infer; /** * QSO记录更新消息(服务端到客户端) */ export declare const WSQSORecordUpdatedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; logBookId: z.ZodString; qsoRecord: z.ZodObject<{ id: z.ZodString; callsign: z.ZodString; grid: z.ZodOptional; frequency: z.ZodNumber; mode: z.ZodString; submode: z.ZodOptional; startTime: z.ZodNumber; endTime: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; messageHistory: z.ZodArray; comment: z.ZodOptional; myCallsign: z.ZodOptional; myGrid: z.ZodOptional; qth: z.ZodOptional; dxccId: z.ZodOptional; dxccEntity: z.ZodOptional; dxccStatus: z.ZodOptional>; countryCode: z.ZodOptional; cqZone: z.ZodOptional; ituZone: z.ZodOptional; dxccSource: z.ZodOptional>; dxccConfidence: z.ZodOptional>; dxccResolvedAt: z.ZodOptional; dxccResolverVersion: z.ZodOptional; dxccNeedsReview: z.ZodOptional; stationLocationId: z.ZodOptional; myDxccId: z.ZodOptional; myCqZone: z.ZodOptional; myItuZone: z.ZodOptional; myState: z.ZodOptional; myCounty: z.ZodOptional; myIota: z.ZodOptional; lotwQslSent: z.ZodOptional>; lotwQslReceived: z.ZodOptional>; lotwQslSentDate: z.ZodOptional; lotwQslReceivedDate: z.ZodOptional; qrzQslSent: z.ZodOptional>; qrzQslReceived: z.ZodOptional>; qrzQslSentDate: z.ZodOptional; qrzQslReceivedDate: z.ZodOptional; notes: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }, { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }>; }, "strip", z.ZodTypeAny, { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }, { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.QSO_RECORD_UPDATED; timestamp: string; data: { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.QSO_RECORD_UPDATED; timestamp: string; data: { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }; id?: string | undefined; }>; export type WSQSORecordUpdatedMessage = z.infer; /** * 日志本更新消息(服务端到客户端) */ export declare const WSLogbookUpdatedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ logBookId: z.ZodString; statistics: z.ZodObject<{ totalQSOs: z.ZodNumber; totalOperators: z.ZodNumber; uniqueCallsigns: z.ZodNumber; lastQSO: z.ZodOptional; firstQSO: z.ZodOptional; dxcc: z.ZodOptional; total: z.ZodDefault; deleted: z.ZodDefault; }, "strip", z.ZodTypeAny, { current: number; deleted: number; total: number; }, { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }>; confirmed: z.ZodObject<{ current: z.ZodDefault; total: z.ZodDefault; deleted: z.ZodDefault; }, "strip", z.ZodTypeAny, { current: number; deleted: number; total: number; }, { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }>; reviewCount: z.ZodDefault; byBand: z.ZodDefault; confirmed: z.ZodDefault; }, "strip", z.ZodTypeAny, { key: string; worked: number; confirmed: number; }, { key: string; worked?: number | undefined; confirmed?: number | undefined; }>, "many">>; byMode: z.ZodDefault; confirmed: z.ZodDefault; }, "strip", z.ZodTypeAny, { key: string; worked: number; confirmed: number; }, { key: string; worked?: number | undefined; confirmed?: number | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { worked: { current: number; deleted: number; total: number; }; confirmed: { current: number; deleted: number; total: number; }; reviewCount: number; byBand: { key: string; worked: number; confirmed: number; }[]; byMode: { key: string; worked: number; confirmed: number; }[]; }, { worked: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; confirmed: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; reviewCount?: number | undefined; byBand?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; byMode?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current: number; deleted: number; total: number; }; confirmed: { current: number; deleted: number; total: number; }; reviewCount: number; byBand: { key: string; worked: number; confirmed: number; }[]; byMode: { key: string; worked: number; confirmed: number; }[]; } | undefined; }, { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; confirmed: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; reviewCount?: number | undefined; byBand?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; byMode?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; } | undefined; }>; }, "strip", z.ZodTypeAny, { logBookId: string; statistics: { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current: number; deleted: number; total: number; }; confirmed: { current: number; deleted: number; total: number; }; reviewCount: number; byBand: { key: string; worked: number; confirmed: number; }[]; byMode: { key: string; worked: number; confirmed: number; }[]; } | undefined; }; }, { logBookId: string; statistics: { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; confirmed: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; reviewCount?: number | undefined; byBand?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; byMode?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; } | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.LOGBOOK_UPDATED; timestamp: string; data: { logBookId: string; statistics: { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current: number; deleted: number; total: number; }; confirmed: { current: number; deleted: number; total: number; }; reviewCount: number; byBand: { key: string; worked: number; confirmed: number; }[]; byMode: { key: string; worked: number; confirmed: number; }[]; } | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.LOGBOOK_UPDATED; timestamp: string; data: { logBookId: string; statistics: { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; confirmed: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; reviewCount?: number | undefined; byBand?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; byMode?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; } | undefined; }; }; id?: string | undefined; }>; export type WSLogbookUpdatedMessage = z.infer; /** * 电台状态变化消息 */ export declare const WSRadioStatusChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ connected: z.ZodBoolean; status: z.ZodNativeEnum; radioInfo: z.ZodNullable; connectionType: z.ZodEnum<["serial", "network", "icom-wlan"]>; firmwareVersion: z.ZodOptional; serialNumber: z.ZodOptional; }, "strip", z.ZodTypeAny, { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; }, { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; }>>; radioConfig: z.ZodOptional; 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; }>>; reason: z.ZodOptional; message: z.ZodOptional; recommendation: z.ZodOptional; reconnectProgress: z.ZodOptional; }, "strip", z.ZodTypeAny, { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; }, { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; }>>; connectionHealth: z.ZodOptional>; coreCapabilities: z.ZodOptional>; coreCapabilityDiagnostics: z.ZodOptional; message: z.ZodString; stack: z.ZodString; recordedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }>>; writeFrequency: z.ZodOptional; message: z.ZodString; stack: z.ZodString; recordedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }>>; readRadioMode: z.ZodOptional; message: z.ZodString; stack: z.ZodString; recordedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }>>; writeRadioMode: z.ZodOptional; message: z.ZodString; stack: z.ZodString; recordedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }>>; }, "strip", z.ZodTypeAny, { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; }, { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; }>>; meterCapabilities: z.ZodOptional>; /** @deprecated Tuner capability is now in radioCapabilityList event. Kept for backward compat. */ tunerCapabilities: z.ZodOptional>; }, "strip", z.ZodTypeAny, { status: import("./radio.schema.js").RadioConnectionStatus; connected: boolean; radioInfo: { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; } | null; message?: string | undefined; reason?: string | undefined; radioConfig?: { 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; } | undefined; recommendation?: string | undefined; reconnectProgress?: { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; } | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; coreCapabilities?: { readFrequency: boolean; writeFrequency: boolean; readRadioMode: boolean; writeRadioMode: boolean; } | undefined; coreCapabilityDiagnostics?: { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; } | undefined; meterCapabilities?: { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; } | undefined; tunerCapabilities?: { supported: boolean; hasSwitch: boolean; hasManualTune: boolean; } | undefined; }, { status: import("./radio.schema.js").RadioConnectionStatus; connected: boolean; radioInfo: { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; } | null; message?: string | undefined; reason?: string | undefined; radioConfig?: { 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; } | undefined; recommendation?: string | undefined; reconnectProgress?: { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; } | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; coreCapabilities?: { readFrequency: boolean; writeFrequency: boolean; readRadioMode: boolean; writeRadioMode: boolean; } | undefined; coreCapabilityDiagnostics?: { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; } | undefined; meterCapabilities?: { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; } | undefined; tunerCapabilities?: { supported: boolean; hasSwitch: boolean; hasManualTune: boolean; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_STATUS_CHANGED; timestamp: string; data: { status: import("./radio.schema.js").RadioConnectionStatus; connected: boolean; radioInfo: { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; } | null; message?: string | undefined; reason?: string | undefined; radioConfig?: { 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; } | undefined; recommendation?: string | undefined; reconnectProgress?: { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; } | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; coreCapabilities?: { readFrequency: boolean; writeFrequency: boolean; readRadioMode: boolean; writeRadioMode: boolean; } | undefined; coreCapabilityDiagnostics?: { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; } | undefined; meterCapabilities?: { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; } | undefined; tunerCapabilities?: { supported: boolean; hasSwitch: boolean; hasManualTune: boolean; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.RADIO_STATUS_CHANGED; timestamp: string; data: { status: import("./radio.schema.js").RadioConnectionStatus; connected: boolean; radioInfo: { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; } | null; message?: string | undefined; reason?: string | undefined; radioConfig?: { 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; } | undefined; recommendation?: string | undefined; reconnectProgress?: { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; } | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; coreCapabilities?: { readFrequency: boolean; writeFrequency: boolean; readRadioMode: boolean; writeRadioMode: boolean; } | undefined; coreCapabilityDiagnostics?: { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; } | undefined; meterCapabilities?: { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; } | undefined; tunerCapabilities?: { supported: boolean; hasSwitch: boolean; hasManualTune: boolean; } | undefined; }; id?: string | undefined; }>; export type WSRadioStatusChangedMessage = z.infer; /** * 电台错误事件数据(专用错误频道) * 包含完整的错误信息、解决建议、Profile 关联等 */ export declare const RadioErrorEventDataSchema: z.ZodObject<{ /** 技术错误消息(精简摘要;完整原始内容在 context.rawHamlibTrace) */ message: z.ZodString; /** 用户友好的错误消息(兜底英文文案) */ userMessage: z.ZodString; /** 前端 i18n 翻译键,格式如 'radio:error.xxx';存在时前端优先使用 t() */ userMessageKey: z.ZodOptional; /** i18n 参数(与 userMessageKey 配合) */ userMessageParams: z.ZodOptional>>; /** 解决建议列表 */ suggestions: z.ZodDefault>; /** 错误代码(RadioErrorCode) */ code: z.ZodOptional; /** 严重程度 */ severity: z.ZodDefault>; /** ISO 时间戳(服务端生成) */ timestamp: z.ZodString; /** 错误堆栈(仅非生产环境) */ stack: z.ZodOptional; /** 错误上下文 */ context: z.ZodOptional>; /** 连接健康状态 */ connectionHealth: z.ZodOptional>; /** 关联的 Profile ID */ profileId: z.ZodNullable; /** 关联的 Profile 名称 */ profileName: z.ZodNullable; }, "strip", z.ZodTypeAny, { message: string; timestamp: string; profileId: string | null; userMessage: string; suggestions: string[]; profileName: string | null; severity: "error" | "info" | "warning" | "critical"; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; context?: Record | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }, { message: string; timestamp: string; profileId: string | null; userMessage: string; profileName: string | null; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }>; export type RadioErrorEventData = z.infer; /** * 电台错误消息 */ export declare const WSRadioErrorMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ /** 技术错误消息(精简摘要;完整原始内容在 context.rawHamlibTrace) */ message: z.ZodString; /** 用户友好的错误消息(兜底英文文案) */ userMessage: z.ZodString; /** 前端 i18n 翻译键,格式如 'radio:error.xxx';存在时前端优先使用 t() */ userMessageKey: z.ZodOptional; /** i18n 参数(与 userMessageKey 配合) */ userMessageParams: z.ZodOptional>>; /** 解决建议列表 */ suggestions: z.ZodDefault>; /** 错误代码(RadioErrorCode) */ code: z.ZodOptional; /** 严重程度 */ severity: z.ZodDefault>; /** ISO 时间戳(服务端生成) */ timestamp: z.ZodString; /** 错误堆栈(仅非生产环境) */ stack: z.ZodOptional; /** 错误上下文 */ context: z.ZodOptional>; /** 连接健康状态 */ connectionHealth: z.ZodOptional>; /** 关联的 Profile ID */ profileId: z.ZodNullable; /** 关联的 Profile 名称 */ profileName: z.ZodNullable; }, "strip", z.ZodTypeAny, { message: string; timestamp: string; profileId: string | null; userMessage: string; suggestions: string[]; profileName: string | null; severity: "error" | "info" | "warning" | "critical"; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; context?: Record | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }, { message: string; timestamp: string; profileId: string | null; userMessage: string; profileName: string | null; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_ERROR; timestamp: string; data: { message: string; timestamp: string; profileId: string | null; userMessage: string; suggestions: string[]; profileName: string | null; severity: "error" | "info" | "warning" | "critical"; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; context?: Record | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.RADIO_ERROR; timestamp: string; data: { message: string; timestamp: string; profileId: string | null; userMessage: string; profileName: string | null; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }; id?: string | undefined; }>; export type WSRadioErrorMessage = z.infer; /** * 手动重连电台消息(客户端到服务端) */ export declare const WSRadioManualReconnectMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_MANUAL_RECONNECT; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.RADIO_MANUAL_RECONNECT; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export type WSRadioManualReconnectMessage = z.infer; /** * 电台发射中断开连接消息 */ export declare const WSRadioDisconnectedDuringTransmissionMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ reason: z.ZodString; message: z.ZodString; recommendation: z.ZodString; }, "strip", z.ZodTypeAny, { message: string; reason: string; recommendation: string; }, { message: string; reason: string; recommendation: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_DISCONNECTED_DURING_TRANSMISSION; timestamp: string; data: { message: string; reason: string; recommendation: string; }; id?: string | undefined; }, { type: WSMessageType.RADIO_DISCONNECTED_DURING_TRANSMISSION; timestamp: string; data: { message: string; reason: string; recommendation: string; }; id?: string | undefined; }>; export type WSRadioDisconnectedDuringTransmissionMessage = z.infer; /** * 停止电台重连消息(客户端到服务端) */ export declare const WSRadioStopReconnectMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_STOP_RECONNECT; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.RADIO_STOP_RECONNECT; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export type WSRadioStopReconnectMessage = z.infer; /** * 音频 sidecar 状态变化消息(服务端→客户端) */ export declare const WSAudioSidecarStatusChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ status: z.ZodNativeEnum; isConnected: z.ZodBoolean; retryAttempt: z.ZodNumber; nextRetryMs: z.ZodNullable; longRunning: z.ZodBoolean; lastError: z.ZodNullable; message: z.ZodString; userMessage: z.ZodOptional; userMessageKey: z.ZodOptional; userMessageParams: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; }, { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; }>>; deviceName: z.ZodNullable; }, "strip", z.ZodTypeAny, { status: import("./audio-sidecar.schema.js").AudioSidecarStatus; lastError: { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; } | null; nextRetryMs: number | null; isConnected: boolean; retryAttempt: number; longRunning: boolean; deviceName: string | null; }, { status: import("./audio-sidecar.schema.js").AudioSidecarStatus; lastError: { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; } | null; nextRetryMs: number | null; isConnected: boolean; retryAttempt: number; longRunning: boolean; deviceName: string | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUDIO_SIDECAR_STATUS_CHANGED; timestamp: string; data: { status: import("./audio-sidecar.schema.js").AudioSidecarStatus; lastError: { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; } | null; nextRetryMs: number | null; isConnected: boolean; retryAttempt: number; longRunning: boolean; deviceName: string | null; }; id?: string | undefined; }, { type: WSMessageType.AUDIO_SIDECAR_STATUS_CHANGED; timestamp: string; data: { status: import("./audio-sidecar.schema.js").AudioSidecarStatus; lastError: { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; } | null; nextRetryMs: number | null; isConnected: boolean; retryAttempt: number; longRunning: boolean; deviceName: string | null; }; id?: string | undefined; }>; export type WSAudioSidecarStatusChangedMessage = z.infer; /** * 音频立即重试命令(客户端→服务端) */ export declare const WSAudioRetryNowMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUDIO_RETRY_NOW; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.AUDIO_RETRY_NOW; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export type WSAudioRetryNowMessage = z.infer; /** * 电源操作进度事件(服务端→客户端) */ export declare const WSRadioPowerStateMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: 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"]>; errorKey: z.ZodOptional; 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; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_POWER_STATE; timestamp: string; data: { 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; }; id?: string | undefined; }, { type: WSMessageType.RADIO_POWER_STATE; timestamp: string; data: { 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; }; id?: string | undefined; }>; export type WSRadioPowerStateMessage = z.infer; /** * 频率变化消息(服务端到客户端) */ export declare const WSFrequencyChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ frequency: z.ZodNumber; mode: z.ZodString; band: z.ZodString; description: z.ZodString; radioMode: z.ZodOptional; radioConnected: z.ZodBoolean; source: z.ZodOptional>; }, "strip", z.ZodTypeAny, { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }, { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.FREQUENCY_CHANGED; timestamp: string; data: { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }; id?: string | undefined; }, { type: WSMessageType.FREQUENCY_CHANGED; timestamp: string; data: { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }; id?: string | undefined; }>; export type WSFrequencyChangedMessage = z.infer; export declare const WSSpectrumSessionStateChangedOutboundMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ kind: z.ZodNullable>; sourceMode: z.ZodEnum<["baseband", "center", "fixed", "scroll-center", "scroll-fixed", "full", "detail", "unknown"]>; frequencyRangeMode: z.ZodEnum<["baseband", "absolute-center", "absolute-fixed", "absolute-windowed"]>; displayRange: z.ZodNullable>; centerFrequency: z.ZodNullable; currentRadioFrequency: z.ZodNullable; standardFrequencyHz: z.ZodNullable; edgeLowHz: z.ZodNullable; edgeHighHz: z.ZodNullable; spanHz: z.ZodNullable; voice: z.ZodObject<{ radioMode: z.ZodNullable; bandwidthLabel: z.ZodNullable; occupiedBandwidthHz: z.ZodNullable; offsetModel: z.ZodNullable>; }, "strip", z.ZodTypeAny, { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }, { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }>; interaction: z.ZodObject<{ showTxMarkers: z.ZodBoolean; showRxMarkers: z.ZodBoolean; canDragTx: z.ZodBoolean; canRightClickSetFrequency: z.ZodBoolean; canDoubleClickSetFrequency: z.ZodBoolean; canDragFrequency: z.ZodBoolean; frequencyGestureTarget: z.ZodNullable>; frequencyStepHz: z.ZodNullable; presetMarkers: z.ZodArray; clickable: z.ZodBoolean; }, "strip", z.ZodTypeAny, { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }, { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }>, "many">; canDragVoiceOverlay: z.ZodBoolean; showVoiceOverlay: z.ZodBoolean; canLocalViewportZoom: z.ZodBoolean; canLocalViewportPan: z.ZodBoolean; supportsManualRange: z.ZodBoolean; supportsAutoRange: z.ZodBoolean; defaultRangeMode: z.ZodNullable>; }, "strip", z.ZodTypeAny, { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }, { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }>; controls: z.ZodArray; action: z.ZodEnum<["in", "out", "toggle"]>; kind: z.ZodEnum<["server", "local"]>; visible: z.ZodBoolean; enabled: z.ZodBoolean; active: z.ZodBoolean; pending: z.ZodBoolean; }, "strip", z.ZodTypeAny, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }>, "many">; }, "strip", z.ZodTypeAny, { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }, { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SPECTRUM_SESSION_STATE_CHANGED; timestamp: string; data: { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }; id?: string | undefined; }, { type: WSMessageType.SPECTRUM_SESSION_STATE_CHANGED; timestamp: string; data: { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }; id?: string | undefined; }>; export type WSSpectrumSessionStateChangedOutboundMessage = z.infer; /** * PTT状态变化消息(服务端到客户端) */ export declare const WSPTTStatusChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ isTransmitting: z.ZodBoolean; operatorIds: z.ZodArray; }, "strip", z.ZodTypeAny, { operatorIds: string[]; isTransmitting: boolean; }, { operatorIds: string[]; isTransmitting: boolean; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PTT_STATUS_CHANGED; timestamp: string; data: { operatorIds: string[]; isTransmitting: boolean; }; id?: string | undefined; }, { type: WSMessageType.PTT_STATUS_CHANGED; timestamp: string; data: { operatorIds: string[]; isTransmitting: boolean; }; id?: string | undefined; }>; export type WSPTTStatusChangedMessage = z.infer; /** * 强制停止发射消息(客户端到服务端) * 立即停止PTT并清空音频播放队列 */ export declare const WSForceStopTransmissionMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.FORCE_STOP_TRANSMISSION; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.FORCE_STOP_TRANSMISSION; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export type WSForceStopTransmissionMessage = z.infer; /** * 从当前发射中移除单个操作员消息(客户端到服务端) * 移除该操作员的音频并重混音,如果是最后一个操作员则停止PTT */ export declare const WSRemoveOperatorFromTransmissionMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; }, { operatorId: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.REMOVE_OPERATOR_FROM_TRANSMISSION; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }, { type: WSMessageType.REMOVE_OPERATOR_FROM_TRANSMISSION; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }>; export type WSRemoveOperatorFromTransmissionMessage = z.infer; /** * 启动外接天调单音调谐(客户端到服务端) */ export declare const WSStartTuneToneMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional; toneHz: z.ZodOptional; }, "strip", z.ZodTypeAny, { operatorId?: string | undefined; toneHz?: number | undefined; }, { operatorId?: string | undefined; toneHz?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { type: WSMessageType.START_TUNE_TONE; timestamp: string; id?: string | undefined; data?: { operatorId?: string | undefined; toneHz?: number | undefined; } | undefined; }, { type: WSMessageType.START_TUNE_TONE; timestamp: string; id?: string | undefined; data?: { operatorId?: string | undefined; toneHz?: number | undefined; } | undefined; }>; export type WSStartTuneToneMessage = z.infer; /** * 停止外接天调单音调谐(客户端到服务端) */ export declare const WSStopTuneToneMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.STOP_TUNE_TONE; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.STOP_TUNE_TONE; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export type WSStopTuneToneMessage = z.infer; /** * 外接天调单音调谐状态(服务端到客户端) */ export declare const WSTuneToneStatusChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ active: z.ZodBoolean; toneHz: z.ZodNullable; startedAt: z.ZodNullable; maxDurationMs: z.ZodNumber; error: z.ZodOptional; }, "strip", z.ZodTypeAny, { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }, { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.TUNE_TONE_STATUS_CHANGED; timestamp: string; data: { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }; id?: string | undefined; }, { type: WSMessageType.TUNE_TONE_STATUS_CHANGED; timestamp: string; data: { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }; id?: string | undefined; }>; export type WSTuneToneStatusChangedMessage = z.infer; /** * 电台数值表数据消息(服务端到客户端) */ export declare const WSMeterDataMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ swr: z.ZodNullable>; alc: z.ZodNullable>; level: z.ZodNullableS9, e.g., 20 means S9+20dB) */ dbAboveS9: z.ZodOptional; /** Estimated absolute signal level in dBm (may be approximate depending on strategy) */ dBm: z.ZodNumber; /** Human-readable formatted string (e.g., "S4", "S9+20dB", "-24 dB@S9") */ formatted: z.ZodString; /** Preferred frontend presentation style for this meter reading */ displayStyle: z.ZodEnum<["s-meter-dbm", "s-meter", "db-over-s9"]>; }, "strip", z.ZodTypeAny, { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; }, { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; }>>; power: z.ZodNullable; maxWatts: z.ZodNullable; }, "strip", z.ZodTypeAny, { percent: number; raw: number; watts: number | null; maxWatts: number | null; }, { percent: number; raw: number; watts: number | null; maxWatts: number | null; }>>; }, "strip", z.ZodTypeAny, { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }, { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.METER_DATA; timestamp: string; data: { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }; id?: string | undefined; }, { type: WSMessageType.METER_DATA; timestamp: string; data: { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }; id?: string | undefined; }>; export type WSMeterDataMessage = z.infer; export declare const WSSquelchStatusChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ supported: z.ZodBoolean; open: z.ZodNullable; muted: z.ZodBoolean; source: z.ZodEnum<["hamlib-dcd", "unsupported"]>; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }, { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SQUELCH_STATUS_CHANGED; timestamp: string; data: { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }; id?: string | undefined; }, { type: WSMessageType.SQUELCH_STATUS_CHANGED; timestamp: string; data: { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }; id?: string | undefined; }>; export type WSSquelchStatusChangedMessage = z.infer; /** * 文本消息(Toast通知) * 用于向客户端推送提示信息 */ export declare const WSTextMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ title: z.ZodString; text: z.ZodString; color: z.ZodOptional>; timeout: z.ZodOptional>; /** i18n key,前端有此字段时优先翻译显示 */ key: z.ZodOptional; /** i18n 插值参数 */ params: z.ZodOptional>; }, "strip", z.ZodTypeAny, { title: string; text: string; params?: Record | undefined; key?: string | undefined; timeout?: number | null | undefined; color?: "default" | "success" | "warning" | "danger" | undefined; }, { title: string; text: string; params?: Record | undefined; key?: string | undefined; timeout?: number | null | undefined; color?: "default" | "success" | "warning" | "danger" | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.TEXT_MESSAGE; timestamp: string; data: { title: string; text: string; params?: Record | undefined; key?: string | undefined; timeout?: number | null | undefined; color?: "default" | "success" | "warning" | "danger" | undefined; }; id?: string | undefined; }, { type: WSMessageType.TEXT_MESSAGE; timestamp: string; data: { title: string; text: string; params?: Record | undefined; key?: string | undefined; timeout?: number | null | undefined; color?: "default" | "success" | "warning" | "danger" | undefined; }; id?: string | undefined; }>; export type WSTextMessage = z.infer; export declare const WSCWDecoderStatusMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ enabled: z.ZodBoolean; state: z.ZodEnum<["disabled", "starting", "listening", "decoding", "muted", "error"]>; config: z.ZodObject<{ enabled: z.ZodDefault; backend: z.ZodDefault>; runtimeBackend: z.ZodDefault>; modelSize: z.ZodDefault>; language: z.ZodDefault; mode: z.ZodDefault>; targetFreqHz: z.ZodDefault; filterWidthHz: z.ZodDefault; windowSeconds: z.ZodDefault; decodeIntervalMs: z.ZodDefault; muteWhileTransmitting: z.ZodDefault; workerCount: z.ZodDefault; minCommitChars: z.ZodDefault; commitStability: z.ZodDefault; maxPendingAgeMs: z.ZodDefault; }, "strip", z.ZodTypeAny, { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }, { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }>; backend: z.ZodOptional; name: z.ZodString; available: z.ZodBoolean; runtimeBackends: z.ZodDefault, "many">>; modelSizes: z.ZodDefault, "many">>; languages: z.ZodDefault>; modes: z.ZodDefault, "many">>; version: z.ZodOptional; label: z.ZodOptional; model: z.ZodOptional; runtime: z.ZodOptional; attributionName: z.ZodOptional; sourceUrl: z.ZodOptional; license: z.ZodOptional; error: z.ZodOptional>; reason: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; }, { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; }>>; muted: z.ZodDefault; active: z.ZodDefault; lastDecodeAt: z.ZodOptional; lastError: z.ZodOptional>; running: z.ZodOptional; backendId: z.ZodOptional>; pendingText: z.ZodOptional; committedText: z.ZodOptional; queuedSamples: z.ZodOptional; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }, { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CW_DECODER_STATUS; timestamp: string; data: { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; id?: string | undefined; }, { type: WSMessageType.CW_DECODER_STATUS; timestamp: string; data: { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; id?: string | undefined; }>; export type WSCWDecoderStatusMessage = z.infer; export declare const WSCWDecoderEventMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{ kind: z.ZodLiteral<"status">; status: z.ZodObject<{ enabled: z.ZodBoolean; state: z.ZodEnum<["disabled", "starting", "listening", "decoding", "muted", "error"]>; config: z.ZodObject<{ enabled: z.ZodDefault; backend: z.ZodDefault>; runtimeBackend: z.ZodDefault>; modelSize: z.ZodDefault>; language: z.ZodDefault; mode: z.ZodDefault>; targetFreqHz: z.ZodDefault; filterWidthHz: z.ZodDefault; windowSeconds: z.ZodDefault; decodeIntervalMs: z.ZodDefault; muteWhileTransmitting: z.ZodDefault; workerCount: z.ZodDefault; minCommitChars: z.ZodDefault; commitStability: z.ZodDefault; maxPendingAgeMs: z.ZodDefault; }, "strip", z.ZodTypeAny, { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }, { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }>; backend: z.ZodOptional; name: z.ZodString; available: z.ZodBoolean; runtimeBackends: z.ZodDefault, "many">>; modelSizes: z.ZodDefault, "many">>; languages: z.ZodDefault>; modes: z.ZodDefault, "many">>; version: z.ZodOptional; label: z.ZodOptional; model: z.ZodOptional; runtime: z.ZodOptional; attributionName: z.ZodOptional; sourceUrl: z.ZodOptional; license: z.ZodOptional; error: z.ZodOptional>; reason: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; }, { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; }>>; muted: z.ZodDefault; active: z.ZodDefault; lastDecodeAt: z.ZodOptional; lastError: z.ZodOptional>; running: z.ZodOptional; backendId: z.ZodOptional>; pendingText: z.ZodOptional; committedText: z.ZodOptional; queuedSamples: z.ZodOptional; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }, { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }>; }, "strip", z.ZodTypeAny, { status: { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; kind: "status"; }, { status: { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; kind: "status"; }>, z.ZodObject<{ kind: z.ZodLiteral<"transcript">; segment: z.ZodObject<{ id: z.ZodString; sessionId: z.ZodString; sequence: z.ZodNumber; text: z.ZodString; plainText: z.ZodOptional; finalized: z.ZodDefault>; prependSpace: z.ZodDefault; confidence: z.ZodOptional; targetFreqHz: z.ZodOptional; filterWidthHz: z.ZodOptional; characterSpans: z.ZodOptional, "many">>; wordSpaceSpans: z.ZodOptional, "many">>; startedAt: z.ZodOptional; endedAt: z.ZodOptional>; updatedAt: z.ZodNumber; wpm: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }>; }, "strip", z.ZodTypeAny, { kind: "transcript"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; }, { kind: "transcript"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; }>, z.ZodObject<{ kind: z.ZodLiteral<"transcript_reset">; sessionId: z.ZodString; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "transcript_reset"; sessionId: string; }, { timestamp: number; kind: "transcript_reset"; sessionId: string; }>, z.ZodObject<{ kind: z.ZodLiteral<"transcript_pending">; pending: z.ZodNullable; finalized: z.ZodDefault>; confidence: z.ZodOptional; targetFreqHz: z.ZodOptional; filterWidthHz: z.ZodOptional; characterSpans: z.ZodOptional, "many">>; wordSpaceSpans: z.ZodOptional, "many">>; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { version: number; updatedAt: number; text: string; sessionId: string; finalized: false; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; }, { version: number; updatedAt: number; text: string; sessionId: string; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: false | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; }>>; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "transcript_pending"; pending: { version: number; updatedAt: number; text: string; sessionId: string; finalized: false; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; } | null; }, { timestamp: number; kind: "transcript_pending"; pending: { version: number; updatedAt: number; text: string; sessionId: string; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: false | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; } | null; }>, z.ZodObject<{ kind: z.ZodLiteral<"transcript_commit">; segment: z.ZodObject<{ id: z.ZodString; sessionId: z.ZodString; sequence: z.ZodNumber; text: z.ZodString; plainText: z.ZodOptional; finalized: z.ZodDefault>; prependSpace: z.ZodDefault; confidence: z.ZodOptional; targetFreqHz: z.ZodOptional; filterWidthHz: z.ZodOptional; characterSpans: z.ZodOptional, "many">>; wordSpaceSpans: z.ZodOptional, "many">>; startedAt: z.ZodOptional; endedAt: z.ZodOptional>; updatedAt: z.ZodNumber; wpm: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }>; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "transcript_commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; }, { timestamp: number; kind: "transcript_commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; }>, z.ZodObject<{ kind: z.ZodLiteral<"pending">; text: z.ZodString; confidence: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "pending"; text: string; confidence?: number | undefined; }, { timestamp: number; kind: "pending"; text: string; confidence?: number | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"commit">; segment: z.ZodObject<{ id: z.ZodString; sessionId: z.ZodString; sequence: z.ZodNumber; text: z.ZodString; plainText: z.ZodOptional; finalized: z.ZodDefault>; prependSpace: z.ZodDefault; confidence: z.ZodOptional; targetFreqHz: z.ZodOptional; filterWidthHz: z.ZodOptional; characterSpans: z.ZodOptional, "many">>; wordSpaceSpans: z.ZodOptional, "many">>; startedAt: z.ZodOptional; endedAt: z.ZodOptional>; updatedAt: z.ZodNumber; wpm: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }>; text: z.ZodOptional; confidence: z.ZodOptional; timestamp: z.ZodOptional; }, "strip", z.ZodTypeAny, { kind: "commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; confidence?: number | undefined; timestamp?: number | undefined; text?: string | undefined; }, { kind: "commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; confidence?: number | undefined; timestamp?: number | undefined; text?: string | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"partial">; text: z.ZodString; confidence: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "partial"; text: string; confidence?: number | undefined; }, { timestamp: number; kind: "partial"; text: string; confidence?: number | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"error">; message: z.ZodString; code: z.ZodOptional; recoverable: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; kind: "error"; code?: string | undefined; recoverable?: boolean | undefined; }, { message: string; timestamp: number; kind: "error"; code?: string | undefined; recoverable?: boolean | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"model_load">; backend: z.ZodEnum<["deepcw-onnx"]>; modelSize: z.ZodOptional>; language: z.ZodOptional; progress: z.ZodOptional; message: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "model_load"; backend: "deepcw-onnx"; message?: string | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; progress?: number | undefined; }, { timestamp: number; kind: "model_load"; backend: "deepcw-onnx"; message?: string | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; progress?: number | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"audio_buffer">; queuedSamples: z.ZodNumber; sampleRate: z.ZodOptional; durationMs: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "audio_buffer"; queuedSamples: number; sampleRate?: number | undefined; durationMs?: number | undefined; }, { timestamp: number; kind: "audio_buffer"; queuedSamples: number; sampleRate?: number | undefined; durationMs?: number | undefined; }>]>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CW_DECODER_EVENT; timestamp: string; data: { status: { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; kind: "status"; } | { kind: "transcript"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; } | { timestamp: number; kind: "transcript_reset"; sessionId: string; } | { timestamp: number; kind: "transcript_pending"; pending: { version: number; updatedAt: number; text: string; sessionId: string; finalized: false; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; } | null; } | { timestamp: number; kind: "transcript_commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; } | { timestamp: number; kind: "pending"; text: string; confidence?: number | undefined; } | { kind: "commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; confidence?: number | undefined; timestamp?: number | undefined; text?: string | undefined; } | { timestamp: number; kind: "partial"; text: string; confidence?: number | undefined; } | { message: string; timestamp: number; kind: "error"; code?: string | undefined; recoverable?: boolean | undefined; } | { timestamp: number; kind: "model_load"; backend: "deepcw-onnx"; message?: string | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; progress?: number | undefined; } | { timestamp: number; kind: "audio_buffer"; queuedSamples: number; sampleRate?: number | undefined; durationMs?: number | undefined; }; id?: string | undefined; }, { type: WSMessageType.CW_DECODER_EVENT; timestamp: string; data: { status: { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; kind: "status"; } | { kind: "transcript"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; } | { timestamp: number; kind: "transcript_reset"; sessionId: string; } | { timestamp: number; kind: "transcript_pending"; pending: { version: number; updatedAt: number; text: string; sessionId: string; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: false | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; } | null; } | { timestamp: number; kind: "transcript_commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; } | { timestamp: number; kind: "pending"; text: string; confidence?: number | undefined; } | { kind: "commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; confidence?: number | undefined; timestamp?: number | undefined; text?: string | undefined; } | { timestamp: number; kind: "partial"; text: string; confidence?: number | undefined; } | { message: string; timestamp: number; kind: "error"; code?: string | undefined; recoverable?: boolean | undefined; } | { timestamp: number; kind: "model_load"; backend: "deepcw-onnx"; message?: string | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; progress?: number | undefined; } | { timestamp: number; kind: "audio_buffer"; queuedSamples: number; sampleRate?: number | undefined; durationMs?: number | undefined; }; id?: string | undefined; }>; export type WSCWDecoderEventMessage = z.infer; /** * 能力列表快照(连接成功后推送,server → client) */ export declare const WSRadioCapabilityListMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ descriptors: z.ZodArray; valueType: z.ZodEnum<["boolean", "number", "enum", "action"]>; range: z.ZodOptional; }, "strip", z.ZodTypeAny, { min: number; max: number; step?: number | undefined; }, { min: number; max: number; step?: number | undefined; }>>; discreteOptions: z.ZodOptional; label: z.ZodOptional; labelI18nKey: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }, { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }>, "many">>; options: z.ZodOptional; label: z.ZodOptional; labelI18nKey: z.ZodOptional; }, "strip", z.ZodTypeAny, { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }, { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }>, "many">>; readable: z.ZodBoolean; writable: z.ZodBoolean; updateMode: z.ZodEnum<["polling", "event", "none"]>; pollIntervalMs: z.ZodOptional; compoundGroup: z.ZodOptional; compoundRole: z.ZodOptional>; labelI18nKey: z.ZodString; descriptionI18nKey: z.ZodOptional; display: z.ZodOptional; unit: z.ZodOptional>; decimals: z.ZodOptional; signed: z.ZodOptional; }, "strip", z.ZodTypeAny, { mode: "value" | "percent"; unit?: "code" | "state" | "Hz" | "kHz" | "toneHz" | undefined; decimals?: number | undefined; signed?: boolean | undefined; }, { mode: "value" | "percent"; unit?: "code" | "state" | "Hz" | "kHz" | "toneHz" | undefined; decimals?: number | undefined; signed?: boolean | undefined; }>>; hasSurfaceControl: z.ZodBoolean; surfaceGroup: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; labelI18nKey: string; category: "audio" | "system" | "antenna" | "rf" | "operation"; valueType: "number" | "boolean" | "action" | "enum"; readable: boolean; writable: boolean; updateMode: "none" | "polling" | "event"; hasSurfaceControl: boolean; options?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; range?: { min: number; max: number; step?: number | undefined; } | undefined; discreteOptions?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; pollIntervalMs?: number | undefined; compoundGroup?: string | undefined; compoundRole?: "action" | "switch" | undefined; descriptionI18nKey?: string | undefined; display?: { mode: "value" | "percent"; unit?: "code" | "state" | "Hz" | "kHz" | "toneHz" | undefined; decimals?: number | undefined; signed?: boolean | undefined; } | undefined; surfaceGroup?: string | undefined; }, { id: string; labelI18nKey: string; category: "audio" | "system" | "antenna" | "rf" | "operation"; valueType: "number" | "boolean" | "action" | "enum"; readable: boolean; writable: boolean; updateMode: "none" | "polling" | "event"; hasSurfaceControl: boolean; options?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; range?: { min: number; max: number; step?: number | undefined; } | undefined; discreteOptions?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; pollIntervalMs?: number | undefined; compoundGroup?: string | undefined; compoundRole?: "action" | "switch" | undefined; descriptionI18nKey?: string | undefined; display?: { mode: "value" | "percent"; unit?: "code" | "state" | "Hz" | "kHz" | "toneHz" | undefined; decimals?: number | undefined; signed?: boolean | undefined; } | undefined; surfaceGroup?: string | undefined; }>, "many">; capabilities: z.ZodArray>; availabilityReason: z.ZodOptional>; lastError: z.ZodOptional; value: z.ZodNullable>; meta: z.ZodOptional>; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }, { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { capabilities: { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }[]; descriptors: { id: string; labelI18nKey: string; category: "audio" | "system" | "antenna" | "rf" | "operation"; valueType: "number" | "boolean" | "action" | "enum"; readable: boolean; writable: boolean; updateMode: "none" | "polling" | "event"; hasSurfaceControl: boolean; options?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; range?: { min: number; max: number; step?: number | undefined; } | undefined; discreteOptions?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; pollIntervalMs?: number | undefined; compoundGroup?: string | undefined; compoundRole?: "action" | "switch" | undefined; descriptionI18nKey?: string | undefined; display?: { mode: "value" | "percent"; unit?: "code" | "state" | "Hz" | "kHz" | "toneHz" | undefined; decimals?: number | undefined; signed?: boolean | undefined; } | undefined; surfaceGroup?: string | undefined; }[]; }, { capabilities: { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }[]; descriptors: { id: string; labelI18nKey: string; category: "audio" | "system" | "antenna" | "rf" | "operation"; valueType: "number" | "boolean" | "action" | "enum"; readable: boolean; writable: boolean; updateMode: "none" | "polling" | "event"; hasSurfaceControl: boolean; options?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; range?: { min: number; max: number; step?: number | undefined; } | undefined; discreteOptions?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; pollIntervalMs?: number | undefined; compoundGroup?: string | undefined; compoundRole?: "action" | "switch" | undefined; descriptionI18nKey?: string | undefined; display?: { mode: "value" | "percent"; unit?: "code" | "state" | "Hz" | "kHz" | "toneHz" | undefined; decimals?: number | undefined; signed?: boolean | undefined; } | undefined; surfaceGroup?: string | undefined; }[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_CAPABILITY_LIST; timestamp: string; data: { capabilities: { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }[]; descriptors: { id: string; labelI18nKey: string; category: "audio" | "system" | "antenna" | "rf" | "operation"; valueType: "number" | "boolean" | "action" | "enum"; readable: boolean; writable: boolean; updateMode: "none" | "polling" | "event"; hasSurfaceControl: boolean; options?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; range?: { min: number; max: number; step?: number | undefined; } | undefined; discreteOptions?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; pollIntervalMs?: number | undefined; compoundGroup?: string | undefined; compoundRole?: "action" | "switch" | undefined; descriptionI18nKey?: string | undefined; display?: { mode: "value" | "percent"; unit?: "code" | "state" | "Hz" | "kHz" | "toneHz" | undefined; decimals?: number | undefined; signed?: boolean | undefined; } | undefined; surfaceGroup?: string | undefined; }[]; }; id?: string | undefined; }, { type: WSMessageType.RADIO_CAPABILITY_LIST; timestamp: string; data: { capabilities: { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }[]; descriptors: { id: string; labelI18nKey: string; category: "audio" | "system" | "antenna" | "rf" | "operation"; valueType: "number" | "boolean" | "action" | "enum"; readable: boolean; writable: boolean; updateMode: "none" | "polling" | "event"; hasSurfaceControl: boolean; options?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; range?: { min: number; max: number; step?: number | undefined; } | undefined; discreteOptions?: { value: string | number; label?: string | undefined; labelI18nKey?: string | undefined; }[] | undefined; pollIntervalMs?: number | undefined; compoundGroup?: string | undefined; compoundRole?: "action" | "switch" | undefined; descriptionI18nKey?: string | undefined; display?: { mode: "value" | "percent"; unit?: "code" | "state" | "Hz" | "kHz" | "toneHz" | undefined; decimals?: number | undefined; signed?: boolean | undefined; } | undefined; surfaceGroup?: string | undefined; }[]; }; id?: string | undefined; }>; export type WSRadioCapabilityListMessage = z.infer; /** * 单个能力值变化通知(server → client) */ export declare const WSRadioCapabilityChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ id: z.ZodString; supported: z.ZodBoolean; availability: z.ZodOptional>; availabilityReason: z.ZodOptional>; lastError: z.ZodOptional; value: z.ZodNullable>; meta: z.ZodOptional>; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }, { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_CAPABILITY_CHANGED; timestamp: string; data: { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }; id?: string | undefined; }, { type: WSMessageType.RADIO_CAPABILITY_CHANGED; timestamp: string; data: { value: string | number | boolean | null; id: string; supported: boolean; updatedAt: number; availability?: "unknown" | "available" | "unavailable" | undefined; meta?: Record | undefined; lastError?: string | undefined; availabilityReason?: "unknown" | "runtime_error" | "busy" | "unsupported_by_current_mode" | "radio_reported_unavailable" | undefined; }; id?: string | undefined; }>; export type WSRadioCapabilityChangedMessage = z.infer; /** * 客户端写入能力值命令(client → server) * 权限:execute:RadioControl */ export declare const WSWriteRadioCapabilityMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ id: z.ZodString; value: z.ZodOptional>; action: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; value?: string | number | boolean | undefined; action?: boolean | undefined; }, { id: string; value?: string | number | boolean | undefined; action?: boolean | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.WRITE_RADIO_CAPABILITY; timestamp: string; data: { id: string; value?: string | number | boolean | undefined; action?: boolean | undefined; }; id?: string | undefined; }, { type: WSMessageType.WRITE_RADIO_CAPABILITY; timestamp: string; data: { id: string; value?: string | number | boolean | undefined; action?: boolean | undefined; }; id?: string | undefined; }>; export type WSWriteRadioCapabilityMessage = z.infer; /** * 服务端要求认证(连接建立后发送) */ export declare const WSAuthRequiredMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ allowPublicViewing: z.ZodBoolean; }, "strip", z.ZodTypeAny, { allowPublicViewing: boolean; }, { allowPublicViewing: boolean; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_REQUIRED; timestamp: string; data: { allowPublicViewing: boolean; }; id?: string | undefined; }, { type: WSMessageType.AUTH_REQUIRED; timestamp: string; data: { allowPublicViewing: boolean; }; id?: string | undefined; }>; export type WSAuthRequiredMessage = z.infer; /** * 客户端发送 JWT 进行认证(登录或权限升级) */ export declare const WSAuthTokenMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ jwt: z.ZodString; }, "strip", z.ZodTypeAny, { jwt: string; }, { jwt: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_TOKEN; timestamp: string; data: { jwt: string; }; id?: string | undefined; }, { type: WSMessageType.AUTH_TOKEN; timestamp: string; data: { jwt: string; }; id?: string | undefined; }>; export type WSAuthTokenMessage = z.infer; /** * 客户端选择公开观察者模式 */ export declare const WSAuthPublicViewerMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_PUBLIC_VIEWER; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.AUTH_PUBLIC_VIEWER; timestamp: string; id?: string | undefined; data?: {} | undefined; }>; export type WSAuthPublicViewerMessage = z.infer; /** * 认证结果(服务端到客户端) */ export declare const WSAuthResultMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ success: z.ZodBoolean; role: z.ZodOptional>; label: z.ZodOptional; operatorIds: z.ZodOptional>; error: z.ZodOptional; }, "strip", z.ZodTypeAny, { success: boolean; error?: string | undefined; label?: string | undefined; role?: UserRole | undefined; operatorIds?: string[] | undefined; }, { success: boolean; error?: string | undefined; label?: string | undefined; role?: UserRole | undefined; operatorIds?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_RESULT; timestamp: string; data: { success: boolean; error?: string | undefined; label?: string | undefined; role?: UserRole | undefined; operatorIds?: string[] | undefined; }; id?: string | undefined; }, { type: WSMessageType.AUTH_RESULT; timestamp: string; data: { success: boolean; error?: string | undefined; label?: string | undefined; role?: UserRole | undefined; operatorIds?: string[] | undefined; }; id?: string | undefined; }>; export type WSAuthResultMessage = z.infer; /** * JWT 过期通知(服务端到客户端) */ export declare const WSAuthExpiredMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ reason: z.ZodOptional; }, "strip", z.ZodTypeAny, { reason?: string | undefined; }, { reason?: string | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_EXPIRED; timestamp: string; data: { reason?: string | undefined; }; id?: string | undefined; }, { type: WSMessageType.AUTH_EXPIRED; timestamp: string; data: { reason?: string | undefined; }; id?: string | undefined; }>; export type WSAuthExpiredMessage = z.infer; export declare const WSPluginListMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ state: z.ZodEnum<["ready", "reloading", "error"]>; generation: z.ZodNumber; plugins: z.ZodArray; instanceScope: z.ZodDefault>>; version: z.ZodString; description: z.ZodOptional; isBuiltIn: z.ZodBoolean; loaded: z.ZodDefault; enabled: z.ZodBoolean; autoDisabled: z.ZodDefault>; errorCount: z.ZodNumber; lastError: z.ZodOptional; assignedOperatorIds: z.ZodOptional>; settings: z.ZodOptional; default: z.ZodUnknown; label: z.ZodString; description: z.ZodOptional; min: z.ZodOptional; max: z.ZodOptional; options: z.ZodOptional, "many">>; itemFields: z.ZodOptional>>; label: z.ZodString; description: z.ZodOptional; placeholder: z.ZodOptional; required: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean"; label: string; key: string; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }, { label: string; key: string; type?: "string" | "number" | "boolean" | undefined; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }>, "many">>; keys: z.ZodOptional; }, "strip", z.ZodTypeAny, { label: string; key: string; description?: string | undefined; }, { label: string; key: string; description?: string | undefined; }>, "many">>; visibleWhen: z.ZodOptional>; descriptionWhen: z.ZodOptional; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }, { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }>, "many">>; hidden: z.ZodOptional; scope: z.ZodDefault>>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info"; label: string; scope: "operator" | "global"; keys?: { label: string; key: string; description?: string | undefined; }[] | undefined; options?: { value: string; label: string; }[] | undefined; default?: unknown; description?: string | undefined; min?: number | undefined; max?: number | undefined; itemFields?: { type: "string" | "number" | "boolean"; label: string; key: string; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }[] | undefined; visibleWhen?: import("./plugin.schema.js").PluginSettingCondition | undefined; descriptionWhen?: { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }[] | undefined; hidden?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info"; label: string; keys?: { label: string; key: string; description?: string | undefined; }[] | undefined; options?: { value: string; label: string; }[] | undefined; default?: unknown; description?: string | undefined; min?: number | undefined; max?: number | undefined; itemFields?: { label: string; key: string; type?: "string" | "number" | "boolean" | undefined; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }[] | undefined; visibleWhen?: import("./plugin.schema.js").PluginSettingCondition | undefined; descriptionWhen?: { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }[] | undefined; hidden?: boolean | undefined; scope?: "operator" | "global" | undefined; }>>>; quickActions: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; label: string; icon?: string | undefined; }, { id: string; label: string; icon?: string | undefined; }>, "many">>; quickSettings: z.ZodOptional, "many">>; panels: z.ZodOptional; pageId: z.ZodOptional; params: z.ZodOptional>; slot: z.ZodOptional>; width: z.ZodOptional>; icon: z.ZodOptional; openMode: z.ZodOptional>; uiSize: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, "many">>; permissions: z.ZodOptional, "many">>; capabilities: z.ZodOptional, "many">>; ui: z.ZodOptional>; pages: z.ZodDefault; accessScope: z.ZodDefault>>; resourceBinding: z.ZodDefault>>; }, "strip", z.ZodTypeAny, { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }, { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }>, "many">>>; }, "strip", z.ZodTypeAny, { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; }, { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; }>>; locales: z.ZodOptional>>; source: z.ZodOptional; version: z.ZodString; channel: z.ZodEnum<["stable", "nightly"]>; artifactUrl: z.ZodString; sha256: z.ZodString; installedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; }, { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; }>]>>; }, "strip", z.ZodTypeAny, { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }, { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }>, "many">; panelMeta: z.ZodDefault>; titleValues: z.ZodOptional>; visible: z.ZodOptional; }, "strip", z.ZodTypeAny, { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }, { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }>; }, "strip", z.ZodTypeAny, { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }, { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }>, "many">>>; panelContributions: z.ZodDefault; instanceTarget: z.ZodOptional; }, "strip", z.ZodTypeAny, { kind: "global"; }, { kind: "global"; }>, z.ZodObject<{ kind: z.ZodLiteral<"operator">; operatorId: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; kind: "operator"; }, { operatorId: string; kind: "operator"; }>]>>; panels: z.ZodArray; pageId: z.ZodOptional; params: z.ZodOptional>; slot: z.ZodOptional>; width: z.ZodOptional>; icon: z.ZodOptional; openMode: z.ZodOptional>; uiSize: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }, { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }>, "many">>>; lastError: z.ZodOptional; }, "strip", z.ZodTypeAny, { state: "error" | "ready" | "reloading"; generation: number; plugins: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }[]; panelMeta: { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }[]; panelContributions: { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }[]; lastError?: string | undefined; }, { state: "error" | "ready" | "reloading"; generation: number; plugins: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }[]; lastError?: string | undefined; panelMeta?: { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }[] | undefined; panelContributions?: { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_LIST; timestamp: string; data: { state: "error" | "ready" | "reloading"; generation: number; plugins: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }[]; panelMeta: { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }[]; panelContributions: { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }[]; lastError?: string | undefined; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_LIST; timestamp: string; data: { state: "error" | "ready" | "reloading"; generation: number; plugins: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }[]; lastError?: string | undefined; panelMeta?: { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }[] | undefined; panelContributions?: { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }[] | undefined; }; id?: string | undefined; }>; export type WSPluginListMessage = z.infer; export declare const WSPluginStatusChangedMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ generation: z.ZodNumber; plugin: z.ZodObject<{ name: z.ZodString; type: z.ZodEnum<["strategy", "utility"]>; instanceScope: z.ZodDefault>>; version: z.ZodString; description: z.ZodOptional; isBuiltIn: z.ZodBoolean; loaded: z.ZodDefault; enabled: z.ZodBoolean; autoDisabled: z.ZodDefault>; errorCount: z.ZodNumber; lastError: z.ZodOptional; assignedOperatorIds: z.ZodOptional>; settings: z.ZodOptional; default: z.ZodUnknown; label: z.ZodString; description: z.ZodOptional; min: z.ZodOptional; max: z.ZodOptional; options: z.ZodOptional, "many">>; itemFields: z.ZodOptional>>; label: z.ZodString; description: z.ZodOptional; placeholder: z.ZodOptional; required: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean"; label: string; key: string; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }, { label: string; key: string; type?: "string" | "number" | "boolean" | undefined; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }>, "many">>; keys: z.ZodOptional; }, "strip", z.ZodTypeAny, { label: string; key: string; description?: string | undefined; }, { label: string; key: string; description?: string | undefined; }>, "many">>; visibleWhen: z.ZodOptional>; descriptionWhen: z.ZodOptional; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }, { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }>, "many">>; hidden: z.ZodOptional; scope: z.ZodDefault>>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info"; label: string; scope: "operator" | "global"; keys?: { label: string; key: string; description?: string | undefined; }[] | undefined; options?: { value: string; label: string; }[] | undefined; default?: unknown; description?: string | undefined; min?: number | undefined; max?: number | undefined; itemFields?: { type: "string" | "number" | "boolean"; label: string; key: string; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }[] | undefined; visibleWhen?: import("./plugin.schema.js").PluginSettingCondition | undefined; descriptionWhen?: { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }[] | undefined; hidden?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info"; label: string; keys?: { label: string; key: string; description?: string | undefined; }[] | undefined; options?: { value: string; label: string; }[] | undefined; default?: unknown; description?: string | undefined; min?: number | undefined; max?: number | undefined; itemFields?: { label: string; key: string; type?: "string" | "number" | "boolean" | undefined; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }[] | undefined; visibleWhen?: import("./plugin.schema.js").PluginSettingCondition | undefined; descriptionWhen?: { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }[] | undefined; hidden?: boolean | undefined; scope?: "operator" | "global" | undefined; }>>>; quickActions: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; label: string; icon?: string | undefined; }, { id: string; label: string; icon?: string | undefined; }>, "many">>; quickSettings: z.ZodOptional, "many">>; panels: z.ZodOptional; pageId: z.ZodOptional; params: z.ZodOptional>; slot: z.ZodOptional>; width: z.ZodOptional>; icon: z.ZodOptional; openMode: z.ZodOptional>; uiSize: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, "many">>; permissions: z.ZodOptional, "many">>; capabilities: z.ZodOptional, "many">>; ui: z.ZodOptional>; pages: z.ZodDefault; accessScope: z.ZodDefault>>; resourceBinding: z.ZodDefault>>; }, "strip", z.ZodTypeAny, { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }, { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }>, "many">>>; }, "strip", z.ZodTypeAny, { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; }, { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; }>>; locales: z.ZodOptional>>; source: z.ZodOptional; version: z.ZodString; channel: z.ZodEnum<["stable", "nightly"]>; artifactUrl: z.ZodString; sha256: z.ZodString; installedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; }, { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; }>]>>; }, "strip", z.ZodTypeAny, { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }, { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }>; }, "strip", z.ZodTypeAny, { generation: number; plugin: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }; }, { generation: number; plugin: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_STATUS_CHANGED; timestamp: string; data: { generation: number; plugin: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_STATUS_CHANGED; timestamp: string; data: { generation: number; plugin: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }; }; id?: string | undefined; }>; export type WSPluginStatusChangedMessage = z.infer; export declare const WSPluginDataMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ pluginName: z.ZodString; operatorId: z.ZodString; panelId: z.ZodString; data: z.ZodUnknown; }, "strip", z.ZodTypeAny, { operatorId: string; pluginName: string; panelId: string; data?: unknown; }, { operatorId: string; pluginName: string; panelId: string; data?: unknown; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_DATA; timestamp: string; data: { operatorId: string; pluginName: string; panelId: string; data?: unknown; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_DATA; timestamp: string; data: { operatorId: string; pluginName: string; panelId: string; data?: unknown; }; id?: string | undefined; }>; export type WSPluginDataMessage = z.infer; export declare const WSPluginLogMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ pluginName: z.ZodString; level: z.ZodEnum<["debug", "info", "warn", "error"]>; message: z.ZodString; data: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }, { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_LOG; timestamp: string; data: { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_LOG; timestamp: string; data: { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }; id?: string | undefined; }>; export type WSPluginLogMessage = z.infer; export declare const WSPluginRuntimeLogMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ source: z.ZodLiteral<"system">; stage: z.ZodEnum<["scan", "load", "validate", "reload", "activate"]>; level: z.ZodEnum<["debug", "info", "warn", "error"]>; message: z.ZodString; timestamp: z.ZodNumber; pluginName: z.ZodOptional; directoryName: z.ZodOptional; details: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }, { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_RUNTIME_LOG; timestamp: string; data: { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_RUNTIME_LOG; timestamp: string; data: { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }; id?: string | undefined; }>; export type WSPluginRuntimeLogMessage = z.infer; export declare const WSGetPluginRuntimeLogHistoryMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional; }, "strip", z.ZodTypeAny, { limit?: number | undefined; }, { limit?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { type: WSMessageType.GET_PLUGIN_RUNTIME_LOG_HISTORY; timestamp: string; id?: string | undefined; data?: { limit?: number | undefined; } | undefined; }, { type: WSMessageType.GET_PLUGIN_RUNTIME_LOG_HISTORY; timestamp: string; id?: string | undefined; data?: { limit?: number | undefined; } | undefined; }>; export type WSGetPluginRuntimeLogHistoryMessage = z.infer; export declare const WSPluginRuntimeLogHistoryMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ entries: z.ZodArray; stage: z.ZodEnum<["scan", "load", "validate", "reload", "activate"]>; level: z.ZodEnum<["debug", "info", "warn", "error"]>; message: z.ZodString; timestamp: z.ZodNumber; pluginName: z.ZodOptional; directoryName: z.ZodOptional; details: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }, { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }>, z.ZodObject<{ pluginName: z.ZodString; level: z.ZodEnum<["debug", "info", "warn", "error"]>; message: z.ZodString; data: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }, { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }>]>, "many">; }, "strip", z.ZodTypeAny, { entries: ({ message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; } | { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; })[]; }, { entries: ({ message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; } | { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; })[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_RUNTIME_LOG_HISTORY; timestamp: string; data: { entries: ({ message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; } | { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; })[]; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_RUNTIME_LOG_HISTORY; timestamp: string; data: { entries: ({ message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; } | { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; })[]; }; id?: string | undefined; }>; export type WSPluginRuntimeLogHistoryMessage = z.infer; export declare const WSPluginUserActionMessageSchema: z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ pluginName: z.ZodString; actionId: z.ZodString; operatorId: z.ZodOptional; payload: z.ZodOptional; }, "strip", z.ZodTypeAny, { pluginName: string; actionId: string; operatorId?: string | undefined; payload?: unknown; }, { pluginName: string; actionId: string; operatorId?: string | undefined; payload?: unknown; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_USER_ACTION; timestamp: string; data: { pluginName: string; actionId: string; operatorId?: string | undefined; payload?: unknown; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_USER_ACTION; timestamp: string; data: { pluginName: string; actionId: string; operatorId?: string | undefined; payload?: unknown; }; id?: string | undefined; }>; export type WSPluginUserActionMessage = z.infer; export declare const WSMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PING; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.PING; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PONG; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.PONG; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ name: z.ZodString; slotMs: z.ZodNumber; toleranceMs: z.ZodDefault; windowTiming: z.ZodArray; transmitTiming: z.ZodNumber; encodeAdvance: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }, { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.MODE_CHANGED; timestamp: string; data: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; id?: string | undefined; }, { type: WSMessageType.MODE_CHANGED; timestamp: string; data: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ id: z.ZodString; startMs: z.ZodNumber; phaseMs: z.ZodNumber; driftMs: z.ZodDefault; cycleNumber: z.ZodNumber; utcSeconds: z.ZodNumber; mode: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }, { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SLOT_START; timestamp: string; data: { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }; id?: string | undefined; }, { type: WSMessageType.SLOT_START; timestamp: string; data: { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ slotInfo: z.ZodObject<{ id: z.ZodString; startMs: z.ZodNumber; phaseMs: z.ZodNumber; driftMs: z.ZodDefault; cycleNumber: z.ZodNumber; utcSeconds: z.ZodNumber; mode: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }, { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }>; windowIdx: z.ZodNumber; }, "strip", z.ZodTypeAny, { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }; }, { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SUB_WINDOW; timestamp: string; data: { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; driftMs: number; cycleNumber: number; utcSeconds: number; }; }; id?: string | undefined; }, { type: WSMessageType.SUB_WINDOW; timestamp: string; data: { windowIdx: number; slotInfo: { id: string; mode: string; startMs: number; phaseMs: number; cycleNumber: number; utcSeconds: number; driftMs?: number | undefined; }; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ slotId: z.ZodString; startMs: z.ZodNumber; endMs: z.ZodNumber; frames: z.ZodArray; logbookAnalysis: z.ZodOptional; isNewDxccEntity: z.ZodOptional; isNewBandDxccEntity: z.ZodOptional; isConfirmedDxcc: z.ZodOptional; isNewGrid: z.ZodOptional; callsign: z.ZodOptional; grid: z.ZodOptional; prefix: z.ZodOptional; state: z.ZodOptional; stateConfidence: z.ZodOptional>; dxccId: z.ZodOptional; dxccEntity: z.ZodOptional; dxccStatus: z.ZodOptional>; }, "strip", z.ZodTypeAny, { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; }, { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; }>>; operatorId: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; snr: number; freq: number; dt: number; confidence: number; operatorId?: string | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }, { message: string; snr: number; freq: number; dt: number; operatorId?: string | undefined; confidence?: number | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }>, "many">; stats: z.ZodDefault; successfulDecodes: z.ZodDefault; totalFramesBeforeDedup: z.ZodDefault; totalFramesAfterDedup: z.ZodDefault; lastUpdated: z.ZodDefault; updateSeq: z.ZodOptional; }, "strip", z.ZodTypeAny, { totalDecodes: number; successfulDecodes: number; totalFramesBeforeDedup: number; totalFramesAfterDedup: number; lastUpdated: number; updateSeq?: number | undefined; }, { totalDecodes?: number | undefined; successfulDecodes?: number | undefined; totalFramesBeforeDedup?: number | undefined; totalFramesAfterDedup?: number | undefined; lastUpdated?: number | undefined; updateSeq?: number | undefined; }>>; decodeHistory: z.ZodDefault, "many">>; frequencyContext: z.ZodOptional; mode: z.ZodOptional; band: z.ZodOptional; radioMode: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; }, { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { startMs: number; slotId: string; frames: { message: string; snr: number; freq: number; dt: number; confidence: number; operatorId?: string | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }[]; endMs: number; stats: { totalDecodes: number; successfulDecodes: number; totalFramesBeforeDedup: number; totalFramesAfterDedup: number; lastUpdated: number; updateSeq?: number | undefined; }; decodeHistory: { windowIdx: number; timestamp: number; processingTimeMs: number; frameCount: number; }[]; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; }, { startMs: number; slotId: string; frames: { message: string; snr: number; freq: number; dt: number; operatorId?: string | undefined; confidence?: number | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }[]; endMs: number; stats?: { totalDecodes?: number | undefined; successfulDecodes?: number | undefined; totalFramesBeforeDedup?: number | undefined; totalFramesAfterDedup?: number | undefined; lastUpdated?: number | undefined; updateSeq?: number | undefined; } | undefined; decodeHistory?: { windowIdx: number; timestamp: number; processingTimeMs: number; frameCount: number; }[] | undefined; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SLOT_PACK_UPDATED; timestamp: string; data: { startMs: number; slotId: string; frames: { message: string; snr: number; freq: number; dt: number; confidence: number; operatorId?: string | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }[]; endMs: number; stats: { totalDecodes: number; successfulDecodes: number; totalFramesBeforeDedup: number; totalFramesAfterDedup: number; lastUpdated: number; updateSeq?: number | undefined; }; decodeHistory: { windowIdx: number; timestamp: number; processingTimeMs: number; frameCount: number; }[]; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.SLOT_PACK_UPDATED; timestamp: string; data: { startMs: number; slotId: string; frames: { message: string; snr: number; freq: number; dt: number; operatorId?: string | undefined; confidence?: number | undefined; logbookAnalysis?: { prefix?: string | undefined; callsign?: string | undefined; grid?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; isNewCallsign?: boolean | undefined; isNewDxccEntity?: boolean | undefined; isNewBandDxccEntity?: boolean | undefined; isConfirmedDxcc?: boolean | undefined; isNewGrid?: boolean | undefined; state?: string | undefined; stateConfidence?: "high" | "low" | undefined; } | undefined; }[]; endMs: number; stats?: { totalDecodes?: number | undefined; successfulDecodes?: number | undefined; totalFramesBeforeDedup?: number | undefined; totalFramesAfterDedup?: number | undefined; lastUpdated?: number | undefined; updateSeq?: number | undefined; } | undefined; decodeHistory?: { windowIdx: number; timestamp: number; processingTimeMs: number; frameCount: number; }[] | undefined; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ profileId: z.ZodNullable; defaultKind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>; sources: z.ZodArray; supported: z.ZodBoolean; available: z.ZodBoolean; defaultSelected: z.ZodBoolean; reason: z.ZodOptional; sourceBinCount: z.ZodOptional>; displayBinCount: z.ZodNumber; supportsWaterfall: z.ZodBoolean; frequencyRangeMode: z.ZodEnum<["absolute", "baseband"]>; }, "strip", z.ZodTypeAny, { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }, { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }, { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SPECTRUM_CAPABILITIES; timestamp: string; data: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }; id?: string | undefined; }, { type: WSMessageType.SPECTRUM_CAPABILITIES; timestamp: string; data: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ kind: z.ZodNullable>; }, "strip", z.ZodTypeAny, { kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; }, { kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SUBSCRIBE_SPECTRUM; timestamp: string; data: { kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; }; id?: string | undefined; }, { type: WSMessageType.SUBSCRIBE_SPECTRUM; timestamp: string; data: { kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ requestedKind: z.ZodNullable>; effectiveKind: z.ZodNullable>; ok: z.ZodBoolean; reason: z.ZodOptional; capabilities: z.ZodOptional; defaultKind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>; sources: z.ZodArray; supported: z.ZodBoolean; available: z.ZodBoolean; defaultSelected: z.ZodBoolean; reason: z.ZodOptional; sourceBinCount: z.ZodOptional>; displayBinCount: z.ZodNumber; supportsWaterfall: z.ZodBoolean; frequencyRangeMode: z.ZodEnum<["absolute", "baseband"]>; }, "strip", z.ZodTypeAny, { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }, { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }, { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; }>>; }, "strip", z.ZodTypeAny, { ok: boolean; requestedKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; effectiveKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; reason?: string | undefined; capabilities?: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; } | undefined; }, { ok: boolean; requestedKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; effectiveKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; reason?: string | undefined; capabilities?: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SPECTRUM_SUBSCRIPTION_CHANGED; timestamp: string; data: { ok: boolean; requestedKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; effectiveKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; reason?: string | undefined; capabilities?: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.SPECTRUM_SUBSCRIPTION_CHANGED; timestamp: string; data: { ok: boolean; requestedKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; effectiveKind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; reason?: string | undefined; capabilities?: { profileId: string | null; defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr"; sources: { available: boolean; displayBinCount: number; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; supported: boolean; defaultSelected: boolean; supportsWaterfall: boolean; frequencyRangeMode: "baseband" | "absolute"; reason?: string | undefined; sourceBinCount?: number | null | undefined; }[]; } | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ timestamp: z.ZodNumber; kind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>; frequencyRange: z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, "strip", z.ZodTypeAny, { min: number; max: number; }, { min: number; max: number; }>; binaryData: z.ZodObject<{ data: z.ZodString; format: z.ZodObject<{ type: z.ZodLiteral<"int16">; length: z.ZodNumber; scale: z.ZodOptional; offset: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }, { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }>; }, "strip", z.ZodTypeAny, { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }, { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }>; meta: z.ZodObject<{ sourceBinCount: z.ZodNumber; displayBinCount: z.ZodNumber; centerFrequency: z.ZodOptional; spanHz: z.ZodOptional; profileId: z.ZodOptional>; radioModel: z.ZodOptional; }, "strip", z.ZodTypeAny, { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }, { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }>; }, "strip", z.ZodTypeAny, { timestamp: number; frequencyRange: { min: number; max: number; }; binaryData: { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; meta: { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }; }, { timestamp: number; frequencyRange: { min: number; max: number; }; binaryData: { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; meta: { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SPECTRUM_FRAME; timestamp: string; data: { timestamp: number; frequencyRange: { min: number; max: number; }; binaryData: { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; meta: { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.SPECTRUM_FRAME; timestamp: string; data: { timestamp: number; frequencyRange: { min: number; max: number; }; binaryData: { data: string; format: { type: "int16"; length: number; scale?: number | undefined; offset?: number | undefined; }; }; kind: "audio" | "radio-sdr" | "openwebrx-sdr"; meta: { sourceBinCount: number; displayBinCount: number; centerFrequency?: number | undefined; spanHz?: number | undefined; profileId?: string | null | undefined; radioModel?: string | undefined; }; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ kind: z.ZodNullable>; sourceMode: z.ZodEnum<["baseband", "center", "fixed", "scroll-center", "scroll-fixed", "full", "detail", "unknown"]>; frequencyRangeMode: z.ZodEnum<["baseband", "absolute-center", "absolute-fixed", "absolute-windowed"]>; displayRange: z.ZodNullable>; centerFrequency: z.ZodNullable; currentRadioFrequency: z.ZodNullable; standardFrequencyHz: z.ZodNullable; edgeLowHz: z.ZodNullable; edgeHighHz: z.ZodNullable; spanHz: z.ZodNullable; voice: z.ZodObject<{ radioMode: z.ZodNullable; bandwidthLabel: z.ZodNullable; occupiedBandwidthHz: z.ZodNullable; offsetModel: z.ZodNullable>; }, "strip", z.ZodTypeAny, { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }, { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }>; interaction: z.ZodObject<{ showTxMarkers: z.ZodBoolean; showRxMarkers: z.ZodBoolean; canDragTx: z.ZodBoolean; canRightClickSetFrequency: z.ZodBoolean; canDoubleClickSetFrequency: z.ZodBoolean; canDragFrequency: z.ZodBoolean; frequencyGestureTarget: z.ZodNullable>; frequencyStepHz: z.ZodNullable; presetMarkers: z.ZodArray; clickable: z.ZodBoolean; }, "strip", z.ZodTypeAny, { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }, { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }>, "many">; canDragVoiceOverlay: z.ZodBoolean; showVoiceOverlay: z.ZodBoolean; canLocalViewportZoom: z.ZodBoolean; canLocalViewportPan: z.ZodBoolean; supportsManualRange: z.ZodBoolean; supportsAutoRange: z.ZodBoolean; defaultRangeMode: z.ZodNullable>; }, "strip", z.ZodTypeAny, { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }, { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }>; controls: z.ZodArray; action: z.ZodEnum<["in", "out", "toggle"]>; kind: z.ZodEnum<["server", "local"]>; visible: z.ZodBoolean; enabled: z.ZodBoolean; active: z.ZodBoolean; pending: z.ZodBoolean; }, "strip", z.ZodTypeAny, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }>, "many">; }, "strip", z.ZodTypeAny, { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }, { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SPECTRUM_SESSION_STATE_CHANGED; timestamp: string; data: { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }; id?: string | undefined; }, { type: WSMessageType.SPECTRUM_SESSION_STATE_CHANGED; timestamp: string; data: { centerFrequency: number | null; spanHz: number | null; kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null; frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed"; sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail"; displayRange: { min: number; max: number; } | null; currentRadioFrequency: number | null; standardFrequencyHz: number | null; edgeLowHz: number | null; edgeHighHz: number | null; voice: { radioMode: string | null; bandwidthLabel: string | null; occupiedBandwidthHz: number | null; offsetModel: "upper" | "lower" | "symmetric" | null; }; interaction: { showTxMarkers: boolean; showRxMarkers: boolean; canDragTx: boolean; canRightClickSetFrequency: boolean; canDoubleClickSetFrequency: boolean; canDragFrequency: boolean; frequencyGestureTarget: "operator-tx" | "radio-frequency" | null; frequencyStepHz: number | null; presetMarkers: { id: string; frequency: number; description: string | null; label: string; clickable: boolean; }[]; canDragVoiceOverlay: boolean; showVoiceOverlay: boolean; canLocalViewportZoom: boolean; canLocalViewportPan: boolean; supportsManualRange: boolean; supportsAutoRange: boolean; defaultRangeMode: "manual" | "auto" | null; }; controls: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; active: boolean; kind: "server" | "local"; action: "in" | "out" | "toggle"; visible: boolean; enabled: boolean; pending: boolean; }[]; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ id: z.ZodEnum<["zoom-step", "digital-window-toggle", "openwebrx-detail-toggle", "viewport-zoom"]>; action: z.ZodEnum<["in", "out", "toggle"]>; }, "strip", z.ZodTypeAny, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }, { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.INVOKE_SPECTRUM_CONTROL; timestamp: string; data: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }; id?: string | undefined; }, { type: WSMessageType.INVOKE_SPECTRUM_CONTROL; timestamp: string; data: { id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom"; action: "in" | "out" | "toggle"; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ error: z.ZodObject<{ message: z.ZodString; stack: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; stack?: string | undefined; }, { message: string; stack?: string | undefined; }>; request: z.ZodObject<{ slotId: z.ZodString; windowIdx: z.ZodNumber; }, "strip", z.ZodTypeAny, { slotId: string; windowIdx: number; }, { slotId: string; windowIdx: number; }>; }, "strip", z.ZodTypeAny, { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }, { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.DECODE_ERROR; timestamp: string; data: { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }; id?: string | undefined; }, { type: WSMessageType.DECODE_ERROR; timestamp: string; data: { error: { message: string; stack?: string | undefined; }; request: { slotId: string; windowIdx: number; }; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ isRunning: z.ZodBoolean; isDecoding: z.ZodBoolean; currentMode: z.ZodObject<{ name: z.ZodString; slotMs: z.ZodNumber; toleranceMs: z.ZodDefault; windowTiming: z.ZodArray; transmitTiming: z.ZodNumber; encodeAdvance: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }, { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }>; currentTime: z.ZodNumber; nextSlotIn: z.ZodNumber; audioStarted: z.ZodBoolean; radioConnected: z.ZodOptional; radioConnectionHealth: z.ZodOptional>; /** 引擎模式:digital(FT8/FT4)、voice(语音通联)或 cw(莫尔斯码) */ engineMode: z.ZodDefault>; /** 当前电台调制模式(语音模式下使用,如 USB/LSB/FM/AM) */ currentRadioMode: z.ZodOptional; /** 引擎状态机当前状态 */ engineState: z.ZodOptional>; /** 引擎状态机上下文的精简投影 */ engineContext: z.ZodOptional; startedResources: z.ZodOptional>; forcedStop: z.ZodOptional; }, "strip", z.ZodTypeAny, { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; }, { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; engineMode: "voice" | "cw" | "digital"; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }, { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; engineMode?: "voice" | "cw" | "digital" | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SYSTEM_STATUS; timestamp: string; data: { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; engineMode: "voice" | "cw" | "digital"; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }; id?: string | undefined; }, { type: WSMessageType.SYSTEM_STATUS; timestamp: string; data: { isRunning: boolean; isDecoding: boolean; currentMode: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; currentTime: number; nextSlotIn: number; audioStarted: boolean; radioConnected?: boolean | undefined; radioConnectionHealth?: { connectionHealthy: boolean; } | undefined; engineMode?: "voice" | "cw" | "digital" | undefined; currentRadioMode?: string | undefined; engineState?: "idle" | "stopping" | "starting" | "running" | undefined; engineContext?: { error?: string | undefined; startedResources?: string[] | undefined; forcedStop?: boolean | undefined; } | null | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ bootSessionId: z.ZodString; lifecycle: z.ZodEnum<["booting", "completed", "degraded", "failed", "dismissed"]>; startedAt: z.ZodNumber; updatedAt: z.ZodNumber; completedAt: z.ZodOptional; durationMs: z.ZodOptional; blockingReady: z.ZodDefault; phases: z.ZodArray; label: z.ZodString; description: z.ZodOptional; state: z.ZodEnum<["pending", "running", "ready", "skipped", "warning", "failed", "timed_out"]>; startedAt: z.ZodOptional; completedAt: z.ZodOptional; updatedAt: z.ZodNumber; durationMs: z.ZodOptional; message: z.ZodOptional; retryable: z.ZodOptional; userVisible: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }, { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }>, "many">; summary: z.ZodObject<{ total: z.ZodNumber; pending: z.ZodNumber; running: z.ZodNumber; ready: z.ZodNumber; skipped: z.ZodNumber; warning: z.ZodNumber; failed: z.ZodNumber; timedOut: z.ZodNumber; }, "strip", z.ZodTypeAny, { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }, { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }>; }, "strip", z.ZodTypeAny, { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; blockingReady: boolean; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; }, { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; blockingReady?: boolean | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.BOOTSTRAP_STATUS_CHANGED; timestamp: string; data: { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; blockingReady: boolean; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; }; id?: string | undefined; }, { type: WSMessageType.BOOTSTRAP_STATUS_CHANGED; timestamp: string; data: { summary: { pending: number; ready: number; total: number; skipped: number; failed: number; running: number; warning: number; timedOut: number; }; updatedAt: number; startedAt: number; bootSessionId: string; lifecycle: "failed" | "degraded" | "booting" | "completed" | "dismissed"; phases: { id: "config-auth" | "core-http" | "engine-bootstrap" | "audio-device-discovery" | "logbook-prewarm" | "plugin-bootstrap" | "ntp-initial-check" | "active-profile-autostart"; state: "pending" | "ready" | "skipped" | "failed" | "running" | "warning" | "timed_out"; label: string; updatedAt: number; message?: string | undefined; description?: string | undefined; durationMs?: number | undefined; startedAt?: number | undefined; completedAt?: number | undefined; retryable?: boolean | undefined; userVisible?: boolean | undefined; }[]; durationMs?: number | undefined; completedAt?: number | undefined; blockingReady?: boolean | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ count: z.ZodNumber; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; count: number; }, { timestamp: number; count: number; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CLIENT_COUNT_CHANGED; timestamp: string; data: { timestamp: number; count: number; }; id?: string | undefined; }, { type: WSMessageType.CLIENT_COUNT_CHANGED; timestamp: string; data: { timestamp: number; count: number; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ appliedOffsetMs: z.ZodNumber; indicatorState: z.ZodEnum<["ok", "warn", "alert", "stale", "failed", "never"]>; }, "strip", z.ZodTypeAny, { appliedOffsetMs: number; indicatorState: "never" | "warn" | "failed" | "stale" | "ok" | "alert"; }, { appliedOffsetMs: number; indicatorState: "never" | "warn" | "failed" | "stale" | "ok" | "alert"; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CLOCK_STATUS_CHANGED; timestamp: string; data: { appliedOffsetMs: number; indicatorState: "never" | "warn" | "failed" | "stale" | "ok" | "alert"; }; id?: string | undefined; }, { type: WSMessageType.CLOCK_STATUS_CHANGED; timestamp: string; data: { appliedOffsetMs: number; indicatorState: "never" | "warn" | "failed" | "stale" | "ok" | "alert"; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ message: z.ZodString; userMessage: z.ZodOptional; /** 前端 i18n 翻译键(优先用于 Toast 副标题本地化) */ userMessageKey: z.ZodOptional; userMessageParams: z.ZodOptional>>; code: z.ZodOptional; severity: z.ZodOptional>; suggestions: z.ZodOptional>; timestamp: z.ZodOptional>; context: z.ZodOptional>; details: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; code?: string | undefined; timestamp?: string | number | undefined; details?: any; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; }, { message: string; code?: string | undefined; timestamp?: string | number | undefined; details?: any; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.ERROR; timestamp: string; data: { message: string; code?: string | undefined; timestamp?: string | number | undefined; details?: any; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; }; id?: string | undefined; }, { type: WSMessageType.ERROR; timestamp: string; data: { message: string; code?: string | undefined; timestamp?: string | number | undefined; details?: any; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ logBookId: z.ZodString; operatorId: z.ZodOptional; }, "strip", z.ZodTypeAny, { logBookId: string; operatorId?: string | undefined; }, { logBookId: string; operatorId?: string | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.LOGBOOK_CHANGE_NOTICE; timestamp: string; data: { logBookId: string; operatorId?: string | undefined; }; id?: string | undefined; }, { type: WSMessageType.LOGBOOK_CHANGE_NOTICE; timestamp: string; data: { logBookId: string; operatorId?: string | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; time: z.ZodString; message: z.ZodString; frequency: z.ZodNumber; slotStartMs: z.ZodNumber; replaceExisting: z.ZodOptional; frequencyContext: z.ZodOptional; mode: z.ZodOptional; band: z.ZodOptional; radioMode: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; }, { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { message: string; operatorId: string; frequency: number; time: string; slotStartMs: number; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; replaceExisting?: boolean | undefined; }, { message: string; operatorId: string; frequency: number; time: string; slotStartMs: number; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; replaceExisting?: boolean | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.TRANSMISSION_LOG; timestamp: string; data: { message: string; operatorId: string; frequency: number; time: string; slotStartMs: number; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; replaceExisting?: boolean | undefined; }; id?: string | undefined; }, { type: WSMessageType.TRANSMISSION_LOG; timestamp: string; data: { message: string; operatorId: string; frequency: number; time: string; slotStartMs: number; frequencyContext?: { mode?: string | undefined; frequency?: number | undefined; band?: string | undefined; radioMode?: string | undefined; description?: string | undefined; } | undefined; replaceExisting?: boolean | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.START_ENGINE; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.START_ENGINE; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.STOP_ENGINE; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.STOP_ENGINE; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ mode: z.ZodObject<{ name: z.ZodString; slotMs: z.ZodNumber; toleranceMs: z.ZodDefault; windowTiming: z.ZodArray; transmitTiming: z.ZodNumber; encodeAdvance: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }, { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }>; }, "strip", z.ZodTypeAny, { mode: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; }, { mode: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_MODE; timestamp: string; data: { mode: { name: string; slotMs: number; toleranceMs: number; windowTiming: number[]; transmitTiming: number; encodeAdvance: number; }; }; id?: string | undefined; }, { type: WSMessageType.SET_MODE; timestamp: string; data: { mode: { name: string; slotMs: number; windowTiming: number[]; transmitTiming: number; toleranceMs?: number | undefined; encodeAdvance?: number | undefined; }; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.GET_STATUS; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.GET_STATUS; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; }, "strip", z.ZodTypeAny, { type: WSMessageType.GET_OPERATORS; timestamp: string; id?: string | undefined; }, { type: WSMessageType.GET_OPERATORS; timestamp: string; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operators: z.ZodArray; currentSlot: z.ZodOptional; context: z.ZodObject<{ myCall: z.ZodString; myGrid: z.ZodString; targetCall: z.ZodString; targetGrid: z.ZodOptional; frequency: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; }, "strip", z.ZodTypeAny, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }>; strategy: z.ZodObject<{ name: z.ZodString; state: z.ZodString; availableSlots: z.ZodArray; }, "strip", z.ZodTypeAny, { name: string; state: string; availableSlots: string[]; }, { name: string; state: string; availableSlots: string[]; }>; runtime: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; context: z.ZodOptional; targetGrid: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; actualFrequency: z.ZodOptional; }, "strip", z.ZodTypeAny, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }>>; availableSlots: z.ZodOptional>; }, "strip", z.ZodTypeAny, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }>>; slots: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; transmitCycles: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { operators: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }[]; }, { operators: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.OPERATORS_LIST; timestamp: string; data: { operators: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }[]; }; id?: string | undefined; }, { type: WSMessageType.OPERATORS_LIST; timestamp: string; data: { operators: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }[]; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ id: z.ZodString; isActive: z.ZodBoolean; isTransmitting: z.ZodBoolean; isInActivePTT: z.ZodOptional; currentSlot: z.ZodOptional; context: z.ZodObject<{ myCall: z.ZodString; myGrid: z.ZodString; targetCall: z.ZodString; targetGrid: z.ZodOptional; frequency: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; }, "strip", z.ZodTypeAny, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }, { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }>; strategy: z.ZodObject<{ name: z.ZodString; state: z.ZodString; availableSlots: z.ZodArray; }, "strip", z.ZodTypeAny, { name: string; state: string; availableSlots: string[]; }, { name: string; state: string; availableSlots: string[]; }>; runtime: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; context: z.ZodOptional; targetGrid: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; actualFrequency: z.ZodOptional; }, "strip", z.ZodTypeAny, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }, { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; }>>; availableSlots: z.ZodOptional>; }, "strip", z.ZodTypeAny, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }, { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; }>>; slots: z.ZodOptional; TX2: z.ZodOptional; TX3: z.ZodOptional; TX4: z.ZodOptional; TX5: z.ZodOptional; TX6: z.ZodOptional; }, "strip", z.ZodTypeAny, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }, { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; }>>; transmitCycles: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }, { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.OPERATOR_STATUS_UPDATE; timestamp: string; data: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }; id?: string | undefined; }, { type: WSMessageType.OPERATOR_STATUS_UPDATE; timestamp: string; data: { id: string; strategy: { name: string; state: string; availableSlots: string[]; }; isActive: boolean; context: { myGrid: string; myCall: string; targetCall: string; frequency?: number | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; }; isTransmitting: boolean; transmitCycles?: number[] | undefined; currentSlot?: string | undefined; runtime?: { currentState: string; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; context?: { targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; actualFrequency?: number | undefined; } | undefined; availableSlots?: string[] | undefined; } | undefined; slots?: { TX1?: string | undefined; TX2?: string | undefined; TX3?: string | undefined; TX4?: string | undefined; TX5?: string | undefined; TX6?: string | undefined; } | undefined; isInActivePTT?: boolean | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; context: z.ZodObject<{ myCall: z.ZodOptional; myGrid: z.ZodOptional; targetCallsign: z.ZodOptional; targetGrid: z.ZodOptional; frequency: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; }, "strip", z.ZodTypeAny, { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }, { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }>; }, "strip", z.ZodTypeAny, { operatorId: string; context: { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }; }, { operatorId: string; context: { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_OPERATOR_CONTEXT; timestamp: string; data: { operatorId: string; context: { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.SET_OPERATOR_CONTEXT; timestamp: string; data: { operatorId: string; context: { myGrid?: string | undefined; frequency?: number | undefined; targetCallsign?: string | undefined; targetGrid?: string | undefined; reportSent?: number | undefined; reportReceived?: number | undefined; myCall?: string | undefined; }; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; state: z.ZodEnum<["TX1", "TX2", "TX3", "TX4", "TX5", "TX6"]>; }, "strip", z.ZodTypeAny, { operatorId: string; state: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; }, { operatorId: string; state: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_OPERATOR_RUNTIME_STATE; timestamp: string; data: { operatorId: string; state: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; }; id?: string | undefined; }, { type: WSMessageType.SET_OPERATOR_RUNTIME_STATE; timestamp: string; data: { operatorId: string; state: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; slot: z.ZodEnum<["TX1", "TX2", "TX3", "TX4", "TX5", "TX6"]>; content: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; slot: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; content: string; }, { operatorId: string; slot: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; content: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_OPERATOR_RUNTIME_SLOT_CONTENT; timestamp: string; data: { operatorId: string; slot: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; content: string; }; id?: string | undefined; }, { type: WSMessageType.SET_OPERATOR_RUNTIME_SLOT_CONTENT; timestamp: string; data: { operatorId: string; slot: "TX1" | "TX2" | "TX3" | "TX4" | "TX5" | "TX6"; content: string; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; transmitCycles: z.ZodArray; }, "strip", z.ZodTypeAny, { operatorId: string; transmitCycles: number[]; }, { operatorId: string; transmitCycles: number[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_OPERATOR_TRANSMIT_CYCLES; timestamp: string; data: { operatorId: string; transmitCycles: number[]; }; id?: string | undefined; }, { type: WSMessageType.SET_OPERATOR_TRANSMIT_CYCLES; timestamp: string; data: { operatorId: string; transmitCycles: number[]; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; }, { operatorId: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.START_OPERATOR; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }, { type: WSMessageType.START_OPERATOR; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; }, { operatorId: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.STOP_OPERATOR; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }, { type: WSMessageType.STOP_OPERATOR; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; callsign: z.ZodString; selectedFrame: z.ZodOptional>; }, "strip", z.ZodTypeAny, { operatorId: string; callsign: string; selectedFrame?: { message: string; snr: number; freq: number; dt: number; slotStartMs: number; } | undefined; }, { operatorId: string; callsign: string; selectedFrame?: { message: string; snr: number; freq: number; dt: number; slotStartMs: number; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.OPERATOR_REQUEST_CALL; timestamp: string; data: { operatorId: string; callsign: string; selectedFrame?: { message: string; snr: number; freq: number; dt: number; slotStartMs: number; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.OPERATOR_REQUEST_CALL; timestamp: string; data: { operatorId: string; callsign: string; selectedFrame?: { message: string; snr: number; freq: number; dt: number; slotStartMs: number; } | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ gain: z.ZodNumber; }, "strip", z.ZodTypeAny, { gain: number; }, { gain: number; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_VOLUME_GAIN; timestamp: string; data: { gain: number; }; id?: string | undefined; }, { type: WSMessageType.SET_VOLUME_GAIN; timestamp: string; data: { gain: number; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ gainDb: z.ZodNumber; }, "strip", z.ZodTypeAny, { gainDb: number; }, { gainDb: number; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_VOLUME_GAIN_DB; timestamp: string; data: { gainDb: number; }; id?: string | undefined; }, { type: WSMessageType.SET_VOLUME_GAIN_DB; timestamp: string; data: { gainDb: number; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; logBookId: z.ZodString; qsoRecord: z.ZodObject<{ id: z.ZodString; callsign: z.ZodString; grid: z.ZodOptional; frequency: z.ZodNumber; mode: z.ZodString; submode: z.ZodOptional; startTime: z.ZodNumber; endTime: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; messageHistory: z.ZodArray; comment: z.ZodOptional; myCallsign: z.ZodOptional; myGrid: z.ZodOptional; qth: z.ZodOptional; dxccId: z.ZodOptional; dxccEntity: z.ZodOptional; dxccStatus: z.ZodOptional>; countryCode: z.ZodOptional; cqZone: z.ZodOptional; ituZone: z.ZodOptional; dxccSource: z.ZodOptional>; dxccConfidence: z.ZodOptional>; dxccResolvedAt: z.ZodOptional; dxccResolverVersion: z.ZodOptional; dxccNeedsReview: z.ZodOptional; stationLocationId: z.ZodOptional; myDxccId: z.ZodOptional; myCqZone: z.ZodOptional; myItuZone: z.ZodOptional; myState: z.ZodOptional; myCounty: z.ZodOptional; myIota: z.ZodOptional; lotwQslSent: z.ZodOptional>; lotwQslReceived: z.ZodOptional>; lotwQslSentDate: z.ZodOptional; lotwQslReceivedDate: z.ZodOptional; qrzQslSent: z.ZodOptional>; qrzQslReceived: z.ZodOptional>; qrzQslSentDate: z.ZodOptional; qrzQslReceivedDate: z.ZodOptional; notes: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }, { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }>; }, "strip", z.ZodTypeAny, { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }, { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.QSO_RECORD_ADDED; timestamp: string; data: { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.QSO_RECORD_ADDED; timestamp: string; data: { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; logBookId: z.ZodString; qsoRecord: z.ZodObject<{ id: z.ZodString; callsign: z.ZodString; grid: z.ZodOptional; frequency: z.ZodNumber; mode: z.ZodString; submode: z.ZodOptional; startTime: z.ZodNumber; endTime: z.ZodOptional; reportSent: z.ZodOptional; reportReceived: z.ZodOptional; messageHistory: z.ZodArray; comment: z.ZodOptional; myCallsign: z.ZodOptional; myGrid: z.ZodOptional; qth: z.ZodOptional; dxccId: z.ZodOptional; dxccEntity: z.ZodOptional; dxccStatus: z.ZodOptional>; countryCode: z.ZodOptional; cqZone: z.ZodOptional; ituZone: z.ZodOptional; dxccSource: z.ZodOptional>; dxccConfidence: z.ZodOptional>; dxccResolvedAt: z.ZodOptional; dxccResolverVersion: z.ZodOptional; dxccNeedsReview: z.ZodOptional; stationLocationId: z.ZodOptional; myDxccId: z.ZodOptional; myCqZone: z.ZodOptional; myItuZone: z.ZodOptional; myState: z.ZodOptional; myCounty: z.ZodOptional; myIota: z.ZodOptional; lotwQslSent: z.ZodOptional>; lotwQslReceived: z.ZodOptional>; lotwQslSentDate: z.ZodOptional; lotwQslReceivedDate: z.ZodOptional; qrzQslSent: z.ZodOptional>; qrzQslReceived: z.ZodOptional>; qrzQslSentDate: z.ZodOptional; qrzQslReceivedDate: z.ZodOptional; notes: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }, { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }>; }, "strip", z.ZodTypeAny, { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }, { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.QSO_RECORD_UPDATED; timestamp: string; data: { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.QSO_RECORD_UPDATED; timestamp: string; data: { operatorId: string; logBookId: string; qsoRecord: { id: string; mode: string; frequency: number; callsign: string; startTime: number; messageHistory: string[]; myCallsign?: string | undefined; myGrid?: string | undefined; reportSent?: string | undefined; reportReceived?: string | undefined; grid?: string | undefined; submode?: string | undefined; endTime?: number | undefined; comment?: string | undefined; qth?: string | undefined; dxccId?: number | undefined; dxccEntity?: string | undefined; dxccStatus?: "unknown" | "none" | "current" | "deleted" | undefined; countryCode?: string | undefined; cqZone?: number | undefined; ituZone?: number | undefined; dxccSource?: "resolver" | "adif" | "lotw" | "manual_override" | undefined; dxccConfidence?: "unknown" | "exception" | "prefix" | "heuristic" | "manual" | undefined; dxccResolvedAt?: number | undefined; dxccResolverVersion?: string | undefined; dxccNeedsReview?: boolean | undefined; stationLocationId?: string | undefined; myDxccId?: number | undefined; myCqZone?: number | undefined; myItuZone?: number | undefined; myState?: string | undefined; myCounty?: string | undefined; myIota?: string | undefined; lotwQslSent?: "Y" | "N" | "R" | "Q" | "I" | undefined; lotwQslReceived?: "Y" | "N" | "R" | "I" | "V" | undefined; lotwQslSentDate?: number | undefined; lotwQslReceivedDate?: number | undefined; qrzQslSent?: "Y" | "N" | undefined; qrzQslReceived?: "Y" | "N" | undefined; qrzQslSentDate?: number | undefined; qrzQslReceivedDate?: number | undefined; notes?: string | undefined; }; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ logBookId: z.ZodString; statistics: z.ZodObject<{ totalQSOs: z.ZodNumber; totalOperators: z.ZodNumber; uniqueCallsigns: z.ZodNumber; lastQSO: z.ZodOptional; firstQSO: z.ZodOptional; dxcc: z.ZodOptional; total: z.ZodDefault; deleted: z.ZodDefault; }, "strip", z.ZodTypeAny, { current: number; deleted: number; total: number; }, { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }>; confirmed: z.ZodObject<{ current: z.ZodDefault; total: z.ZodDefault; deleted: z.ZodDefault; }, "strip", z.ZodTypeAny, { current: number; deleted: number; total: number; }, { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }>; reviewCount: z.ZodDefault; byBand: z.ZodDefault; confirmed: z.ZodDefault; }, "strip", z.ZodTypeAny, { key: string; worked: number; confirmed: number; }, { key: string; worked?: number | undefined; confirmed?: number | undefined; }>, "many">>; byMode: z.ZodDefault; confirmed: z.ZodDefault; }, "strip", z.ZodTypeAny, { key: string; worked: number; confirmed: number; }, { key: string; worked?: number | undefined; confirmed?: number | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { worked: { current: number; deleted: number; total: number; }; confirmed: { current: number; deleted: number; total: number; }; reviewCount: number; byBand: { key: string; worked: number; confirmed: number; }[]; byMode: { key: string; worked: number; confirmed: number; }[]; }, { worked: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; confirmed: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; reviewCount?: number | undefined; byBand?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; byMode?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current: number; deleted: number; total: number; }; confirmed: { current: number; deleted: number; total: number; }; reviewCount: number; byBand: { key: string; worked: number; confirmed: number; }[]; byMode: { key: string; worked: number; confirmed: number; }[]; } | undefined; }, { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; confirmed: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; reviewCount?: number | undefined; byBand?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; byMode?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; } | undefined; }>; }, "strip", z.ZodTypeAny, { logBookId: string; statistics: { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current: number; deleted: number; total: number; }; confirmed: { current: number; deleted: number; total: number; }; reviewCount: number; byBand: { key: string; worked: number; confirmed: number; }[]; byMode: { key: string; worked: number; confirmed: number; }[]; } | undefined; }; }, { logBookId: string; statistics: { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; confirmed: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; reviewCount?: number | undefined; byBand?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; byMode?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; } | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.LOGBOOK_UPDATED; timestamp: string; data: { logBookId: string; statistics: { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current: number; deleted: number; total: number; }; confirmed: { current: number; deleted: number; total: number; }; reviewCount: number; byBand: { key: string; worked: number; confirmed: number; }[]; byMode: { key: string; worked: number; confirmed: number; }[]; } | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.LOGBOOK_UPDATED; timestamp: string; data: { logBookId: string; statistics: { totalQSOs: number; totalOperators: number; uniqueCallsigns: number; lastQSO?: string | undefined; firstQSO?: string | undefined; dxcc?: { worked: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; confirmed: { current?: number | undefined; deleted?: number | undefined; total?: number | undefined; }; reviewCount?: number | undefined; byBand?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; byMode?: { key: string; worked?: number | undefined; confirmed?: number | undefined; }[] | undefined; } | undefined; }; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ enabledOperatorIds: z.ZodArray; }, "strip", z.ZodTypeAny, { enabledOperatorIds: string[]; }, { enabledOperatorIds: string[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_CLIENT_ENABLED_OPERATORS; timestamp: string; data: { enabledOperatorIds: string[]; }; id?: string | undefined; }, { type: WSMessageType.SET_CLIENT_ENABLED_OPERATORS; timestamp: string; data: { enabledOperatorIds: string[]; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ selectedOperatorId: z.ZodNullable; }, "strip", z.ZodTypeAny, { selectedOperatorId: string | null; }, { selectedOperatorId: string | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SET_CLIENT_SELECTED_OPERATOR; timestamp: string; data: { selectedOperatorId: string | null; }; id?: string | undefined; }, { type: WSMessageType.SET_CLIENT_SELECTED_OPERATOR; timestamp: string; data: { selectedOperatorId: string | null; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ enabledOperatorIds: z.ZodNullable>; selectedOperatorId: z.ZodOptional>; clientInstanceId: z.ZodString; clientVersion: z.ZodOptional; clientCapabilities: z.ZodOptional>; }, "strip", z.ZodTypeAny, { enabledOperatorIds: string[] | null; clientInstanceId: string; selectedOperatorId?: string | null | undefined; clientVersion?: string | undefined; clientCapabilities?: string[] | undefined; }, { enabledOperatorIds: string[] | null; clientInstanceId: string; selectedOperatorId?: string | null | undefined; clientVersion?: string | undefined; clientCapabilities?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CLIENT_HANDSHAKE; timestamp: string; data: { enabledOperatorIds: string[] | null; clientInstanceId: string; selectedOperatorId?: string | null | undefined; clientVersion?: string | undefined; clientCapabilities?: string[] | undefined; }; id?: string | undefined; }, { type: WSMessageType.CLIENT_HANDSHAKE; timestamp: string; data: { enabledOperatorIds: string[] | null; clientInstanceId: string; selectedOperatorId?: string | null | undefined; clientVersion?: string | undefined; clientCapabilities?: string[] | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ serverVersion: z.ZodOptional; supportedFeatures: z.ZodOptional>; finalEnabledOperatorIds: z.ZodOptional>; finalSelectedOperatorId: z.ZodOptional>; }, "strip", z.ZodTypeAny, { serverVersion?: string | undefined; supportedFeatures?: string[] | undefined; finalEnabledOperatorIds?: string[] | undefined; finalSelectedOperatorId?: string | null | undefined; }, { serverVersion?: string | undefined; supportedFeatures?: string[] | undefined; finalEnabledOperatorIds?: string[] | undefined; finalSelectedOperatorId?: string | null | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SERVER_HANDSHAKE_COMPLETE; timestamp: string; data: { serverVersion?: string | undefined; supportedFeatures?: string[] | undefined; finalEnabledOperatorIds?: string[] | undefined; finalSelectedOperatorId?: string | null | undefined; }; id?: string | undefined; }, { type: WSMessageType.SERVER_HANDSHAKE_COMPLETE; timestamp: string; data: { serverVersion?: string | undefined; supportedFeatures?: string[] | undefined; finalEnabledOperatorIds?: string[] | undefined; finalSelectedOperatorId?: string | null | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ phase: z.ZodEnum<["start", "complete"]>; }, "strip", z.ZodTypeAny, { phase: "start" | "complete"; }, { phase: "start" | "complete"; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SLOT_PACKS_RESET; timestamp: string; data: { phase: "start" | "complete"; }; id?: string | undefined; }, { type: WSMessageType.SLOT_PACKS_RESET; timestamp: string; data: { phase: "start" | "complete"; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ connected: z.ZodBoolean; status: z.ZodNativeEnum; radioInfo: z.ZodNullable; connectionType: z.ZodEnum<["serial", "network", "icom-wlan"]>; firmwareVersion: z.ZodOptional; serialNumber: z.ZodOptional; }, "strip", z.ZodTypeAny, { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; }, { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; }>>; radioConfig: z.ZodOptional; 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; }>>; reason: z.ZodOptional; message: z.ZodOptional; recommendation: z.ZodOptional; reconnectProgress: z.ZodOptional; }, "strip", z.ZodTypeAny, { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; }, { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; }>>; connectionHealth: z.ZodOptional>; coreCapabilities: z.ZodOptional>; coreCapabilityDiagnostics: z.ZodOptional; message: z.ZodString; stack: z.ZodString; recordedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }>>; writeFrequency: z.ZodOptional; message: z.ZodString; stack: z.ZodString; recordedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }>>; readRadioMode: z.ZodOptional; message: z.ZodString; stack: z.ZodString; recordedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }>>; writeRadioMode: z.ZodOptional; message: z.ZodString; stack: z.ZodString; recordedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }, { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; }>>; }, "strip", z.ZodTypeAny, { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; }, { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; }>>; meterCapabilities: z.ZodOptional>; /** @deprecated Tuner capability is now in radioCapabilityList event. Kept for backward compat. */ tunerCapabilities: z.ZodOptional>; }, "strip", z.ZodTypeAny, { status: import("./radio.schema.js").RadioConnectionStatus; connected: boolean; radioInfo: { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; } | null; message?: string | undefined; reason?: string | undefined; radioConfig?: { 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; } | undefined; recommendation?: string | undefined; reconnectProgress?: { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; } | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; coreCapabilities?: { readFrequency: boolean; writeFrequency: boolean; readRadioMode: boolean; writeRadioMode: boolean; } | undefined; coreCapabilityDiagnostics?: { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; } | undefined; meterCapabilities?: { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; } | undefined; tunerCapabilities?: { supported: boolean; hasSwitch: boolean; hasManualTune: boolean; } | undefined; }, { status: import("./radio.schema.js").RadioConnectionStatus; connected: boolean; radioInfo: { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; } | null; message?: string | undefined; reason?: string | undefined; radioConfig?: { 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; } | undefined; recommendation?: string | undefined; reconnectProgress?: { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; } | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; coreCapabilities?: { readFrequency: boolean; writeFrequency: boolean; readRadioMode: boolean; writeRadioMode: boolean; } | undefined; coreCapabilityDiagnostics?: { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; } | undefined; meterCapabilities?: { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; } | undefined; tunerCapabilities?: { supported: boolean; hasSwitch: boolean; hasManualTune: boolean; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_STATUS_CHANGED; timestamp: string; data: { status: import("./radio.schema.js").RadioConnectionStatus; connected: boolean; radioInfo: { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; } | null; message?: string | undefined; reason?: string | undefined; radioConfig?: { 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; } | undefined; recommendation?: string | undefined; reconnectProgress?: { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; } | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; coreCapabilities?: { readFrequency: boolean; writeFrequency: boolean; readRadioMode: boolean; writeRadioMode: boolean; } | undefined; coreCapabilityDiagnostics?: { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; } | undefined; meterCapabilities?: { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; } | undefined; tunerCapabilities?: { supported: boolean; hasSwitch: boolean; hasManualTune: boolean; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.RADIO_STATUS_CHANGED; timestamp: string; data: { status: import("./radio.schema.js").RadioConnectionStatus; connected: boolean; radioInfo: { manufacturer: string; model: string; connectionType: "network" | "serial" | "icom-wlan"; rigModel?: number | undefined; firmwareVersion?: string | undefined; serialNumber?: string | undefined; } | null; message?: string | undefined; reason?: string | undefined; radioConfig?: { 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; } | undefined; recommendation?: string | undefined; reconnectProgress?: { attempt: number; maxAttempts: number; nextRetryMs?: number | undefined; } | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; coreCapabilities?: { readFrequency: boolean; writeFrequency: boolean; readRadioMode: boolean; writeRadioMode: boolean; } | undefined; coreCapabilityDiagnostics?: { readFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeFrequency?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; readRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; writeRadioMode?: { message: string; capability: "readFrequency" | "writeFrequency" | "readRadioMode" | "writeRadioMode"; stack: string; recordedAt: number; } | undefined; } | undefined; meterCapabilities?: { power: boolean; swr: boolean; strength: boolean; alc: boolean; powerWatts: boolean; } | undefined; tunerCapabilities?: { supported: boolean; hasSwitch: boolean; hasManualTune: boolean; } | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ /** 技术错误消息(精简摘要;完整原始内容在 context.rawHamlibTrace) */ message: z.ZodString; /** 用户友好的错误消息(兜底英文文案) */ userMessage: z.ZodString; /** 前端 i18n 翻译键,格式如 'radio:error.xxx';存在时前端优先使用 t() */ userMessageKey: z.ZodOptional; /** i18n 参数(与 userMessageKey 配合) */ userMessageParams: z.ZodOptional>>; /** 解决建议列表 */ suggestions: z.ZodDefault>; /** 错误代码(RadioErrorCode) */ code: z.ZodOptional; /** 严重程度 */ severity: z.ZodDefault>; /** ISO 时间戳(服务端生成) */ timestamp: z.ZodString; /** 错误堆栈(仅非生产环境) */ stack: z.ZodOptional; /** 错误上下文 */ context: z.ZodOptional>; /** 连接健康状态 */ connectionHealth: z.ZodOptional>; /** 关联的 Profile ID */ profileId: z.ZodNullable; /** 关联的 Profile 名称 */ profileName: z.ZodNullable; }, "strip", z.ZodTypeAny, { message: string; timestamp: string; profileId: string | null; userMessage: string; suggestions: string[]; profileName: string | null; severity: "error" | "info" | "warning" | "critical"; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; context?: Record | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }, { message: string; timestamp: string; profileId: string | null; userMessage: string; profileName: string | null; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_ERROR; timestamp: string; data: { message: string; timestamp: string; profileId: string | null; userMessage: string; suggestions: string[]; profileName: string | null; severity: "error" | "info" | "warning" | "critical"; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; context?: Record | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }; id?: string | undefined; }, { type: WSMessageType.RADIO_ERROR; timestamp: string; data: { message: string; timestamp: string; profileId: string | null; userMessage: string; profileName: string | null; code?: string | undefined; stack?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; suggestions?: string[] | undefined; context?: Record | undefined; severity?: "error" | "info" | "warning" | "critical" | undefined; connectionHealth?: { connectionHealthy: boolean; } | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_MANUAL_RECONNECT; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.RADIO_MANUAL_RECONNECT; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_STOP_RECONNECT; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.RADIO_STOP_RECONNECT; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ reason: z.ZodString; message: z.ZodString; recommendation: z.ZodString; }, "strip", z.ZodTypeAny, { message: string; reason: string; recommendation: string; }, { message: string; reason: string; recommendation: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_DISCONNECTED_DURING_TRANSMISSION; timestamp: string; data: { message: string; reason: string; recommendation: string; }; id?: string | undefined; }, { type: WSMessageType.RADIO_DISCONNECTED_DURING_TRANSMISSION; timestamp: string; data: { message: string; reason: string; recommendation: string; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: 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"]>; errorKey: z.ZodOptional; 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; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.RADIO_POWER_STATE; timestamp: string; data: { 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; }; id?: string | undefined; }, { type: WSMessageType.RADIO_POWER_STATE; timestamp: string; data: { 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; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ status: z.ZodNativeEnum; isConnected: z.ZodBoolean; retryAttempt: z.ZodNumber; nextRetryMs: z.ZodNullable; longRunning: z.ZodBoolean; lastError: z.ZodNullable; message: z.ZodString; userMessage: z.ZodOptional; userMessageKey: z.ZodOptional; userMessageParams: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; }, { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; }>>; deviceName: z.ZodNullable; }, "strip", z.ZodTypeAny, { status: import("./audio-sidecar.schema.js").AudioSidecarStatus; lastError: { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; } | null; nextRetryMs: number | null; isConnected: boolean; retryAttempt: number; longRunning: boolean; deviceName: string | null; }, { status: import("./audio-sidecar.schema.js").AudioSidecarStatus; lastError: { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; } | null; nextRetryMs: number | null; isConnected: boolean; retryAttempt: number; longRunning: boolean; deviceName: string | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUDIO_SIDECAR_STATUS_CHANGED; timestamp: string; data: { status: import("./audio-sidecar.schema.js").AudioSidecarStatus; lastError: { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; } | null; nextRetryMs: number | null; isConnected: boolean; retryAttempt: number; longRunning: boolean; deviceName: string | null; }; id?: string | undefined; }, { type: WSMessageType.AUDIO_SIDECAR_STATUS_CHANGED; timestamp: string; data: { status: import("./audio-sidecar.schema.js").AudioSidecarStatus; lastError: { message: string; code?: string | undefined; userMessage?: string | undefined; userMessageKey?: string | undefined; userMessageParams?: Record | undefined; } | null; nextRetryMs: number | null; isConnected: boolean; retryAttempt: number; longRunning: boolean; deviceName: string | null; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUDIO_RETRY_NOW; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.AUDIO_RETRY_NOW; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ frequency: z.ZodNumber; mode: z.ZodString; band: z.ZodString; description: z.ZodString; radioMode: z.ZodOptional; radioConnected: z.ZodBoolean; source: z.ZodOptional>; }, "strip", z.ZodTypeAny, { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }, { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.FREQUENCY_CHANGED; timestamp: string; data: { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }; id?: string | undefined; }, { type: WSMessageType.FREQUENCY_CHANGED; timestamp: string; data: { radioConnected: boolean; mode: string; frequency: number; band: string; description: string; radioMode?: string | undefined; source?: "radio" | "program" | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ isTransmitting: z.ZodBoolean; operatorIds: z.ZodArray; }, "strip", z.ZodTypeAny, { operatorIds: string[]; isTransmitting: boolean; }, { operatorIds: string[]; isTransmitting: boolean; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PTT_STATUS_CHANGED; timestamp: string; data: { operatorIds: string[]; isTransmitting: boolean; }; id?: string | undefined; }, { type: WSMessageType.PTT_STATUS_CHANGED; timestamp: string; data: { operatorIds: string[]; isTransmitting: boolean; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.FORCE_STOP_TRANSMISSION; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.FORCE_STOP_TRANSMISSION; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ operatorId: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; }, { operatorId: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.REMOVE_OPERATOR_FROM_TRANSMISSION; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }, { type: WSMessageType.REMOVE_OPERATOR_FROM_TRANSMISSION; timestamp: string; data: { operatorId: string; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional; toneHz: z.ZodOptional; }, "strip", z.ZodTypeAny, { operatorId?: string | undefined; toneHz?: number | undefined; }, { operatorId?: string | undefined; toneHz?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { type: WSMessageType.START_TUNE_TONE; timestamp: string; id?: string | undefined; data?: { operatorId?: string | undefined; toneHz?: number | undefined; } | undefined; }, { type: WSMessageType.START_TUNE_TONE; timestamp: string; id?: string | undefined; data?: { operatorId?: string | undefined; toneHz?: number | undefined; } | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.STOP_TUNE_TONE; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.STOP_TUNE_TONE; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ active: z.ZodBoolean; toneHz: z.ZodNullable; startedAt: z.ZodNullable; maxDurationMs: z.ZodNumber; error: z.ZodOptional; }, "strip", z.ZodTypeAny, { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }, { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.TUNE_TONE_STATUS_CHANGED; timestamp: string; data: { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }; id?: string | undefined; }, { type: WSMessageType.TUNE_TONE_STATUS_CHANGED; timestamp: string; data: { active: boolean; startedAt: number | null; toneHz: number | null; maxDurationMs: number; error?: string | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ swr: z.ZodNullable>; alc: z.ZodNullable>; level: z.ZodNullableS9, e.g., 20 means S9+20dB) */ dbAboveS9: z.ZodOptional; /** Estimated absolute signal level in dBm (may be approximate depending on strategy) */ dBm: z.ZodNumber; /** Human-readable formatted string (e.g., "S4", "S9+20dB", "-24 dB@S9") */ formatted: z.ZodString; /** Preferred frontend presentation style for this meter reading */ displayStyle: z.ZodEnum<["s-meter-dbm", "s-meter", "db-over-s9"]>; }, "strip", z.ZodTypeAny, { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; }, { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; }>>; power: z.ZodNullable; maxWatts: z.ZodNullable; }, "strip", z.ZodTypeAny, { percent: number; raw: number; watts: number | null; maxWatts: number | null; }, { percent: number; raw: number; watts: number | null; maxWatts: number | null; }>>; }, "strip", z.ZodTypeAny, { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }, { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.METER_DATA; timestamp: string; data: { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }; id?: string | undefined; }, { type: WSMessageType.METER_DATA; timestamp: string; data: { power: { percent: number; raw: number; watts: number | null; maxWatts: number | null; } | null; level: { percent: number; raw: number; sUnits: number; dBm: number; formatted: string; displayStyle: "s-meter-dbm" | "s-meter" | "db-over-s9"; dbAboveS9?: number | undefined; } | null; swr: { swr: number; alert: boolean; raw: number; } | null; alc: { percent: number; alert: boolean; raw: number; } | null; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ supported: z.ZodBoolean; open: z.ZodNullable; muted: z.ZodBoolean; source: z.ZodEnum<["hamlib-dcd", "unsupported"]>; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }, { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.SQUELCH_STATUS_CHANGED; timestamp: string; data: { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }; id?: string | undefined; }, { type: WSMessageType.SQUELCH_STATUS_CHANGED; timestamp: string; data: { supported: boolean; source: "hamlib-dcd" | "unsupported"; updatedAt: number; muted: boolean; open: boolean | null; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ title: z.ZodString; text: z.ZodString; color: z.ZodOptional>; timeout: z.ZodOptional>; /** i18n key,前端有此字段时优先翻译显示 */ key: z.ZodOptional; /** i18n 插值参数 */ params: z.ZodOptional>; }, "strip", z.ZodTypeAny, { title: string; text: string; params?: Record | undefined; key?: string | undefined; timeout?: number | null | undefined; color?: "default" | "success" | "warning" | "danger" | undefined; }, { title: string; text: string; params?: Record | undefined; key?: string | undefined; timeout?: number | null | undefined; color?: "default" | "success" | "warning" | "danger" | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.TEXT_MESSAGE; timestamp: string; data: { title: string; text: string; params?: Record | undefined; key?: string | undefined; timeout?: number | null | undefined; color?: "default" | "success" | "warning" | "danger" | undefined; }; id?: string | undefined; }, { type: WSMessageType.TEXT_MESSAGE; timestamp: string; data: { title: string; text: string; params?: Record | undefined; key?: string | undefined; timeout?: number | null | undefined; color?: "default" | "success" | "warning" | "danger" | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ enabled: z.ZodBoolean; state: z.ZodEnum<["disabled", "starting", "listening", "decoding", "muted", "error"]>; config: z.ZodObject<{ enabled: z.ZodDefault; backend: z.ZodDefault>; runtimeBackend: z.ZodDefault>; modelSize: z.ZodDefault>; language: z.ZodDefault; mode: z.ZodDefault>; targetFreqHz: z.ZodDefault; filterWidthHz: z.ZodDefault; windowSeconds: z.ZodDefault; decodeIntervalMs: z.ZodDefault; muteWhileTransmitting: z.ZodDefault; workerCount: z.ZodDefault; minCommitChars: z.ZodDefault; commitStability: z.ZodDefault; maxPendingAgeMs: z.ZodDefault; }, "strip", z.ZodTypeAny, { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }, { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }>; backend: z.ZodOptional; name: z.ZodString; available: z.ZodBoolean; runtimeBackends: z.ZodDefault, "many">>; modelSizes: z.ZodDefault, "many">>; languages: z.ZodDefault>; modes: z.ZodDefault, "many">>; version: z.ZodOptional; label: z.ZodOptional; model: z.ZodOptional; runtime: z.ZodOptional; attributionName: z.ZodOptional; sourceUrl: z.ZodOptional; license: z.ZodOptional; error: z.ZodOptional>; reason: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; }, { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; }>>; muted: z.ZodDefault; active: z.ZodDefault; lastDecodeAt: z.ZodOptional; lastError: z.ZodOptional>; running: z.ZodOptional; backendId: z.ZodOptional>; pendingText: z.ZodOptional; committedText: z.ZodOptional; queuedSamples: z.ZodOptional; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }, { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CW_DECODER_STATUS; timestamp: string; data: { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; id?: string | undefined; }, { type: WSMessageType.CW_DECODER_STATUS; timestamp: string; data: { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{ kind: z.ZodLiteral<"status">; status: z.ZodObject<{ enabled: z.ZodBoolean; state: z.ZodEnum<["disabled", "starting", "listening", "decoding", "muted", "error"]>; config: z.ZodObject<{ enabled: z.ZodDefault; backend: z.ZodDefault>; runtimeBackend: z.ZodDefault>; modelSize: z.ZodDefault>; language: z.ZodDefault; mode: z.ZodDefault>; targetFreqHz: z.ZodDefault; filterWidthHz: z.ZodDefault; windowSeconds: z.ZodDefault; decodeIntervalMs: z.ZodDefault; muteWhileTransmitting: z.ZodDefault; workerCount: z.ZodDefault; minCommitChars: z.ZodDefault; commitStability: z.ZodDefault; maxPendingAgeMs: z.ZodDefault; }, "strip", z.ZodTypeAny, { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }, { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }>; backend: z.ZodOptional; name: z.ZodString; available: z.ZodBoolean; runtimeBackends: z.ZodDefault, "many">>; modelSizes: z.ZodDefault, "many">>; languages: z.ZodDefault>; modes: z.ZodDefault, "many">>; version: z.ZodOptional; label: z.ZodOptional; model: z.ZodOptional; runtime: z.ZodOptional; attributionName: z.ZodOptional; sourceUrl: z.ZodOptional; license: z.ZodOptional; error: z.ZodOptional>; reason: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; }, { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; }>>; muted: z.ZodDefault; active: z.ZodDefault; lastDecodeAt: z.ZodOptional; lastError: z.ZodOptional>; running: z.ZodOptional; backendId: z.ZodOptional>; pendingText: z.ZodOptional; committedText: z.ZodOptional; queuedSamples: z.ZodOptional; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }, { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }>; }, "strip", z.ZodTypeAny, { status: { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; kind: "status"; }, { status: { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; kind: "status"; }>, z.ZodObject<{ kind: z.ZodLiteral<"transcript">; segment: z.ZodObject<{ id: z.ZodString; sessionId: z.ZodString; sequence: z.ZodNumber; text: z.ZodString; plainText: z.ZodOptional; finalized: z.ZodDefault>; prependSpace: z.ZodDefault; confidence: z.ZodOptional; targetFreqHz: z.ZodOptional; filterWidthHz: z.ZodOptional; characterSpans: z.ZodOptional, "many">>; wordSpaceSpans: z.ZodOptional, "many">>; startedAt: z.ZodOptional; endedAt: z.ZodOptional>; updatedAt: z.ZodNumber; wpm: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }>; }, "strip", z.ZodTypeAny, { kind: "transcript"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; }, { kind: "transcript"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; }>, z.ZodObject<{ kind: z.ZodLiteral<"transcript_reset">; sessionId: z.ZodString; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "transcript_reset"; sessionId: string; }, { timestamp: number; kind: "transcript_reset"; sessionId: string; }>, z.ZodObject<{ kind: z.ZodLiteral<"transcript_pending">; pending: z.ZodNullable; finalized: z.ZodDefault>; confidence: z.ZodOptional; targetFreqHz: z.ZodOptional; filterWidthHz: z.ZodOptional; characterSpans: z.ZodOptional, "many">>; wordSpaceSpans: z.ZodOptional, "many">>; updatedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { version: number; updatedAt: number; text: string; sessionId: string; finalized: false; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; }, { version: number; updatedAt: number; text: string; sessionId: string; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: false | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; }>>; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "transcript_pending"; pending: { version: number; updatedAt: number; text: string; sessionId: string; finalized: false; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; } | null; }, { timestamp: number; kind: "transcript_pending"; pending: { version: number; updatedAt: number; text: string; sessionId: string; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: false | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; } | null; }>, z.ZodObject<{ kind: z.ZodLiteral<"transcript_commit">; segment: z.ZodObject<{ id: z.ZodString; sessionId: z.ZodString; sequence: z.ZodNumber; text: z.ZodString; plainText: z.ZodOptional; finalized: z.ZodDefault>; prependSpace: z.ZodDefault; confidence: z.ZodOptional; targetFreqHz: z.ZodOptional; filterWidthHz: z.ZodOptional; characterSpans: z.ZodOptional, "many">>; wordSpaceSpans: z.ZodOptional, "many">>; startedAt: z.ZodOptional; endedAt: z.ZodOptional>; updatedAt: z.ZodNumber; wpm: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }>; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "transcript_commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; }, { timestamp: number; kind: "transcript_commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; }>, z.ZodObject<{ kind: z.ZodLiteral<"pending">; text: z.ZodString; confidence: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "pending"; text: string; confidence?: number | undefined; }, { timestamp: number; kind: "pending"; text: string; confidence?: number | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"commit">; segment: z.ZodObject<{ id: z.ZodString; sessionId: z.ZodString; sequence: z.ZodNumber; text: z.ZodString; plainText: z.ZodOptional; finalized: z.ZodDefault>; prependSpace: z.ZodDefault; confidence: z.ZodOptional; targetFreqHz: z.ZodOptional; filterWidthHz: z.ZodOptional; characterSpans: z.ZodOptional, "many">>; wordSpaceSpans: z.ZodOptional, "many">>; startedAt: z.ZodOptional; endedAt: z.ZodOptional>; updatedAt: z.ZodNumber; wpm: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }, { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }>; text: z.ZodOptional; confidence: z.ZodOptional; timestamp: z.ZodOptional; }, "strip", z.ZodTypeAny, { kind: "commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; confidence?: number | undefined; timestamp?: number | undefined; text?: string | undefined; }, { kind: "commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; confidence?: number | undefined; timestamp?: number | undefined; text?: string | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"partial">; text: z.ZodString; confidence: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "partial"; text: string; confidence?: number | undefined; }, { timestamp: number; kind: "partial"; text: string; confidence?: number | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"error">; message: z.ZodString; code: z.ZodOptional; recoverable: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; kind: "error"; code?: string | undefined; recoverable?: boolean | undefined; }, { message: string; timestamp: number; kind: "error"; code?: string | undefined; recoverable?: boolean | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"model_load">; backend: z.ZodEnum<["deepcw-onnx"]>; modelSize: z.ZodOptional>; language: z.ZodOptional; progress: z.ZodOptional; message: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "model_load"; backend: "deepcw-onnx"; message?: string | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; progress?: number | undefined; }, { timestamp: number; kind: "model_load"; backend: "deepcw-onnx"; message?: string | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; progress?: number | undefined; }>, z.ZodObject<{ kind: z.ZodLiteral<"audio_buffer">; queuedSamples: z.ZodNumber; sampleRate: z.ZodOptional; durationMs: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { timestamp: number; kind: "audio_buffer"; queuedSamples: number; sampleRate?: number | undefined; durationMs?: number | undefined; }, { timestamp: number; kind: "audio_buffer"; queuedSamples: number; sampleRate?: number | undefined; durationMs?: number | undefined; }>]>; }, "strip", z.ZodTypeAny, { type: WSMessageType.CW_DECODER_EVENT; timestamp: string; data: { status: { active: boolean; config: { mode: "streaming"; enabled: boolean; backend: "deepcw-onnx"; runtimeBackend: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu"; modelSize: "small" | "tiny"; language: string; targetFreqHz: number; filterWidthHz: number; windowSeconds: number; decodeIntervalMs: number; muteWhileTransmitting: boolean; workerCount: number; minCommitChars: number; commitStability: number; maxPendingAgeMs: number; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; muted: boolean; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; runtimeBackends: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[]; modelSizes: ("small" | "tiny")[]; languages: string[]; modes: "streaming"[]; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; attributionName?: string | undefined; } | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; kind: "status"; } | { kind: "transcript"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; } | { timestamp: number; kind: "transcript_reset"; sessionId: string; } | { timestamp: number; kind: "transcript_pending"; pending: { version: number; updatedAt: number; text: string; sessionId: string; finalized: false; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; } | null; } | { timestamp: number; kind: "transcript_commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; } | { timestamp: number; kind: "pending"; text: string; confidence?: number | undefined; } | { kind: "commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; finalized: true; prependSpace: boolean; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; confidence?: number | undefined; timestamp?: number | undefined; text?: string | undefined; } | { timestamp: number; kind: "partial"; text: string; confidence?: number | undefined; } | { message: string; timestamp: number; kind: "error"; code?: string | undefined; recoverable?: boolean | undefined; } | { timestamp: number; kind: "model_load"; backend: "deepcw-onnx"; message?: string | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; progress?: number | undefined; } | { timestamp: number; kind: "audio_buffer"; queuedSamples: number; sampleRate?: number | undefined; durationMs?: number | undefined; }; id?: string | undefined; }, { type: WSMessageType.CW_DECODER_EVENT; timestamp: string; data: { status: { config: { mode?: "streaming" | undefined; enabled?: boolean | undefined; backend?: "deepcw-onnx" | undefined; runtimeBackend?: "cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu" | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; windowSeconds?: number | undefined; decodeIntervalMs?: number | undefined; muteWhileTransmitting?: boolean | undefined; workerCount?: number | undefined; minCommitChars?: number | undefined; commitStability?: number | undefined; maxPendingAgeMs?: number | undefined; }; state: "error" | "disabled" | "starting" | "listening" | "decoding" | "muted"; enabled: boolean; updatedAt: number; active?: boolean | undefined; lastError?: string | null | undefined; backend?: { id: "deepcw-onnx"; name: string; available: boolean; reason?: string | undefined; error?: string | null | undefined; label?: string | undefined; runtime?: string | undefined; version?: string | undefined; license?: string | undefined; sourceUrl?: string | undefined; model?: string | undefined; runtimeBackends?: ("cpu" | "cuda" | "coreml" | "directml" | "wasm" | "webgpu")[] | undefined; modelSizes?: ("small" | "tiny")[] | undefined; languages?: string[] | undefined; modes?: "streaming"[] | undefined; attributionName?: string | undefined; } | undefined; muted?: boolean | undefined; lastDecodeAt?: number | undefined; running?: boolean | undefined; backendId?: "deepcw-onnx" | undefined; pendingText?: string | undefined; committedText?: string | undefined; queuedSamples?: number | undefined; }; kind: "status"; } | { kind: "transcript"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; } | { timestamp: number; kind: "transcript_reset"; sessionId: string; } | { timestamp: number; kind: "transcript_pending"; pending: { version: number; updatedAt: number; text: string; sessionId: string; confidence?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: false | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; } | null; } | { timestamp: number; kind: "transcript_commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; } | { timestamp: number; kind: "pending"; text: string; confidence?: number | undefined; } | { kind: "commit"; segment: { id: string; updatedAt: number; text: string; sessionId: string; sequence: number; confidence?: number | undefined; wpm?: number | undefined; targetFreqHz?: number | undefined; filterWidthHz?: number | undefined; plainText?: string | undefined; finalized?: true | undefined; prependSpace?: boolean | undefined; characterSpans?: { startFrame: number; endFrame: number; char: string; }[] | undefined; wordSpaceSpans?: { startFrame: number; endFrame: number; }[] | undefined; startedAt?: number | undefined; endedAt?: number | null | undefined; }; confidence?: number | undefined; timestamp?: number | undefined; text?: string | undefined; } | { timestamp: number; kind: "partial"; text: string; confidence?: number | undefined; } | { message: string; timestamp: number; kind: "error"; code?: string | undefined; recoverable?: boolean | undefined; } | { timestamp: number; kind: "model_load"; backend: "deepcw-onnx"; message?: string | undefined; modelSize?: "small" | "tiny" | undefined; language?: string | undefined; progress?: number | undefined; } | { timestamp: number; kind: "audio_buffer"; queuedSamples: number; sampleRate?: number | undefined; durationMs?: number | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ allowPublicViewing: z.ZodBoolean; }, "strip", z.ZodTypeAny, { allowPublicViewing: boolean; }, { allowPublicViewing: boolean; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_REQUIRED; timestamp: string; data: { allowPublicViewing: boolean; }; id?: string | undefined; }, { type: WSMessageType.AUTH_REQUIRED; timestamp: string; data: { allowPublicViewing: boolean; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ jwt: z.ZodString; }, "strip", z.ZodTypeAny, { jwt: string; }, { jwt: string; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_TOKEN; timestamp: string; data: { jwt: string; }; id?: string | undefined; }, { type: WSMessageType.AUTH_TOKEN; timestamp: string; data: { jwt: string; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_PUBLIC_VIEWER; timestamp: string; id?: string | undefined; data?: {} | undefined; }, { type: WSMessageType.AUTH_PUBLIC_VIEWER; timestamp: string; id?: string | undefined; data?: {} | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ success: z.ZodBoolean; role: z.ZodOptional>; label: z.ZodOptional; operatorIds: z.ZodOptional>; error: z.ZodOptional; }, "strip", z.ZodTypeAny, { success: boolean; error?: string | undefined; label?: string | undefined; role?: UserRole | undefined; operatorIds?: string[] | undefined; }, { success: boolean; error?: string | undefined; label?: string | undefined; role?: UserRole | undefined; operatorIds?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_RESULT; timestamp: string; data: { success: boolean; error?: string | undefined; label?: string | undefined; role?: UserRole | undefined; operatorIds?: string[] | undefined; }; id?: string | undefined; }, { type: WSMessageType.AUTH_RESULT; timestamp: string; data: { success: boolean; error?: string | undefined; label?: string | undefined; role?: UserRole | undefined; operatorIds?: string[] | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ reason: z.ZodOptional; }, "strip", z.ZodTypeAny, { reason?: string | undefined; }, { reason?: string | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.AUTH_EXPIRED; timestamp: string; data: { reason?: string | undefined; }; id?: string | undefined; }, { type: WSMessageType.AUTH_EXPIRED; timestamp: string; data: { reason?: string | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ state: z.ZodEnum<["ready", "reloading", "error"]>; generation: z.ZodNumber; plugins: z.ZodArray; instanceScope: z.ZodDefault>>; version: z.ZodString; description: z.ZodOptional; isBuiltIn: z.ZodBoolean; loaded: z.ZodDefault; enabled: z.ZodBoolean; autoDisabled: z.ZodDefault>; errorCount: z.ZodNumber; lastError: z.ZodOptional; assignedOperatorIds: z.ZodOptional>; settings: z.ZodOptional; default: z.ZodUnknown; label: z.ZodString; description: z.ZodOptional; min: z.ZodOptional; max: z.ZodOptional; options: z.ZodOptional, "many">>; itemFields: z.ZodOptional>>; label: z.ZodString; description: z.ZodOptional; placeholder: z.ZodOptional; required: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean"; label: string; key: string; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }, { label: string; key: string; type?: "string" | "number" | "boolean" | undefined; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }>, "many">>; keys: z.ZodOptional; }, "strip", z.ZodTypeAny, { label: string; key: string; description?: string | undefined; }, { label: string; key: string; description?: string | undefined; }>, "many">>; visibleWhen: z.ZodOptional>; descriptionWhen: z.ZodOptional; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }, { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }>, "many">>; hidden: z.ZodOptional; scope: z.ZodDefault>>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info"; label: string; scope: "operator" | "global"; keys?: { label: string; key: string; description?: string | undefined; }[] | undefined; options?: { value: string; label: string; }[] | undefined; default?: unknown; description?: string | undefined; min?: number | undefined; max?: number | undefined; itemFields?: { type: "string" | "number" | "boolean"; label: string; key: string; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }[] | undefined; visibleWhen?: import("./plugin.schema.js").PluginSettingCondition | undefined; descriptionWhen?: { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }[] | undefined; hidden?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info"; label: string; keys?: { label: string; key: string; description?: string | undefined; }[] | undefined; options?: { value: string; label: string; }[] | undefined; default?: unknown; description?: string | undefined; min?: number | undefined; max?: number | undefined; itemFields?: { label: string; key: string; type?: "string" | "number" | "boolean" | undefined; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }[] | undefined; visibleWhen?: import("./plugin.schema.js").PluginSettingCondition | undefined; descriptionWhen?: { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }[] | undefined; hidden?: boolean | undefined; scope?: "operator" | "global" | undefined; }>>>; quickActions: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; label: string; icon?: string | undefined; }, { id: string; label: string; icon?: string | undefined; }>, "many">>; quickSettings: z.ZodOptional, "many">>; panels: z.ZodOptional; pageId: z.ZodOptional; params: z.ZodOptional>; slot: z.ZodOptional>; width: z.ZodOptional>; icon: z.ZodOptional; openMode: z.ZodOptional>; uiSize: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, "many">>; permissions: z.ZodOptional, "many">>; capabilities: z.ZodOptional, "many">>; ui: z.ZodOptional>; pages: z.ZodDefault; accessScope: z.ZodDefault>>; resourceBinding: z.ZodDefault>>; }, "strip", z.ZodTypeAny, { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }, { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }>, "many">>>; }, "strip", z.ZodTypeAny, { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; }, { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; }>>; locales: z.ZodOptional>>; source: z.ZodOptional; version: z.ZodString; channel: z.ZodEnum<["stable", "nightly"]>; artifactUrl: z.ZodString; sha256: z.ZodString; installedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; }, { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; }>]>>; }, "strip", z.ZodTypeAny, { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }, { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }>, "many">; panelMeta: z.ZodDefault>; titleValues: z.ZodOptional>; visible: z.ZodOptional; }, "strip", z.ZodTypeAny, { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }, { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }>; }, "strip", z.ZodTypeAny, { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }, { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }>, "many">>>; panelContributions: z.ZodDefault; instanceTarget: z.ZodOptional; }, "strip", z.ZodTypeAny, { kind: "global"; }, { kind: "global"; }>, z.ZodObject<{ kind: z.ZodLiteral<"operator">; operatorId: z.ZodString; }, "strip", z.ZodTypeAny, { operatorId: string; kind: "operator"; }, { operatorId: string; kind: "operator"; }>]>>; panels: z.ZodArray; pageId: z.ZodOptional; params: z.ZodOptional>; slot: z.ZodOptional>; width: z.ZodOptional>; icon: z.ZodOptional; openMode: z.ZodOptional>; uiSize: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }, { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }>, "many">>>; lastError: z.ZodOptional; }, "strip", z.ZodTypeAny, { state: "error" | "ready" | "reloading"; generation: number; plugins: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }[]; panelMeta: { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }[]; panelContributions: { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }[]; lastError?: string | undefined; }, { state: "error" | "ready" | "reloading"; generation: number; plugins: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }[]; lastError?: string | undefined; panelMeta?: { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }[] | undefined; panelContributions?: { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_LIST; timestamp: string; data: { state: "error" | "ready" | "reloading"; generation: number; plugins: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }[]; panelMeta: { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }[]; panelContributions: { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }[]; lastError?: string | undefined; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_LIST; timestamp: string; data: { state: "error" | "ready" | "reloading"; generation: number; plugins: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }[]; lastError?: string | undefined; panelMeta?: { operatorId: string; meta: { visible?: boolean | undefined; title?: string | null | undefined; titleValues?: Record | undefined; }; pluginName: string; panelId: string; }[] | undefined; panelContributions?: { pluginName: string; groupId: string; source: "manifest" | "runtime"; panels: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[]; instanceTarget?: { kind: "global"; } | { operatorId: string; kind: "operator"; } | undefined; }[] | undefined; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ generation: z.ZodNumber; plugin: z.ZodObject<{ name: z.ZodString; type: z.ZodEnum<["strategy", "utility"]>; instanceScope: z.ZodDefault>>; version: z.ZodString; description: z.ZodOptional; isBuiltIn: z.ZodBoolean; loaded: z.ZodDefault; enabled: z.ZodBoolean; autoDisabled: z.ZodDefault>; errorCount: z.ZodNumber; lastError: z.ZodOptional; assignedOperatorIds: z.ZodOptional>; settings: z.ZodOptional; default: z.ZodUnknown; label: z.ZodString; description: z.ZodOptional; min: z.ZodOptional; max: z.ZodOptional; options: z.ZodOptional, "many">>; itemFields: z.ZodOptional>>; label: z.ZodString; description: z.ZodOptional; placeholder: z.ZodOptional; required: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean"; label: string; key: string; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }, { label: string; key: string; type?: "string" | "number" | "boolean" | undefined; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }>, "many">>; keys: z.ZodOptional; }, "strip", z.ZodTypeAny, { label: string; key: string; description?: string | undefined; }, { label: string; key: string; description?: string | undefined; }>, "many">>; visibleWhen: z.ZodOptional>; descriptionWhen: z.ZodOptional; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }, { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }>, "many">>; hidden: z.ZodOptional; scope: z.ZodDefault>>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info"; label: string; scope: "operator" | "global"; keys?: { label: string; key: string; description?: string | undefined; }[] | undefined; options?: { value: string; label: string; }[] | undefined; default?: unknown; description?: string | undefined; min?: number | undefined; max?: number | undefined; itemFields?: { type: "string" | "number" | "boolean"; label: string; key: string; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }[] | undefined; visibleWhen?: import("./plugin.schema.js").PluginSettingCondition | undefined; descriptionWhen?: { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }[] | undefined; hidden?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info"; label: string; keys?: { label: string; key: string; description?: string | undefined; }[] | undefined; options?: { value: string; label: string; }[] | undefined; default?: unknown; description?: string | undefined; min?: number | undefined; max?: number | undefined; itemFields?: { label: string; key: string; type?: "string" | "number" | "boolean" | undefined; description?: string | undefined; placeholder?: string | undefined; required?: boolean | undefined; }[] | undefined; visibleWhen?: import("./plugin.schema.js").PluginSettingCondition | undefined; descriptionWhen?: { description: string; when: import("./plugin.schema.js").PluginSettingCondition; }[] | undefined; hidden?: boolean | undefined; scope?: "operator" | "global" | undefined; }>>>; quickActions: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; label: string; icon?: string | undefined; }, { id: string; label: string; icon?: string | undefined; }>, "many">>; quickSettings: z.ZodOptional, "many">>; panels: z.ZodOptional; pageId: z.ZodOptional; params: z.ZodOptional>; slot: z.ZodOptional>; width: z.ZodOptional>; icon: z.ZodOptional; openMode: z.ZodOptional>; uiSize: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }, { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }>, "many">>; permissions: z.ZodOptional, "many">>; capabilities: z.ZodOptional, "many">>; ui: z.ZodOptional>; pages: z.ZodDefault; accessScope: z.ZodDefault>>; resourceBinding: z.ZodDefault>>; }, "strip", z.ZodTypeAny, { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }, { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }>, "many">>>; }, "strip", z.ZodTypeAny, { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; }, { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; }>>; locales: z.ZodOptional>>; source: z.ZodOptional; version: z.ZodString; channel: z.ZodEnum<["stable", "nightly"]>; artifactUrl: z.ZodString; sha256: z.ZodString; installedAt: z.ZodNumber; }, "strip", z.ZodTypeAny, { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; }, { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; }>]>>; }, "strip", z.ZodTypeAny, { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }, { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }>; }, "strip", z.ZodTypeAny, { generation: number; plugin: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }; }, { generation: number; plugin: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_STATUS_CHANGED; timestamp: string; data: { generation: number; plugin: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; instanceScope: "operator" | "global"; isBuiltIn: boolean; loaded: boolean; autoDisabled: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir: string; pages: { id: string; title: string; entry: string; accessScope: "operator" | "admin"; resourceBinding: "none" | "callsign" | "operator"; icon?: string | undefined; }[]; } | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_STATUS_CHANGED; timestamp: string; data: { generation: number; plugin: { type: "strategy" | "utility"; name: string; enabled: boolean; version: string; isBuiltIn: boolean; errorCount: number; description?: string | undefined; source?: { kind: "marketplace"; version: string; channel: "stable" | "nightly"; artifactUrl: string; sha256: string; installedAt: number; } | undefined; panels?: { id: string; title: string; component: "table" | "key-value" | "chart" | "log" | "iframe"; params?: Record | undefined; icon?: string | undefined; pageId?: string | undefined; slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-left-top" | "cw-right-top" | "radio-control-toolbar" | undefined; width?: "full" | "half" | undefined; openMode?: "popover" | "modal" | undefined; uiSize?: "sm" | "md" | "lg" | undefined; }[] | undefined; ui?: { dir?: string | undefined; pages?: { id: string; title: string; entry: string; icon?: string | undefined; accessScope?: "operator" | "admin" | undefined; resourceBinding?: "none" | "callsign" | "operator" | undefined; }[] | undefined; } | undefined; instanceScope?: "operator" | "global" | undefined; permissions?: ("network" | "host:hamlib" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined; settings?: Record | undefined; quickActions?: { id: string; label: string; icon?: string | undefined; }[] | undefined; quickSettings?: { settingKey: string; }[] | undefined; loaded?: boolean | undefined; autoDisabled?: boolean | undefined; lastError?: string | undefined; assignedOperatorIds?: string[] | undefined; capabilities?: ("auto_call_candidate" | "auto_call_execution")[] | undefined; locales?: Record> | undefined; }; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ pluginName: z.ZodString; operatorId: z.ZodString; panelId: z.ZodString; data: z.ZodUnknown; }, "strip", z.ZodTypeAny, { operatorId: string; pluginName: string; panelId: string; data?: unknown; }, { operatorId: string; pluginName: string; panelId: string; data?: unknown; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_DATA; timestamp: string; data: { operatorId: string; pluginName: string; panelId: string; data?: unknown; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_DATA; timestamp: string; data: { operatorId: string; pluginName: string; panelId: string; data?: unknown; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ pluginName: z.ZodString; level: z.ZodEnum<["debug", "info", "warn", "error"]>; message: z.ZodString; data: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }, { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_LOG; timestamp: string; data: { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_LOG; timestamp: string; data: { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ source: z.ZodLiteral<"system">; stage: z.ZodEnum<["scan", "load", "validate", "reload", "activate"]>; level: z.ZodEnum<["debug", "info", "warn", "error"]>; message: z.ZodString; timestamp: z.ZodNumber; pluginName: z.ZodOptional; directoryName: z.ZodOptional; details: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }, { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_RUNTIME_LOG; timestamp: string; data: { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_RUNTIME_LOG; timestamp: string; data: { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodOptional; }, "strip", z.ZodTypeAny, { limit?: number | undefined; }, { limit?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { type: WSMessageType.GET_PLUGIN_RUNTIME_LOG_HISTORY; timestamp: string; id?: string | undefined; data?: { limit?: number | undefined; } | undefined; }, { type: WSMessageType.GET_PLUGIN_RUNTIME_LOG_HISTORY; timestamp: string; id?: string | undefined; data?: { limit?: number | undefined; } | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ entries: z.ZodArray; stage: z.ZodEnum<["scan", "load", "validate", "reload", "activate"]>; level: z.ZodEnum<["debug", "info", "warn", "error"]>; message: z.ZodString; timestamp: z.ZodNumber; pluginName: z.ZodOptional; directoryName: z.ZodOptional; details: z.ZodOptional; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }, { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; }>, z.ZodObject<{ pluginName: z.ZodString; level: z.ZodEnum<["debug", "info", "warn", "error"]>; message: z.ZodString; data: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }, { message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; }>]>, "many">; }, "strip", z.ZodTypeAny, { entries: ({ message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; } | { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; })[]; }, { entries: ({ message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; } | { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; })[]; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_RUNTIME_LOG_HISTORY; timestamp: string; data: { entries: ({ message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; } | { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; })[]; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_RUNTIME_LOG_HISTORY; timestamp: string; data: { entries: ({ message: string; timestamp: number; pluginName: string; level: "error" | "info" | "debug" | "warn"; data?: unknown; } | { message: string; timestamp: number; source: "system"; level: "error" | "info" | "debug" | "warn"; stage: "scan" | "load" | "validate" | "reload" | "activate"; pluginName?: string | undefined; directoryName?: string | undefined; details?: unknown; })[]; }; id?: string | undefined; }>, z.ZodObject<{ timestamp: z.ZodString; id: z.ZodOptional; } & { type: z.ZodLiteral; data: z.ZodObject<{ pluginName: z.ZodString; actionId: z.ZodString; operatorId: z.ZodOptional; payload: z.ZodOptional; }, "strip", z.ZodTypeAny, { pluginName: string; actionId: string; operatorId?: string | undefined; payload?: unknown; }, { pluginName: string; actionId: string; operatorId?: string | undefined; payload?: unknown; }>; }, "strip", z.ZodTypeAny, { type: WSMessageType.PLUGIN_USER_ACTION; timestamp: string; data: { pluginName: string; actionId: string; operatorId?: string | undefined; payload?: unknown; }; id?: string | undefined; }, { type: WSMessageType.PLUGIN_USER_ACTION; timestamp: string; data: { pluginName: string; actionId: string; operatorId?: string | undefined; payload?: unknown; }; id?: string | undefined; }>]>; export type WSMessage = z.infer; export type WSPingMessage = z.infer; export type WSPongMessage = z.infer; export type WSModeChangedMessage = z.infer; export type WSSlotStartMessage = z.infer; export type WSSubWindowMessage = z.infer; export type WSSlotPackUpdatedMessage = z.infer; export type WSSpectrumCapabilitiesMessage = z.infer; export type WSSubscribeSpectrumMessage = z.infer; export type WSSpectrumSubscriptionChangedMessage = z.infer; export type WSSpectrumFrameMessage = z.infer; export type WSSpectrumSessionStateChangedMessage = z.infer; export type WSInvokeSpectrumControlMessage = z.infer; export type WSDecodeErrorMessage = z.infer; export type WSSystemStatusMessage = z.infer; export type WSBootstrapStatusChangedMessage = z.infer; export type WSClientCountChangedMessage = z.infer; export type WSClockStatusChangedMessage = z.infer; export type WSErrorMessage = z.infer; export type WSStartEngineMessage = z.infer; export type WSStopEngineMessage = z.infer; export type WSSetModeMessage = z.infer; export type WSGetStatusMessage = z.infer; export declare const TransmitRequestSchema: z.ZodObject<{ operatorId: z.ZodString; transmission: z.ZodString; /** 是否覆盖同一操作员在同一时隙的现有 TX 帧(自动重决策时为 true) */ replaceExisting: z.ZodOptional; }, "strip", z.ZodTypeAny, { operatorId: string; transmission: string; replaceExisting?: boolean | undefined; }, { operatorId: string; transmission: string; replaceExisting?: boolean | undefined; }>; export type TransmitRequest = z.infer; /** * 发射完成事件信息 */ export declare const TransmissionCompleteInfoSchema: z.ZodObject<{ operatorId: z.ZodString; success: z.ZodBoolean; duration: z.ZodOptional; error: z.ZodOptional; mixedWith: z.ZodOptional>; }, "strip", z.ZodTypeAny, { success: boolean; operatorId: string; error?: string | undefined; duration?: number | undefined; mixedWith?: string[] | undefined; }, { success: boolean; operatorId: string; error?: string | undefined; duration?: number | undefined; mixedWith?: string[] | undefined; }>; export type TransmissionCompleteInfo = z.infer; /** * 数字无线电引擎事件接口 * 定义了前端应用层面的事件类型,基于底层WebSocket事件 */ export interface DigitalRadioEngineEvents { modeChanged: (mode: z.infer) => void; slotStart: (slotInfo: z.infer, lastSlotPack: z.infer | null) => void; subWindow: (windowInfo: SubWindowInfo) => void; slotPackUpdated: (slotPack: z.infer) => void; slotPacksReset: (data: z.infer['data']) => void; spectrumCapabilities: (data: z.infer) => void; spectrumSubscriptionChanged: (data: z.infer['data']) => void; spectrumFrame: (data: z.infer) => void; spectrumSessionStateChanged: (data: z.infer) => void; requestTransmit: (request: TransmitRequest) => void; transmissionComplete: (info: TransmissionCompleteInfo) => void; transmissionLog: (data: { operatorId: string; time: string; message: string; frequency: number; slotStartMs: number; replaceExisting?: boolean; frequencyContext?: z.infer; }) => void; operatorsList: (data: { operators: OperatorStatus[]; }) => void; operatorStatusUpdate: (operatorStatus: OperatorStatus) => void; decodeError: (errorInfo: DecodeErrorInfo) => void; systemStatus: (status: SystemStatus) => void; bootstrapStatusChanged: (status: BootstrapStatus) => void; clientCountChanged: (data: { count: number; timestamp: number; }) => void; clockStatusChanged: (data: import('./system.schema.js').ClockStatusSummary) => void; connected: () => void; reconnecting: (data: { attempt: number; delayMs: number; }) => void; disconnected: () => void; handshakeComplete: (data: z.infer['data']) => void; connectionReplaced: (data: { reason: string; }) => void; error: (error: Error) => void; volumeGainChanged: (data: { gain: number; gainDb: number; } | number) => void; frequencyChanged: (data: FrequencyState) => void; pttStatusChanged: (data: PTTStatus) => void; tuneToneStatusChanged: (data: TuneToneStatus) => void; meterData: (data: MeterData) => void; squelchStatusChanged: (data: SquelchStatus) => void; qsoRecordAdded: (data: { operatorId: string; logBookId: string; qsoRecord: z.infer; }) => void; qsoRecordUpdated: (data: { operatorId: string; logBookId: string; qsoRecord: z.infer; }) => void; logbookUpdated: (data: { logBookId: string; statistics: z.infer; operatorId?: string; }) => void; textMessage: (data: z.infer['data']) => void; /** @deprecated Tuner state is now delivered via radioCapabilityChanged event (id='tuner_switch') */ tunerStatusChanged: (status: z.infer) => void; radioCapabilityList: (data: z.infer) => void; radioCapabilityChanged: (data: z.infer) => void; radioStatusChanged: (data: z.infer['data']) => void; radioError: (data: z.infer) => void; radioDisconnectedDuringTransmission: (data: z.infer['data']) => void; radioPowerState: (data: import('./radio-power.schema.js').RadioPowerStateEvent) => void; audioSidecarStatusChanged: (data: z.infer) => void; profileChanged: (data: z.infer) => void; profileListUpdated: (data: { profiles: z.infer[]; activeProfileId: string | null; }) => void; realtimeSettingsChanged: (data: RealtimeSettingsResponseData) => void; authRequired: (data: { allowPublicViewing: boolean; }) => void; authResult: (data: { success: boolean; role?: UserRole; label?: string; operatorIds?: string[]; error?: string; }) => void; authExpired: (data: { reason?: string; }) => void; voicePttLockChanged: (data: VoicePTTLock) => void; voiceRadioModeChanged: (data: { radioMode: string; }) => void; voiceKeyerStatusChanged: (data: VoiceKeyerStatus) => void; cwKeyerStatusChanged: (data: CWKeyerStatus) => void; cwConfigChanged: (data: CWKeyerConfig) => void; cwDecoderStatusChanged: (data: CWDecoderStatus) => void; cwDecoderEvent: (data: CWDecoderEvent) => void; processSnapshot: (data: import('./process-monitor.schema.js').ProcessSnapshot) => void; processSnapshotHistory: (data: import('./process-monitor.schema.js').ProcessSnapshotHistory) => void; openwebrxProfileSelectRequest: (data: import('./openwebrx.schema.js').OpenWebRXProfileSelectRequest) => void; openwebrxProfileVerifyResult: (data: import('./openwebrx.schema.js').OpenWebRXProfileVerifyResult) => void; openwebrxClientCount: (data: { count: number; }) => void; openwebrxCooldownNotice: (data: { waitMs: number; }) => void; realtimeConnectivityIssue: (data: import('./realtime.schema.js').RealtimeConnectivityIssue) => void; pluginList: (data: PluginSystemSnapshot) => void; pluginStatusChanged: (data: { generation: number; plugin: PluginStatus; }) => void; pluginData: (data: PluginDataPayload) => void; pluginLog: (data: PluginLogEntry) => void; pluginRuntimeLog: (data: PluginRuntimeLogEntry) => void; pluginRuntimeLogHistory: (data: PluginRuntimeLogHistoryPayload) => void; rigctldStatus: (data: import('./rigctld.schema.js').RigctldStatus) => void; pluginPagePush: (data: { pluginName: string; pageId: string; pageSessionId: string; action: string; data?: unknown; }) => void; pluginPanelMeta: (data: import('./plugin.schema.js').PluginPanelMetaPayload) => void; pluginPanelContributionsChanged: (data: import('./plugin.schema.js').PluginUIPanelContributionGroup) => void; pluginRemoteReplyToDecode: (data: { operatorId: string; callsign: string; modifiers?: number; }) => void; pluginRemoteClearDecodes: (data: { operatorId: string; window?: number; }) => void; pluginRemoteFreeText: (data: { operatorId: string; text?: string; send: boolean; }) => void; pluginRemoteLocation: (data: { operatorId: string; location: string; }) => void; pluginRemoteHighlightCallsign: (data: { operatorId: string; callsign: string; background?: string | null; foreground?: string | null; lastOnly?: boolean; }) => void; encodeStart: (slotInfo: z.infer) => void; transmitStart: (slotInfo: z.infer) => void; timingWarning: (data: { title: string; text: string; }) => void; operatorSlotChanged: (data: { operatorId: string; slot: string; }) => void; operatorSlotContentChanged: (data: { operatorId: string; slot: string; content: string; }) => void; operatorFrequencyChanged: (data: { operatorId: string; frequency: number; }) => void; operatorTransmitCyclesChanged: (data: { operatorId: string; transmitCycles: number[]; }) => void; recordQSO: (data: { operatorId: string; qsoRecord: z.infer; }) => void; checkHasWorkedCallsign: (data: { operatorId: string; callsign: string; requestId: string; }) => void; hasWorkedCallsignResponse: (data: { requestId: string; hasWorked: boolean; }) => void; } //# sourceMappingURL=websocket.schema.d.ts.map