@tx5dr/contracts 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/CLAUDE.md +41 -0
  2. package/dist/index.d.ts +55 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +86 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/schema/__tests__/plugin-runtime-log.schema.test.d.ts +2 -0
  7. package/dist/schema/__tests__/plugin-runtime-log.schema.test.d.ts.map +1 -0
  8. package/dist/schema/__tests__/plugin-runtime-log.schema.test.js +78 -0
  9. package/dist/schema/__tests__/plugin-runtime-log.schema.test.js.map +1 -0
  10. package/dist/schema/ability.d.ts +85 -0
  11. package/dist/schema/ability.d.ts.map +1 -0
  12. package/dist/schema/ability.js +119 -0
  13. package/dist/schema/ability.js.map +1 -0
  14. package/dist/schema/api-response.schema.d.ts +1017 -0
  15. package/dist/schema/api-response.schema.d.ts.map +1 -0
  16. package/dist/schema/api-response.schema.js +137 -0
  17. package/dist/schema/api-response.schema.js.map +1 -0
  18. package/dist/schema/audio-sidecar.schema.d.ts +106 -0
  19. package/dist/schema/audio-sidecar.schema.d.ts.map +1 -0
  20. package/dist/schema/audio-sidecar.schema.js +47 -0
  21. package/dist/schema/audio-sidecar.schema.js.map +1 -0
  22. package/dist/schema/audio.schema.d.ts +227 -0
  23. package/dist/schema/audio.schema.d.ts.map +1 -0
  24. package/dist/schema/audio.schema.js +56 -0
  25. package/dist/schema/audio.schema.js.map +1 -0
  26. package/dist/schema/auth.schema.d.ts +738 -0
  27. package/dist/schema/auth.schema.d.ts.map +1 -0
  28. package/dist/schema/auth.schema.js +161 -0
  29. package/dist/schema/auth.schema.js.map +1 -0
  30. package/dist/schema/cycle.schema.d.ts +33 -0
  31. package/dist/schema/cycle.schema.d.ts.map +1 -0
  32. package/dist/schema/cycle.schema.js +23 -0
  33. package/dist/schema/cycle.schema.js.map +1 -0
  34. package/dist/schema/desktop-https.schema.d.ts +146 -0
  35. package/dist/schema/desktop-https.schema.d.ts.map +1 -0
  36. package/dist/schema/desktop-https.schema.js +31 -0
  37. package/dist/schema/desktop-https.schema.js.map +1 -0
  38. package/dist/schema/ft8.schema.d.ts +1107 -0
  39. package/dist/schema/ft8.schema.d.ts.map +1 -0
  40. package/dist/schema/ft8.schema.js +268 -0
  41. package/dist/schema/ft8.schema.js.map +1 -0
  42. package/dist/schema/hello.schema.d.ts +10 -0
  43. package/dist/schema/hello.schema.d.ts.map +1 -0
  44. package/dist/schema/hello.schema.js +5 -0
  45. package/dist/schema/hello.schema.js.map +1 -0
  46. package/dist/schema/logbook.schema.d.ts +1472 -0
  47. package/dist/schema/logbook.schema.d.ts.map +1 -0
  48. package/dist/schema/logbook.schema.js +256 -0
  49. package/dist/schema/logbook.schema.js.map +1 -0
  50. package/dist/schema/mode.schema.d.ts +130 -0
  51. package/dist/schema/mode.schema.d.ts.map +1 -0
  52. package/dist/schema/mode.schema.js +141 -0
  53. package/dist/schema/mode.schema.js.map +1 -0
  54. package/dist/schema/openwebrx.schema.d.ts +352 -0
  55. package/dist/schema/openwebrx.schema.d.ts.map +1 -0
  56. package/dist/schema/openwebrx.schema.js +139 -0
  57. package/dist/schema/openwebrx.schema.js.map +1 -0
  58. package/dist/schema/operator.schema.d.ts +883 -0
  59. package/dist/schema/operator.schema.d.ts.map +1 -0
  60. package/dist/schema/operator.schema.js +97 -0
  61. package/dist/schema/operator.schema.js.map +1 -0
  62. package/dist/schema/plugin.schema.d.ts +1579 -0
  63. package/dist/schema/plugin.schema.d.ts.map +1 -0
  64. package/dist/schema/plugin.schema.js +336 -0
  65. package/dist/schema/plugin.schema.js.map +1 -0
  66. package/dist/schema/process-monitor.schema.d.ts +282 -0
  67. package/dist/schema/process-monitor.schema.d.ts.map +1 -0
  68. package/dist/schema/process-monitor.schema.js +31 -0
  69. package/dist/schema/process-monitor.schema.js.map +1 -0
  70. package/dist/schema/pskreporter.schema.d.ts +185 -0
  71. package/dist/schema/pskreporter.schema.d.ts.map +1 -0
  72. package/dist/schema/pskreporter.schema.js +80 -0
  73. package/dist/schema/pskreporter.schema.js.map +1 -0
  74. package/dist/schema/qso.schema.d.ts +419 -0
  75. package/dist/schema/qso.schema.d.ts.map +1 -0
  76. package/dist/schema/qso.schema.js +137 -0
  77. package/dist/schema/qso.schema.js.map +1 -0
  78. package/dist/schema/radio-capability.schema.d.ts +625 -0
  79. package/dist/schema/radio-capability.schema.d.ts.map +1 -0
  80. package/dist/schema/radio-capability.schema.js +191 -0
  81. package/dist/schema/radio-capability.schema.js.map +1 -0
  82. package/dist/schema/radio-power-support.d.ts +45 -0
  83. package/dist/schema/radio-power-support.d.ts.map +1 -0
  84. package/dist/schema/radio-power-support.js +64 -0
  85. package/dist/schema/radio-power-support.js.map +1 -0
  86. package/dist/schema/radio-power.schema.d.ts +319 -0
  87. package/dist/schema/radio-power.schema.d.ts.map +1 -0
  88. package/dist/schema/radio-power.schema.js +87 -0
  89. package/dist/schema/radio-power.schema.js.map +1 -0
  90. package/dist/schema/radio-profile.schema.d.ts +2694 -0
  91. package/dist/schema/radio-profile.schema.d.ts.map +1 -0
  92. package/dist/schema/radio-profile.schema.js +71 -0
  93. package/dist/schema/radio-profile.schema.js.map +1 -0
  94. package/dist/schema/radio.schema.d.ts +1438 -0
  95. package/dist/schema/radio.schema.d.ts.map +1 -0
  96. package/dist/schema/radio.schema.js +314 -0
  97. package/dist/schema/radio.schema.js.map +1 -0
  98. package/dist/schema/realtime.schema.d.ts +1299 -0
  99. package/dist/schema/realtime.schema.d.ts.map +1 -0
  100. package/dist/schema/realtime.schema.js +184 -0
  101. package/dist/schema/realtime.schema.js.map +1 -0
  102. package/dist/schema/rigctld.schema.d.ts +151 -0
  103. package/dist/schema/rigctld.schema.d.ts.map +1 -0
  104. package/dist/schema/rigctld.schema.js +42 -0
  105. package/dist/schema/rigctld.schema.js.map +1 -0
  106. package/dist/schema/server-message-keys.d.ts +21 -0
  107. package/dist/schema/server-message-keys.d.ts.map +1 -0
  108. package/dist/schema/server-message-keys.js +22 -0
  109. package/dist/schema/server-message-keys.js.map +1 -0
  110. package/dist/schema/slot-info.schema.d.ts +696 -0
  111. package/dist/schema/slot-info.schema.d.ts.map +1 -0
  112. package/dist/schema/slot-info.schema.js +144 -0
  113. package/dist/schema/slot-info.schema.js.map +1 -0
  114. package/dist/schema/spectrum.schema.d.ts +716 -0
  115. package/dist/schema/spectrum.schema.d.ts.map +1 -0
  116. package/dist/schema/spectrum.schema.js +128 -0
  117. package/dist/schema/spectrum.schema.js.map +1 -0
  118. package/dist/schema/station-info.schema.d.ts +202 -0
  119. package/dist/schema/station-info.schema.d.ts.map +1 -0
  120. package/dist/schema/station-info.schema.js +32 -0
  121. package/dist/schema/station-info.schema.js.map +1 -0
  122. package/dist/schema/system.schema.d.ts +113 -0
  123. package/dist/schema/system.schema.d.ts.map +1 -0
  124. package/dist/schema/system.schema.js +95 -0
  125. package/dist/schema/system.schema.js.map +1 -0
  126. package/dist/schema/transmission.schema.d.ts +413 -0
  127. package/dist/schema/transmission.schema.d.ts.map +1 -0
  128. package/dist/schema/transmission.schema.js +78 -0
  129. package/dist/schema/transmission.schema.js.map +1 -0
  130. package/dist/schema/voice.schema.d.ts +38 -0
  131. package/dist/schema/voice.schema.d.ts.map +1 -0
  132. package/dist/schema/voice.schema.js +24 -0
  133. package/dist/schema/voice.schema.js.map +1 -0
  134. package/dist/schema/websocket.schema.d.ts +16916 -0
  135. package/dist/schema/websocket.schema.d.ts.map +1 -0
  136. package/dist/schema/websocket.schema.js +1050 -0
  137. package/dist/schema/websocket.schema.js.map +1 -0
  138. package/dist/utils/grid.d.ts +13 -0
  139. package/dist/utils/grid.d.ts.map +1 -0
  140. package/dist/utils/grid.js +71 -0
  141. package/dist/utils/grid.js.map +1 -0
  142. package/eslint.config.js +15 -0
  143. package/package.json +28 -0
  144. package/src/index.ts +152 -0
  145. package/src/schema/__tests__/plugin-runtime-log.schema.test.ts +90 -0
  146. package/src/schema/ability.ts +205 -0
  147. package/src/schema/api-response.schema.ts +187 -0
  148. package/src/schema/audio-sidecar.schema.ts +53 -0
  149. package/src/schema/audio.schema.ts +73 -0
  150. package/src/schema/auth.schema.ts +224 -0
  151. package/src/schema/cycle.schema.ts +25 -0
  152. package/src/schema/desktop-https.schema.ts +43 -0
  153. package/src/schema/ft8.schema.ts +362 -0
  154. package/src/schema/hello.schema.ts +7 -0
  155. package/src/schema/logbook.schema.ts +310 -0
  156. package/src/schema/mode.schema.ts +158 -0
  157. package/src/schema/openwebrx.schema.ts +160 -0
  158. package/src/schema/operator.schema.ts +112 -0
  159. package/src/schema/plugin.schema.ts +503 -0
  160. package/src/schema/process-monitor.schema.ts +41 -0
  161. package/src/schema/pskreporter.schema.ts +102 -0
  162. package/src/schema/qso.schema.ts +173 -0
  163. package/src/schema/radio-capability.schema.ts +244 -0
  164. package/src/schema/radio-power-support.ts +107 -0
  165. package/src/schema/radio-power.schema.ts +101 -0
  166. package/src/schema/radio-profile.schema.ts +91 -0
  167. package/src/schema/radio.schema.ts +385 -0
  168. package/src/schema/realtime.schema.ts +262 -0
  169. package/src/schema/rigctld.schema.ts +51 -0
  170. package/src/schema/server-message-keys.ts +26 -0
  171. package/src/schema/slot-info.schema.ts +162 -0
  172. package/src/schema/spectrum.schema.ts +166 -0
  173. package/src/schema/station-info.schema.ts +40 -0
  174. package/src/schema/system.schema.ts +121 -0
  175. package/src/schema/transmission.schema.ts +105 -0
  176. package/src/schema/voice.schema.ts +28 -0
  177. package/src/schema/websocket.schema.ts +1480 -0
  178. package/src/utils/grid.ts +94 -0
  179. package/test/mode-schema.test.ts +48 -0
  180. package/tsconfig.json +9 -0
@@ -0,0 +1,696 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * 时隙周期(偶数奇数)
4
+ */
5
+ /**
6
+ * 时隙信息
7
+ */
8
+ export declare const SlotInfoSchema: z.ZodObject<{
9
+ /** 时隙唯一标识符 */
10
+ id: z.ZodString;
11
+ /** 时隙开始时间戳(毫秒) */
12
+ startMs: z.ZodNumber;
13
+ /** 相位偏移(毫秒) */
14
+ phaseMs: z.ZodNumber;
15
+ /** 时钟漂移(毫秒) */
16
+ driftMs: z.ZodDefault<z.ZodNumber>;
17
+ /** 时隙周期号 */
18
+ cycleNumber: z.ZodNumber;
19
+ /** 时隙UTC时间戳(秒) */
20
+ utcSeconds: z.ZodNumber;
21
+ /** 时隙类型(FT8/FT4) */
22
+ mode: z.ZodString;
23
+ }, "strip", z.ZodTypeAny, {
24
+ id: string;
25
+ mode: string;
26
+ startMs: number;
27
+ phaseMs: number;
28
+ driftMs: number;
29
+ cycleNumber: number;
30
+ utcSeconds: number;
31
+ }, {
32
+ id: string;
33
+ mode: string;
34
+ startMs: number;
35
+ phaseMs: number;
36
+ cycleNumber: number;
37
+ utcSeconds: number;
38
+ driftMs?: number | undefined;
39
+ }>;
40
+ export type SlotInfo = z.infer<typeof SlotInfoSchema>;
41
+ /**
42
+ * 基于日志本的消息分析结果
43
+ */
44
+ export declare const LogbookAnalysisSchema: z.ZodObject<{
45
+ /** 是否为新呼号(之前没有通联过) */
46
+ isNewCallsign: z.ZodOptional<z.ZodBoolean>;
47
+ /** 是否为新 DXCC 实体(之前没有通联过该实体) */
48
+ isNewDxccEntity: z.ZodOptional<z.ZodBoolean>;
49
+ /** 是否为该波段的新 DXCC 实体 */
50
+ isNewBandDxccEntity: z.ZodOptional<z.ZodBoolean>;
51
+ /** 是否为已确认 DXCC */
52
+ isConfirmedDxcc: z.ZodOptional<z.ZodBoolean>;
53
+ /** 是否为新网格(之前没有通联过此网格) */
54
+ isNewGrid: z.ZodOptional<z.ZodBoolean>;
55
+ /** 解析出的呼号(如果有) */
56
+ callsign: z.ZodOptional<z.ZodString>;
57
+ /** 解析出的网格(如果有) */
58
+ grid: z.ZodOptional<z.ZodString>;
59
+ /** 解析出的前缀(如果有) */
60
+ prefix: z.ZodOptional<z.ZodString>;
61
+ /** 美国 subdivision code(州/属地),仅在可解析时提供 */
62
+ state: z.ZodOptional<z.ZodString>;
63
+ /** subdivision 置信度 */
64
+ stateConfidence: z.ZodOptional<z.ZodEnum<["high", "low"]>>;
65
+ /** DXCC 实体编号 */
66
+ dxccId: z.ZodOptional<z.ZodNumber>;
67
+ /** DXCC 实体名 */
68
+ dxccEntity: z.ZodOptional<z.ZodString>;
69
+ /** 实体状态 */
70
+ dxccStatus: z.ZodOptional<z.ZodEnum<["current", "deleted", "none", "unknown"]>>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ prefix?: string | undefined;
73
+ callsign?: string | undefined;
74
+ grid?: string | undefined;
75
+ dxccId?: number | undefined;
76
+ dxccEntity?: string | undefined;
77
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
78
+ isNewCallsign?: boolean | undefined;
79
+ isNewDxccEntity?: boolean | undefined;
80
+ isNewBandDxccEntity?: boolean | undefined;
81
+ isConfirmedDxcc?: boolean | undefined;
82
+ isNewGrid?: boolean | undefined;
83
+ state?: string | undefined;
84
+ stateConfidence?: "high" | "low" | undefined;
85
+ }, {
86
+ prefix?: string | undefined;
87
+ callsign?: string | undefined;
88
+ grid?: string | undefined;
89
+ dxccId?: number | undefined;
90
+ dxccEntity?: string | undefined;
91
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
92
+ isNewCallsign?: boolean | undefined;
93
+ isNewDxccEntity?: boolean | undefined;
94
+ isNewBandDxccEntity?: boolean | undefined;
95
+ isConfirmedDxcc?: boolean | undefined;
96
+ isNewGrid?: boolean | undefined;
97
+ state?: string | undefined;
98
+ stateConfidence?: "high" | "low" | undefined;
99
+ }>;
100
+ export type LogbookAnalysis = z.infer<typeof LogbookAnalysisSchema>;
101
+ /**
102
+ * FT8 帧数据
103
+ */
104
+ export declare const FrameMessageSchema: z.ZodObject<{
105
+ /** 信号强度 (dB) */
106
+ snr: z.ZodNumber;
107
+ /** 频率偏移 (Hz) */
108
+ freq: z.ZodNumber;
109
+ /** 时间偏移 (秒) */
110
+ dt: z.ZodNumber;
111
+ /** 解码消息 */
112
+ message: z.ZodString;
113
+ /** 置信度 0-1 */
114
+ confidence: z.ZodDefault<z.ZodNumber>;
115
+ /** 基于日志本的分析结果(可选,仅在客户端定制化数据中提供) */
116
+ logbookAnalysis: z.ZodOptional<z.ZodObject<{
117
+ /** 是否为新呼号(之前没有通联过) */
118
+ isNewCallsign: z.ZodOptional<z.ZodBoolean>;
119
+ /** 是否为新 DXCC 实体(之前没有通联过该实体) */
120
+ isNewDxccEntity: z.ZodOptional<z.ZodBoolean>;
121
+ /** 是否为该波段的新 DXCC 实体 */
122
+ isNewBandDxccEntity: z.ZodOptional<z.ZodBoolean>;
123
+ /** 是否为已确认 DXCC */
124
+ isConfirmedDxcc: z.ZodOptional<z.ZodBoolean>;
125
+ /** 是否为新网格(之前没有通联过此网格) */
126
+ isNewGrid: z.ZodOptional<z.ZodBoolean>;
127
+ /** 解析出的呼号(如果有) */
128
+ callsign: z.ZodOptional<z.ZodString>;
129
+ /** 解析出的网格(如果有) */
130
+ grid: z.ZodOptional<z.ZodString>;
131
+ /** 解析出的前缀(如果有) */
132
+ prefix: z.ZodOptional<z.ZodString>;
133
+ /** 美国 subdivision code(州/属地),仅在可解析时提供 */
134
+ state: z.ZodOptional<z.ZodString>;
135
+ /** subdivision 置信度 */
136
+ stateConfidence: z.ZodOptional<z.ZodEnum<["high", "low"]>>;
137
+ /** DXCC 实体编号 */
138
+ dxccId: z.ZodOptional<z.ZodNumber>;
139
+ /** DXCC 实体名 */
140
+ dxccEntity: z.ZodOptional<z.ZodString>;
141
+ /** 实体状态 */
142
+ dxccStatus: z.ZodOptional<z.ZodEnum<["current", "deleted", "none", "unknown"]>>;
143
+ }, "strip", z.ZodTypeAny, {
144
+ prefix?: string | undefined;
145
+ callsign?: string | undefined;
146
+ grid?: string | undefined;
147
+ dxccId?: number | undefined;
148
+ dxccEntity?: string | undefined;
149
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
150
+ isNewCallsign?: boolean | undefined;
151
+ isNewDxccEntity?: boolean | undefined;
152
+ isNewBandDxccEntity?: boolean | undefined;
153
+ isConfirmedDxcc?: boolean | undefined;
154
+ isNewGrid?: boolean | undefined;
155
+ state?: string | undefined;
156
+ stateConfidence?: "high" | "low" | undefined;
157
+ }, {
158
+ prefix?: string | undefined;
159
+ callsign?: string | undefined;
160
+ grid?: string | undefined;
161
+ dxccId?: number | undefined;
162
+ dxccEntity?: string | undefined;
163
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
164
+ isNewCallsign?: boolean | undefined;
165
+ isNewDxccEntity?: boolean | undefined;
166
+ isNewBandDxccEntity?: boolean | undefined;
167
+ isConfirmedDxcc?: boolean | undefined;
168
+ isNewGrid?: boolean | undefined;
169
+ state?: string | undefined;
170
+ stateConfidence?: "high" | "low" | undefined;
171
+ }>>;
172
+ /** 操作员ID(可选,仅 TX 帧使用,用于多操作员覆盖识别) */
173
+ operatorId: z.ZodOptional<z.ZodString>;
174
+ }, "strip", z.ZodTypeAny, {
175
+ message: string;
176
+ snr: number;
177
+ freq: number;
178
+ dt: number;
179
+ confidence: number;
180
+ operatorId?: string | undefined;
181
+ logbookAnalysis?: {
182
+ prefix?: string | undefined;
183
+ callsign?: string | undefined;
184
+ grid?: string | undefined;
185
+ dxccId?: number | undefined;
186
+ dxccEntity?: string | undefined;
187
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
188
+ isNewCallsign?: boolean | undefined;
189
+ isNewDxccEntity?: boolean | undefined;
190
+ isNewBandDxccEntity?: boolean | undefined;
191
+ isConfirmedDxcc?: boolean | undefined;
192
+ isNewGrid?: boolean | undefined;
193
+ state?: string | undefined;
194
+ stateConfidence?: "high" | "low" | undefined;
195
+ } | undefined;
196
+ }, {
197
+ message: string;
198
+ snr: number;
199
+ freq: number;
200
+ dt: number;
201
+ operatorId?: string | undefined;
202
+ confidence?: number | undefined;
203
+ logbookAnalysis?: {
204
+ prefix?: string | undefined;
205
+ callsign?: string | undefined;
206
+ grid?: string | undefined;
207
+ dxccId?: number | undefined;
208
+ dxccEntity?: string | undefined;
209
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
210
+ isNewCallsign?: boolean | undefined;
211
+ isNewDxccEntity?: boolean | undefined;
212
+ isNewBandDxccEntity?: boolean | undefined;
213
+ isConfirmedDxcc?: boolean | undefined;
214
+ isNewGrid?: boolean | undefined;
215
+ state?: string | undefined;
216
+ stateConfidence?: "high" | "low" | undefined;
217
+ } | undefined;
218
+ }>;
219
+ export type FrameMessage = z.infer<typeof FrameMessageSchema>;
220
+ /**
221
+ * 解码请求,用于SlotScheduler内部
222
+ */
223
+ export declare const DecodeRequestSchema: z.ZodObject<{
224
+ /** 关联的时隙ID */
225
+ slotId: z.ZodString;
226
+ /** 子窗口索引 */
227
+ windowIdx: z.ZodNumber;
228
+ /** PCM 音频数据 */
229
+ pcm: z.ZodType<ArrayBuffer, z.ZodTypeDef, ArrayBuffer>;
230
+ /** 采样率 */
231
+ sampleRate: z.ZodDefault<z.ZodNumber>;
232
+ /** 请求时间戳 */
233
+ timestamp: z.ZodDefault<z.ZodNumber>;
234
+ /** 窗口时间偏移(毫秒) */
235
+ windowOffsetMs: z.ZodDefault<z.ZodNumber>;
236
+ }, "strip", z.ZodTypeAny, {
237
+ sampleRate: number;
238
+ slotId: string;
239
+ windowIdx: number;
240
+ pcm: ArrayBuffer;
241
+ timestamp: number;
242
+ windowOffsetMs: number;
243
+ }, {
244
+ slotId: string;
245
+ windowIdx: number;
246
+ pcm: ArrayBuffer;
247
+ sampleRate?: number | undefined;
248
+ timestamp?: number | undefined;
249
+ windowOffsetMs?: number | undefined;
250
+ }>;
251
+ export type DecodeRequest = z.infer<typeof DecodeRequestSchema>;
252
+ /**
253
+ * 解码结果,用于SlotScheduler内部
254
+ */
255
+ export declare const DecodeResultSchema: z.ZodObject<{
256
+ /** 关联的时隙ID */
257
+ slotId: z.ZodString;
258
+ /** 子窗口索引 */
259
+ windowIdx: z.ZodNumber;
260
+ /** 解码出的帧数据 */
261
+ frames: z.ZodArray<z.ZodObject<{
262
+ /** 信号强度 (dB) */
263
+ snr: z.ZodNumber;
264
+ /** 频率偏移 (Hz) */
265
+ freq: z.ZodNumber;
266
+ /** 时间偏移 (秒) */
267
+ dt: z.ZodNumber;
268
+ /** 解码消息 */
269
+ message: z.ZodString;
270
+ /** 置信度 0-1 */
271
+ confidence: z.ZodDefault<z.ZodNumber>;
272
+ /** 基于日志本的分析结果(可选,仅在客户端定制化数据中提供) */
273
+ logbookAnalysis: z.ZodOptional<z.ZodObject<{
274
+ /** 是否为新呼号(之前没有通联过) */
275
+ isNewCallsign: z.ZodOptional<z.ZodBoolean>;
276
+ /** 是否为新 DXCC 实体(之前没有通联过该实体) */
277
+ isNewDxccEntity: z.ZodOptional<z.ZodBoolean>;
278
+ /** 是否为该波段的新 DXCC 实体 */
279
+ isNewBandDxccEntity: z.ZodOptional<z.ZodBoolean>;
280
+ /** 是否为已确认 DXCC */
281
+ isConfirmedDxcc: z.ZodOptional<z.ZodBoolean>;
282
+ /** 是否为新网格(之前没有通联过此网格) */
283
+ isNewGrid: z.ZodOptional<z.ZodBoolean>;
284
+ /** 解析出的呼号(如果有) */
285
+ callsign: z.ZodOptional<z.ZodString>;
286
+ /** 解析出的网格(如果有) */
287
+ grid: z.ZodOptional<z.ZodString>;
288
+ /** 解析出的前缀(如果有) */
289
+ prefix: z.ZodOptional<z.ZodString>;
290
+ /** 美国 subdivision code(州/属地),仅在可解析时提供 */
291
+ state: z.ZodOptional<z.ZodString>;
292
+ /** subdivision 置信度 */
293
+ stateConfidence: z.ZodOptional<z.ZodEnum<["high", "low"]>>;
294
+ /** DXCC 实体编号 */
295
+ dxccId: z.ZodOptional<z.ZodNumber>;
296
+ /** DXCC 实体名 */
297
+ dxccEntity: z.ZodOptional<z.ZodString>;
298
+ /** 实体状态 */
299
+ dxccStatus: z.ZodOptional<z.ZodEnum<["current", "deleted", "none", "unknown"]>>;
300
+ }, "strip", z.ZodTypeAny, {
301
+ prefix?: string | undefined;
302
+ callsign?: string | undefined;
303
+ grid?: string | undefined;
304
+ dxccId?: number | undefined;
305
+ dxccEntity?: string | undefined;
306
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
307
+ isNewCallsign?: boolean | undefined;
308
+ isNewDxccEntity?: boolean | undefined;
309
+ isNewBandDxccEntity?: boolean | undefined;
310
+ isConfirmedDxcc?: boolean | undefined;
311
+ isNewGrid?: boolean | undefined;
312
+ state?: string | undefined;
313
+ stateConfidence?: "high" | "low" | undefined;
314
+ }, {
315
+ prefix?: string | undefined;
316
+ callsign?: string | undefined;
317
+ grid?: string | undefined;
318
+ dxccId?: number | undefined;
319
+ dxccEntity?: string | undefined;
320
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
321
+ isNewCallsign?: boolean | undefined;
322
+ isNewDxccEntity?: boolean | undefined;
323
+ isNewBandDxccEntity?: boolean | undefined;
324
+ isConfirmedDxcc?: boolean | undefined;
325
+ isNewGrid?: boolean | undefined;
326
+ state?: string | undefined;
327
+ stateConfidence?: "high" | "low" | undefined;
328
+ }>>;
329
+ /** 操作员ID(可选,仅 TX 帧使用,用于多操作员覆盖识别) */
330
+ operatorId: z.ZodOptional<z.ZodString>;
331
+ }, "strip", z.ZodTypeAny, {
332
+ message: string;
333
+ snr: number;
334
+ freq: number;
335
+ dt: number;
336
+ confidence: number;
337
+ operatorId?: string | undefined;
338
+ logbookAnalysis?: {
339
+ prefix?: string | undefined;
340
+ callsign?: string | undefined;
341
+ grid?: string | undefined;
342
+ dxccId?: number | undefined;
343
+ dxccEntity?: string | undefined;
344
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
345
+ isNewCallsign?: boolean | undefined;
346
+ isNewDxccEntity?: boolean | undefined;
347
+ isNewBandDxccEntity?: boolean | undefined;
348
+ isConfirmedDxcc?: boolean | undefined;
349
+ isNewGrid?: boolean | undefined;
350
+ state?: string | undefined;
351
+ stateConfidence?: "high" | "low" | undefined;
352
+ } | undefined;
353
+ }, {
354
+ message: string;
355
+ snr: number;
356
+ freq: number;
357
+ dt: number;
358
+ operatorId?: string | undefined;
359
+ confidence?: number | undefined;
360
+ logbookAnalysis?: {
361
+ prefix?: string | undefined;
362
+ callsign?: string | undefined;
363
+ grid?: string | undefined;
364
+ dxccId?: number | undefined;
365
+ dxccEntity?: string | undefined;
366
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
367
+ isNewCallsign?: boolean | undefined;
368
+ isNewDxccEntity?: boolean | undefined;
369
+ isNewBandDxccEntity?: boolean | undefined;
370
+ isConfirmedDxcc?: boolean | undefined;
371
+ isNewGrid?: boolean | undefined;
372
+ state?: string | undefined;
373
+ stateConfidence?: "high" | "low" | undefined;
374
+ } | undefined;
375
+ }>, "many">;
376
+ /** 结果时间戳 */
377
+ timestamp: z.ZodDefault<z.ZodNumber>;
378
+ /** 处理耗时(毫秒) */
379
+ processingTimeMs: z.ZodDefault<z.ZodNumber>;
380
+ /** 错误信息(如果有) */
381
+ error: z.ZodOptional<z.ZodString>;
382
+ /** 窗口时间偏移(毫秒) */
383
+ windowOffsetMs: z.ZodDefault<z.ZodNumber>;
384
+ }, "strip", z.ZodTypeAny, {
385
+ slotId: string;
386
+ windowIdx: number;
387
+ timestamp: number;
388
+ windowOffsetMs: number;
389
+ frames: {
390
+ message: string;
391
+ snr: number;
392
+ freq: number;
393
+ dt: number;
394
+ confidence: number;
395
+ operatorId?: string | undefined;
396
+ logbookAnalysis?: {
397
+ prefix?: string | undefined;
398
+ callsign?: string | undefined;
399
+ grid?: string | undefined;
400
+ dxccId?: number | undefined;
401
+ dxccEntity?: string | undefined;
402
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
403
+ isNewCallsign?: boolean | undefined;
404
+ isNewDxccEntity?: boolean | undefined;
405
+ isNewBandDxccEntity?: boolean | undefined;
406
+ isConfirmedDxcc?: boolean | undefined;
407
+ isNewGrid?: boolean | undefined;
408
+ state?: string | undefined;
409
+ stateConfidence?: "high" | "low" | undefined;
410
+ } | undefined;
411
+ }[];
412
+ processingTimeMs: number;
413
+ error?: string | undefined;
414
+ }, {
415
+ slotId: string;
416
+ windowIdx: number;
417
+ frames: {
418
+ message: string;
419
+ snr: number;
420
+ freq: number;
421
+ dt: number;
422
+ operatorId?: string | undefined;
423
+ confidence?: number | undefined;
424
+ logbookAnalysis?: {
425
+ prefix?: string | undefined;
426
+ callsign?: string | undefined;
427
+ grid?: string | undefined;
428
+ dxccId?: number | undefined;
429
+ dxccEntity?: string | undefined;
430
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
431
+ isNewCallsign?: boolean | undefined;
432
+ isNewDxccEntity?: boolean | undefined;
433
+ isNewBandDxccEntity?: boolean | undefined;
434
+ isConfirmedDxcc?: boolean | undefined;
435
+ isNewGrid?: boolean | undefined;
436
+ state?: string | undefined;
437
+ stateConfidence?: "high" | "low" | undefined;
438
+ } | undefined;
439
+ }[];
440
+ error?: string | undefined;
441
+ timestamp?: number | undefined;
442
+ windowOffsetMs?: number | undefined;
443
+ processingTimeMs?: number | undefined;
444
+ }>;
445
+ export type DecodeResult = z.infer<typeof DecodeResultSchema>;
446
+ /**
447
+ * 时隙封装信息(去重和多次解码取优)
448
+ */
449
+ export declare const SlotPackSchema: z.ZodObject<{
450
+ /** 时隙ID */
451
+ slotId: z.ZodString;
452
+ /** 时隙开始时间戳(毫秒) */
453
+ startMs: z.ZodNumber;
454
+ /** 时隙结束时间戳(毫秒) */
455
+ endMs: z.ZodNumber;
456
+ /** 去重后的最优解码结果 */
457
+ frames: z.ZodArray<z.ZodObject<{
458
+ /** 信号强度 (dB) */
459
+ snr: z.ZodNumber;
460
+ /** 频率偏移 (Hz) */
461
+ freq: z.ZodNumber;
462
+ /** 时间偏移 (秒) */
463
+ dt: z.ZodNumber;
464
+ /** 解码消息 */
465
+ message: z.ZodString;
466
+ /** 置信度 0-1 */
467
+ confidence: z.ZodDefault<z.ZodNumber>;
468
+ /** 基于日志本的分析结果(可选,仅在客户端定制化数据中提供) */
469
+ logbookAnalysis: z.ZodOptional<z.ZodObject<{
470
+ /** 是否为新呼号(之前没有通联过) */
471
+ isNewCallsign: z.ZodOptional<z.ZodBoolean>;
472
+ /** 是否为新 DXCC 实体(之前没有通联过该实体) */
473
+ isNewDxccEntity: z.ZodOptional<z.ZodBoolean>;
474
+ /** 是否为该波段的新 DXCC 实体 */
475
+ isNewBandDxccEntity: z.ZodOptional<z.ZodBoolean>;
476
+ /** 是否为已确认 DXCC */
477
+ isConfirmedDxcc: z.ZodOptional<z.ZodBoolean>;
478
+ /** 是否为新网格(之前没有通联过此网格) */
479
+ isNewGrid: z.ZodOptional<z.ZodBoolean>;
480
+ /** 解析出的呼号(如果有) */
481
+ callsign: z.ZodOptional<z.ZodString>;
482
+ /** 解析出的网格(如果有) */
483
+ grid: z.ZodOptional<z.ZodString>;
484
+ /** 解析出的前缀(如果有) */
485
+ prefix: z.ZodOptional<z.ZodString>;
486
+ /** 美国 subdivision code(州/属地),仅在可解析时提供 */
487
+ state: z.ZodOptional<z.ZodString>;
488
+ /** subdivision 置信度 */
489
+ stateConfidence: z.ZodOptional<z.ZodEnum<["high", "low"]>>;
490
+ /** DXCC 实体编号 */
491
+ dxccId: z.ZodOptional<z.ZodNumber>;
492
+ /** DXCC 实体名 */
493
+ dxccEntity: z.ZodOptional<z.ZodString>;
494
+ /** 实体状态 */
495
+ dxccStatus: z.ZodOptional<z.ZodEnum<["current", "deleted", "none", "unknown"]>>;
496
+ }, "strip", z.ZodTypeAny, {
497
+ prefix?: string | undefined;
498
+ callsign?: string | undefined;
499
+ grid?: string | undefined;
500
+ dxccId?: number | undefined;
501
+ dxccEntity?: string | undefined;
502
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
503
+ isNewCallsign?: boolean | undefined;
504
+ isNewDxccEntity?: boolean | undefined;
505
+ isNewBandDxccEntity?: boolean | undefined;
506
+ isConfirmedDxcc?: boolean | undefined;
507
+ isNewGrid?: boolean | undefined;
508
+ state?: string | undefined;
509
+ stateConfidence?: "high" | "low" | undefined;
510
+ }, {
511
+ prefix?: string | undefined;
512
+ callsign?: string | undefined;
513
+ grid?: string | undefined;
514
+ dxccId?: number | undefined;
515
+ dxccEntity?: string | undefined;
516
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
517
+ isNewCallsign?: boolean | undefined;
518
+ isNewDxccEntity?: boolean | undefined;
519
+ isNewBandDxccEntity?: boolean | undefined;
520
+ isConfirmedDxcc?: boolean | undefined;
521
+ isNewGrid?: boolean | undefined;
522
+ state?: string | undefined;
523
+ stateConfidence?: "high" | "low" | undefined;
524
+ }>>;
525
+ /** 操作员ID(可选,仅 TX 帧使用,用于多操作员覆盖识别) */
526
+ operatorId: z.ZodOptional<z.ZodString>;
527
+ }, "strip", z.ZodTypeAny, {
528
+ message: string;
529
+ snr: number;
530
+ freq: number;
531
+ dt: number;
532
+ confidence: number;
533
+ operatorId?: string | undefined;
534
+ logbookAnalysis?: {
535
+ prefix?: string | undefined;
536
+ callsign?: string | undefined;
537
+ grid?: string | undefined;
538
+ dxccId?: number | undefined;
539
+ dxccEntity?: string | undefined;
540
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
541
+ isNewCallsign?: boolean | undefined;
542
+ isNewDxccEntity?: boolean | undefined;
543
+ isNewBandDxccEntity?: boolean | undefined;
544
+ isConfirmedDxcc?: boolean | undefined;
545
+ isNewGrid?: boolean | undefined;
546
+ state?: string | undefined;
547
+ stateConfidence?: "high" | "low" | undefined;
548
+ } | undefined;
549
+ }, {
550
+ message: string;
551
+ snr: number;
552
+ freq: number;
553
+ dt: number;
554
+ operatorId?: string | undefined;
555
+ confidence?: number | undefined;
556
+ logbookAnalysis?: {
557
+ prefix?: string | undefined;
558
+ callsign?: string | undefined;
559
+ grid?: string | undefined;
560
+ dxccId?: number | undefined;
561
+ dxccEntity?: string | undefined;
562
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
563
+ isNewCallsign?: boolean | undefined;
564
+ isNewDxccEntity?: boolean | undefined;
565
+ isNewBandDxccEntity?: boolean | undefined;
566
+ isConfirmedDxcc?: boolean | undefined;
567
+ isNewGrid?: boolean | undefined;
568
+ state?: string | undefined;
569
+ stateConfidence?: "high" | "low" | undefined;
570
+ } | undefined;
571
+ }>, "many">;
572
+ /** 解码统计信息 */
573
+ stats: z.ZodDefault<z.ZodObject<{
574
+ /** 总解码次数 */
575
+ totalDecodes: z.ZodDefault<z.ZodNumber>;
576
+ /** 成功解码次数 */
577
+ successfulDecodes: z.ZodDefault<z.ZodNumber>;
578
+ /** 去重前的总帧数 */
579
+ totalFramesBeforeDedup: z.ZodDefault<z.ZodNumber>;
580
+ /** 去重后的帧数 */
581
+ totalFramesAfterDedup: z.ZodDefault<z.ZodNumber>;
582
+ /** 最后更新时间戳 */
583
+ lastUpdated: z.ZodDefault<z.ZodNumber>;
584
+ }, "strip", z.ZodTypeAny, {
585
+ totalDecodes: number;
586
+ successfulDecodes: number;
587
+ totalFramesBeforeDedup: number;
588
+ totalFramesAfterDedup: number;
589
+ lastUpdated: number;
590
+ }, {
591
+ totalDecodes?: number | undefined;
592
+ successfulDecodes?: number | undefined;
593
+ totalFramesBeforeDedup?: number | undefined;
594
+ totalFramesAfterDedup?: number | undefined;
595
+ lastUpdated?: number | undefined;
596
+ }>>;
597
+ /** 解码历史(用于调试) */
598
+ decodeHistory: z.ZodDefault<z.ZodArray<z.ZodObject<{
599
+ windowIdx: z.ZodNumber;
600
+ timestamp: z.ZodNumber;
601
+ frameCount: z.ZodNumber;
602
+ processingTimeMs: z.ZodNumber;
603
+ }, "strip", z.ZodTypeAny, {
604
+ windowIdx: number;
605
+ timestamp: number;
606
+ processingTimeMs: number;
607
+ frameCount: number;
608
+ }, {
609
+ windowIdx: number;
610
+ timestamp: number;
611
+ processingTimeMs: number;
612
+ frameCount: number;
613
+ }>, "many">>;
614
+ }, "strip", z.ZodTypeAny, {
615
+ startMs: number;
616
+ slotId: string;
617
+ frames: {
618
+ message: string;
619
+ snr: number;
620
+ freq: number;
621
+ dt: number;
622
+ confidence: number;
623
+ operatorId?: string | undefined;
624
+ logbookAnalysis?: {
625
+ prefix?: string | undefined;
626
+ callsign?: string | undefined;
627
+ grid?: string | undefined;
628
+ dxccId?: number | undefined;
629
+ dxccEntity?: string | undefined;
630
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
631
+ isNewCallsign?: boolean | undefined;
632
+ isNewDxccEntity?: boolean | undefined;
633
+ isNewBandDxccEntity?: boolean | undefined;
634
+ isConfirmedDxcc?: boolean | undefined;
635
+ isNewGrid?: boolean | undefined;
636
+ state?: string | undefined;
637
+ stateConfidence?: "high" | "low" | undefined;
638
+ } | undefined;
639
+ }[];
640
+ endMs: number;
641
+ stats: {
642
+ totalDecodes: number;
643
+ successfulDecodes: number;
644
+ totalFramesBeforeDedup: number;
645
+ totalFramesAfterDedup: number;
646
+ lastUpdated: number;
647
+ };
648
+ decodeHistory: {
649
+ windowIdx: number;
650
+ timestamp: number;
651
+ processingTimeMs: number;
652
+ frameCount: number;
653
+ }[];
654
+ }, {
655
+ startMs: number;
656
+ slotId: string;
657
+ frames: {
658
+ message: string;
659
+ snr: number;
660
+ freq: number;
661
+ dt: number;
662
+ operatorId?: string | undefined;
663
+ confidence?: number | undefined;
664
+ logbookAnalysis?: {
665
+ prefix?: string | undefined;
666
+ callsign?: string | undefined;
667
+ grid?: string | undefined;
668
+ dxccId?: number | undefined;
669
+ dxccEntity?: string | undefined;
670
+ dxccStatus?: "unknown" | "current" | "deleted" | "none" | undefined;
671
+ isNewCallsign?: boolean | undefined;
672
+ isNewDxccEntity?: boolean | undefined;
673
+ isNewBandDxccEntity?: boolean | undefined;
674
+ isConfirmedDxcc?: boolean | undefined;
675
+ isNewGrid?: boolean | undefined;
676
+ state?: string | undefined;
677
+ stateConfidence?: "high" | "low" | undefined;
678
+ } | undefined;
679
+ }[];
680
+ endMs: number;
681
+ stats?: {
682
+ totalDecodes?: number | undefined;
683
+ successfulDecodes?: number | undefined;
684
+ totalFramesBeforeDedup?: number | undefined;
685
+ totalFramesAfterDedup?: number | undefined;
686
+ lastUpdated?: number | undefined;
687
+ } | undefined;
688
+ decodeHistory?: {
689
+ windowIdx: number;
690
+ timestamp: number;
691
+ processingTimeMs: number;
692
+ frameCount: number;
693
+ }[] | undefined;
694
+ }>;
695
+ export type SlotPack = z.infer<typeof SlotPackSchema>;
696
+ //# sourceMappingURL=slot-info.schema.d.ts.map