@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,716 @@
1
+ import { z } from 'zod';
2
+ export declare const SpectrumKindSchema: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>;
3
+ export type SpectrumKind = z.infer<typeof SpectrumKindSchema>;
4
+ export declare const SpectrumDisplayModeSchema: z.ZodEnum<["center", "fixed", "scroll-center", "scroll-fixed", "unknown"]>;
5
+ export type SpectrumDisplayMode = z.infer<typeof SpectrumDisplayModeSchema>;
6
+ export declare const SpectrumSessionSourceModeSchema: z.ZodEnum<["baseband", "center", "fixed", "scroll-center", "scroll-fixed", "full", "detail", "unknown"]>;
7
+ export type SpectrumSessionSourceMode = z.infer<typeof SpectrumSessionSourceModeSchema>;
8
+ export declare const SpectrumSessionFrequencyRangeModeSchema: z.ZodEnum<["baseband", "absolute-center", "absolute-fixed", "absolute-windowed"]>;
9
+ export type SpectrumSessionFrequencyRangeMode = z.infer<typeof SpectrumSessionFrequencyRangeModeSchema>;
10
+ export declare const SpectrumFrequencyRangeSchema: z.ZodObject<{
11
+ min: z.ZodNumber;
12
+ max: z.ZodNumber;
13
+ }, "strip", z.ZodTypeAny, {
14
+ min: number;
15
+ max: number;
16
+ }, {
17
+ min: number;
18
+ max: number;
19
+ }>;
20
+ export declare const SpectrumBinaryFormatSchema: z.ZodObject<{
21
+ type: z.ZodLiteral<"int16">;
22
+ length: z.ZodNumber;
23
+ scale: z.ZodOptional<z.ZodNumber>;
24
+ offset: z.ZodOptional<z.ZodNumber>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ type: "int16";
27
+ length: number;
28
+ scale?: number | undefined;
29
+ offset?: number | undefined;
30
+ }, {
31
+ type: "int16";
32
+ length: number;
33
+ scale?: number | undefined;
34
+ offset?: number | undefined;
35
+ }>;
36
+ export declare const SpectrumBinaryDataSchema: z.ZodObject<{
37
+ data: z.ZodString;
38
+ format: z.ZodObject<{
39
+ type: z.ZodLiteral<"int16">;
40
+ length: z.ZodNumber;
41
+ scale: z.ZodOptional<z.ZodNumber>;
42
+ offset: z.ZodOptional<z.ZodNumber>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ type: "int16";
45
+ length: number;
46
+ scale?: number | undefined;
47
+ offset?: number | undefined;
48
+ }, {
49
+ type: "int16";
50
+ length: number;
51
+ scale?: number | undefined;
52
+ offset?: number | undefined;
53
+ }>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ data: string;
56
+ format: {
57
+ type: "int16";
58
+ length: number;
59
+ scale?: number | undefined;
60
+ offset?: number | undefined;
61
+ };
62
+ }, {
63
+ data: string;
64
+ format: {
65
+ type: "int16";
66
+ length: number;
67
+ scale?: number | undefined;
68
+ offset?: number | undefined;
69
+ };
70
+ }>;
71
+ export declare const SpectrumFrameMetaSchema: z.ZodObject<{
72
+ sourceBinCount: z.ZodNumber;
73
+ displayBinCount: z.ZodNumber;
74
+ centerFrequency: z.ZodOptional<z.ZodNumber>;
75
+ spanHz: z.ZodOptional<z.ZodNumber>;
76
+ profileId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
77
+ radioModel: z.ZodOptional<z.ZodString>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ sourceBinCount: number;
80
+ displayBinCount: number;
81
+ centerFrequency?: number | undefined;
82
+ spanHz?: number | undefined;
83
+ profileId?: string | null | undefined;
84
+ radioModel?: string | undefined;
85
+ }, {
86
+ sourceBinCount: number;
87
+ displayBinCount: number;
88
+ centerFrequency?: number | undefined;
89
+ spanHz?: number | undefined;
90
+ profileId?: string | null | undefined;
91
+ radioModel?: string | undefined;
92
+ }>;
93
+ export declare const SpectrumFrameSchema: z.ZodObject<{
94
+ timestamp: z.ZodNumber;
95
+ kind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>;
96
+ frequencyRange: z.ZodObject<{
97
+ min: z.ZodNumber;
98
+ max: z.ZodNumber;
99
+ }, "strip", z.ZodTypeAny, {
100
+ min: number;
101
+ max: number;
102
+ }, {
103
+ min: number;
104
+ max: number;
105
+ }>;
106
+ binaryData: z.ZodObject<{
107
+ data: z.ZodString;
108
+ format: z.ZodObject<{
109
+ type: z.ZodLiteral<"int16">;
110
+ length: z.ZodNumber;
111
+ scale: z.ZodOptional<z.ZodNumber>;
112
+ offset: z.ZodOptional<z.ZodNumber>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ type: "int16";
115
+ length: number;
116
+ scale?: number | undefined;
117
+ offset?: number | undefined;
118
+ }, {
119
+ type: "int16";
120
+ length: number;
121
+ scale?: number | undefined;
122
+ offset?: number | undefined;
123
+ }>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ data: string;
126
+ format: {
127
+ type: "int16";
128
+ length: number;
129
+ scale?: number | undefined;
130
+ offset?: number | undefined;
131
+ };
132
+ }, {
133
+ data: string;
134
+ format: {
135
+ type: "int16";
136
+ length: number;
137
+ scale?: number | undefined;
138
+ offset?: number | undefined;
139
+ };
140
+ }>;
141
+ meta: z.ZodObject<{
142
+ sourceBinCount: z.ZodNumber;
143
+ displayBinCount: z.ZodNumber;
144
+ centerFrequency: z.ZodOptional<z.ZodNumber>;
145
+ spanHz: z.ZodOptional<z.ZodNumber>;
146
+ profileId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
147
+ radioModel: z.ZodOptional<z.ZodString>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ sourceBinCount: number;
150
+ displayBinCount: number;
151
+ centerFrequency?: number | undefined;
152
+ spanHz?: number | undefined;
153
+ profileId?: string | null | undefined;
154
+ radioModel?: string | undefined;
155
+ }, {
156
+ sourceBinCount: number;
157
+ displayBinCount: number;
158
+ centerFrequency?: number | undefined;
159
+ spanHz?: number | undefined;
160
+ profileId?: string | null | undefined;
161
+ radioModel?: string | undefined;
162
+ }>;
163
+ }, "strip", z.ZodTypeAny, {
164
+ timestamp: number;
165
+ frequencyRange: {
166
+ min: number;
167
+ max: number;
168
+ };
169
+ binaryData: {
170
+ data: string;
171
+ format: {
172
+ type: "int16";
173
+ length: number;
174
+ scale?: number | undefined;
175
+ offset?: number | undefined;
176
+ };
177
+ };
178
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr";
179
+ meta: {
180
+ sourceBinCount: number;
181
+ displayBinCount: number;
182
+ centerFrequency?: number | undefined;
183
+ spanHz?: number | undefined;
184
+ profileId?: string | null | undefined;
185
+ radioModel?: string | undefined;
186
+ };
187
+ }, {
188
+ timestamp: number;
189
+ frequencyRange: {
190
+ min: number;
191
+ max: number;
192
+ };
193
+ binaryData: {
194
+ data: string;
195
+ format: {
196
+ type: "int16";
197
+ length: number;
198
+ scale?: number | undefined;
199
+ offset?: number | undefined;
200
+ };
201
+ };
202
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr";
203
+ meta: {
204
+ sourceBinCount: number;
205
+ displayBinCount: number;
206
+ centerFrequency?: number | undefined;
207
+ spanHz?: number | undefined;
208
+ profileId?: string | null | undefined;
209
+ radioModel?: string | undefined;
210
+ };
211
+ }>;
212
+ export declare const SpectrumSourceAvailabilitySchema: z.ZodObject<{
213
+ kind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>;
214
+ supported: z.ZodBoolean;
215
+ available: z.ZodBoolean;
216
+ defaultSelected: z.ZodBoolean;
217
+ reason: z.ZodOptional<z.ZodString>;
218
+ sourceBinCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
219
+ displayBinCount: z.ZodNumber;
220
+ supportsWaterfall: z.ZodBoolean;
221
+ frequencyRangeMode: z.ZodEnum<["absolute", "baseband"]>;
222
+ }, "strip", z.ZodTypeAny, {
223
+ displayBinCount: number;
224
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr";
225
+ supported: boolean;
226
+ available: boolean;
227
+ defaultSelected: boolean;
228
+ supportsWaterfall: boolean;
229
+ frequencyRangeMode: "baseband" | "absolute";
230
+ sourceBinCount?: number | null | undefined;
231
+ reason?: string | undefined;
232
+ }, {
233
+ displayBinCount: number;
234
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr";
235
+ supported: boolean;
236
+ available: boolean;
237
+ defaultSelected: boolean;
238
+ supportsWaterfall: boolean;
239
+ frequencyRangeMode: "baseband" | "absolute";
240
+ sourceBinCount?: number | null | undefined;
241
+ reason?: string | undefined;
242
+ }>;
243
+ export declare const SpectrumCapabilitiesSchema: z.ZodObject<{
244
+ profileId: z.ZodNullable<z.ZodString>;
245
+ defaultKind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>;
246
+ sources: z.ZodArray<z.ZodObject<{
247
+ kind: z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>;
248
+ supported: z.ZodBoolean;
249
+ available: z.ZodBoolean;
250
+ defaultSelected: z.ZodBoolean;
251
+ reason: z.ZodOptional<z.ZodString>;
252
+ sourceBinCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
253
+ displayBinCount: z.ZodNumber;
254
+ supportsWaterfall: z.ZodBoolean;
255
+ frequencyRangeMode: z.ZodEnum<["absolute", "baseband"]>;
256
+ }, "strip", z.ZodTypeAny, {
257
+ displayBinCount: number;
258
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr";
259
+ supported: boolean;
260
+ available: boolean;
261
+ defaultSelected: boolean;
262
+ supportsWaterfall: boolean;
263
+ frequencyRangeMode: "baseband" | "absolute";
264
+ sourceBinCount?: number | null | undefined;
265
+ reason?: string | undefined;
266
+ }, {
267
+ displayBinCount: number;
268
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr";
269
+ supported: boolean;
270
+ available: boolean;
271
+ defaultSelected: boolean;
272
+ supportsWaterfall: boolean;
273
+ frequencyRangeMode: "baseband" | "absolute";
274
+ sourceBinCount?: number | null | undefined;
275
+ reason?: string | undefined;
276
+ }>, "many">;
277
+ }, "strip", z.ZodTypeAny, {
278
+ profileId: string | null;
279
+ defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr";
280
+ sources: {
281
+ displayBinCount: number;
282
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr";
283
+ supported: boolean;
284
+ available: boolean;
285
+ defaultSelected: boolean;
286
+ supportsWaterfall: boolean;
287
+ frequencyRangeMode: "baseband" | "absolute";
288
+ sourceBinCount?: number | null | undefined;
289
+ reason?: string | undefined;
290
+ }[];
291
+ }, {
292
+ profileId: string | null;
293
+ defaultKind: "audio" | "radio-sdr" | "openwebrx-sdr";
294
+ sources: {
295
+ displayBinCount: number;
296
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr";
297
+ supported: boolean;
298
+ available: boolean;
299
+ defaultSelected: boolean;
300
+ supportsWaterfall: boolean;
301
+ frequencyRangeMode: "baseband" | "absolute";
302
+ sourceBinCount?: number | null | undefined;
303
+ reason?: string | undefined;
304
+ }[];
305
+ }>;
306
+ export declare const SpectrumSessionControlIdSchema: z.ZodEnum<["zoom-step", "digital-window-toggle", "openwebrx-detail-toggle", "viewport-zoom"]>;
307
+ export type SpectrumSessionControlId = z.infer<typeof SpectrumSessionControlIdSchema>;
308
+ export declare const SpectrumSessionControlActionSchema: z.ZodEnum<["in", "out", "toggle"]>;
309
+ export type SpectrumSessionControlAction = z.infer<typeof SpectrumSessionControlActionSchema>;
310
+ export declare const SpectrumSessionControlKindSchema: z.ZodEnum<["server", "local"]>;
311
+ export type SpectrumSessionControlKind = z.infer<typeof SpectrumSessionControlKindSchema>;
312
+ export declare const SpectrumSessionControlSchema: z.ZodObject<{
313
+ id: z.ZodEnum<["zoom-step", "digital-window-toggle", "openwebrx-detail-toggle", "viewport-zoom"]>;
314
+ action: z.ZodEnum<["in", "out", "toggle"]>;
315
+ kind: z.ZodEnum<["server", "local"]>;
316
+ visible: z.ZodBoolean;
317
+ enabled: z.ZodBoolean;
318
+ active: z.ZodBoolean;
319
+ pending: z.ZodBoolean;
320
+ }, "strip", z.ZodTypeAny, {
321
+ id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom";
322
+ kind: "server" | "local";
323
+ action: "in" | "out" | "toggle";
324
+ visible: boolean;
325
+ enabled: boolean;
326
+ active: boolean;
327
+ pending: boolean;
328
+ }, {
329
+ id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom";
330
+ kind: "server" | "local";
331
+ action: "in" | "out" | "toggle";
332
+ visible: boolean;
333
+ enabled: boolean;
334
+ active: boolean;
335
+ pending: boolean;
336
+ }>;
337
+ export type SpectrumSessionControl = z.infer<typeof SpectrumSessionControlSchema>;
338
+ export declare const SpectrumSessionVoiceStateSchema: z.ZodObject<{
339
+ radioMode: z.ZodNullable<z.ZodString>;
340
+ bandwidthLabel: z.ZodNullable<z.ZodString>;
341
+ occupiedBandwidthHz: z.ZodNullable<z.ZodNumber>;
342
+ offsetModel: z.ZodNullable<z.ZodEnum<["upper", "lower", "symmetric"]>>;
343
+ }, "strip", z.ZodTypeAny, {
344
+ radioMode: string | null;
345
+ bandwidthLabel: string | null;
346
+ occupiedBandwidthHz: number | null;
347
+ offsetModel: "upper" | "lower" | "symmetric" | null;
348
+ }, {
349
+ radioMode: string | null;
350
+ bandwidthLabel: string | null;
351
+ occupiedBandwidthHz: number | null;
352
+ offsetModel: "upper" | "lower" | "symmetric" | null;
353
+ }>;
354
+ export type SpectrumSessionVoiceState = z.infer<typeof SpectrumSessionVoiceStateSchema>;
355
+ export declare const SpectrumSessionPresetMarkerSchema: z.ZodObject<{
356
+ id: z.ZodString;
357
+ frequency: z.ZodNumber;
358
+ label: z.ZodString;
359
+ description: z.ZodNullable<z.ZodString>;
360
+ clickable: z.ZodBoolean;
361
+ }, "strip", z.ZodTypeAny, {
362
+ id: string;
363
+ frequency: number;
364
+ label: string;
365
+ description: string | null;
366
+ clickable: boolean;
367
+ }, {
368
+ id: string;
369
+ frequency: number;
370
+ label: string;
371
+ description: string | null;
372
+ clickable: boolean;
373
+ }>;
374
+ export type SpectrumSessionPresetMarker = z.infer<typeof SpectrumSessionPresetMarkerSchema>;
375
+ export declare const SpectrumSessionInteractionStateSchema: z.ZodObject<{
376
+ showTxMarkers: z.ZodBoolean;
377
+ showRxMarkers: z.ZodBoolean;
378
+ canDragTx: z.ZodBoolean;
379
+ canRightClickSetFrequency: z.ZodBoolean;
380
+ canDoubleClickSetFrequency: z.ZodBoolean;
381
+ canDragFrequency: z.ZodBoolean;
382
+ frequencyGestureTarget: z.ZodNullable<z.ZodEnum<["operator-tx", "radio-frequency"]>>;
383
+ frequencyStepHz: z.ZodNullable<z.ZodNumber>;
384
+ presetMarkers: z.ZodArray<z.ZodObject<{
385
+ id: z.ZodString;
386
+ frequency: z.ZodNumber;
387
+ label: z.ZodString;
388
+ description: z.ZodNullable<z.ZodString>;
389
+ clickable: z.ZodBoolean;
390
+ }, "strip", z.ZodTypeAny, {
391
+ id: string;
392
+ frequency: number;
393
+ label: string;
394
+ description: string | null;
395
+ clickable: boolean;
396
+ }, {
397
+ id: string;
398
+ frequency: number;
399
+ label: string;
400
+ description: string | null;
401
+ clickable: boolean;
402
+ }>, "many">;
403
+ canDragVoiceOverlay: z.ZodBoolean;
404
+ showVoiceOverlay: z.ZodBoolean;
405
+ canLocalViewportZoom: z.ZodBoolean;
406
+ canLocalViewportPan: z.ZodBoolean;
407
+ supportsManualRange: z.ZodBoolean;
408
+ supportsAutoRange: z.ZodBoolean;
409
+ defaultRangeMode: z.ZodNullable<z.ZodEnum<["auto", "manual"]>>;
410
+ }, "strip", z.ZodTypeAny, {
411
+ showTxMarkers: boolean;
412
+ showRxMarkers: boolean;
413
+ canDragTx: boolean;
414
+ canRightClickSetFrequency: boolean;
415
+ canDoubleClickSetFrequency: boolean;
416
+ canDragFrequency: boolean;
417
+ frequencyGestureTarget: "operator-tx" | "radio-frequency" | null;
418
+ frequencyStepHz: number | null;
419
+ presetMarkers: {
420
+ id: string;
421
+ frequency: number;
422
+ label: string;
423
+ description: string | null;
424
+ clickable: boolean;
425
+ }[];
426
+ canDragVoiceOverlay: boolean;
427
+ showVoiceOverlay: boolean;
428
+ canLocalViewportZoom: boolean;
429
+ canLocalViewportPan: boolean;
430
+ supportsManualRange: boolean;
431
+ supportsAutoRange: boolean;
432
+ defaultRangeMode: "manual" | "auto" | null;
433
+ }, {
434
+ showTxMarkers: boolean;
435
+ showRxMarkers: boolean;
436
+ canDragTx: boolean;
437
+ canRightClickSetFrequency: boolean;
438
+ canDoubleClickSetFrequency: boolean;
439
+ canDragFrequency: boolean;
440
+ frequencyGestureTarget: "operator-tx" | "radio-frequency" | null;
441
+ frequencyStepHz: number | null;
442
+ presetMarkers: {
443
+ id: string;
444
+ frequency: number;
445
+ label: string;
446
+ description: string | null;
447
+ clickable: boolean;
448
+ }[];
449
+ canDragVoiceOverlay: boolean;
450
+ showVoiceOverlay: boolean;
451
+ canLocalViewportZoom: boolean;
452
+ canLocalViewportPan: boolean;
453
+ supportsManualRange: boolean;
454
+ supportsAutoRange: boolean;
455
+ defaultRangeMode: "manual" | "auto" | null;
456
+ }>;
457
+ export type SpectrumSessionInteractionState = z.infer<typeof SpectrumSessionInteractionStateSchema>;
458
+ export declare const SpectrumSessionStateSchema: z.ZodObject<{
459
+ kind: z.ZodNullable<z.ZodEnum<["audio", "radio-sdr", "openwebrx-sdr"]>>;
460
+ sourceMode: z.ZodEnum<["baseband", "center", "fixed", "scroll-center", "scroll-fixed", "full", "detail", "unknown"]>;
461
+ frequencyRangeMode: z.ZodEnum<["baseband", "absolute-center", "absolute-fixed", "absolute-windowed"]>;
462
+ displayRange: z.ZodNullable<z.ZodObject<{
463
+ min: z.ZodNumber;
464
+ max: z.ZodNumber;
465
+ }, "strip", z.ZodTypeAny, {
466
+ min: number;
467
+ max: number;
468
+ }, {
469
+ min: number;
470
+ max: number;
471
+ }>>;
472
+ centerFrequency: z.ZodNullable<z.ZodNumber>;
473
+ currentRadioFrequency: z.ZodNullable<z.ZodNumber>;
474
+ standardFrequencyHz: z.ZodNullable<z.ZodNumber>;
475
+ edgeLowHz: z.ZodNullable<z.ZodNumber>;
476
+ edgeHighHz: z.ZodNullable<z.ZodNumber>;
477
+ spanHz: z.ZodNullable<z.ZodNumber>;
478
+ voice: z.ZodObject<{
479
+ radioMode: z.ZodNullable<z.ZodString>;
480
+ bandwidthLabel: z.ZodNullable<z.ZodString>;
481
+ occupiedBandwidthHz: z.ZodNullable<z.ZodNumber>;
482
+ offsetModel: z.ZodNullable<z.ZodEnum<["upper", "lower", "symmetric"]>>;
483
+ }, "strip", z.ZodTypeAny, {
484
+ radioMode: string | null;
485
+ bandwidthLabel: string | null;
486
+ occupiedBandwidthHz: number | null;
487
+ offsetModel: "upper" | "lower" | "symmetric" | null;
488
+ }, {
489
+ radioMode: string | null;
490
+ bandwidthLabel: string | null;
491
+ occupiedBandwidthHz: number | null;
492
+ offsetModel: "upper" | "lower" | "symmetric" | null;
493
+ }>;
494
+ interaction: z.ZodObject<{
495
+ showTxMarkers: z.ZodBoolean;
496
+ showRxMarkers: z.ZodBoolean;
497
+ canDragTx: z.ZodBoolean;
498
+ canRightClickSetFrequency: z.ZodBoolean;
499
+ canDoubleClickSetFrequency: z.ZodBoolean;
500
+ canDragFrequency: z.ZodBoolean;
501
+ frequencyGestureTarget: z.ZodNullable<z.ZodEnum<["operator-tx", "radio-frequency"]>>;
502
+ frequencyStepHz: z.ZodNullable<z.ZodNumber>;
503
+ presetMarkers: z.ZodArray<z.ZodObject<{
504
+ id: z.ZodString;
505
+ frequency: z.ZodNumber;
506
+ label: z.ZodString;
507
+ description: z.ZodNullable<z.ZodString>;
508
+ clickable: z.ZodBoolean;
509
+ }, "strip", z.ZodTypeAny, {
510
+ id: string;
511
+ frequency: number;
512
+ label: string;
513
+ description: string | null;
514
+ clickable: boolean;
515
+ }, {
516
+ id: string;
517
+ frequency: number;
518
+ label: string;
519
+ description: string | null;
520
+ clickable: boolean;
521
+ }>, "many">;
522
+ canDragVoiceOverlay: z.ZodBoolean;
523
+ showVoiceOverlay: z.ZodBoolean;
524
+ canLocalViewportZoom: z.ZodBoolean;
525
+ canLocalViewportPan: z.ZodBoolean;
526
+ supportsManualRange: z.ZodBoolean;
527
+ supportsAutoRange: z.ZodBoolean;
528
+ defaultRangeMode: z.ZodNullable<z.ZodEnum<["auto", "manual"]>>;
529
+ }, "strip", z.ZodTypeAny, {
530
+ showTxMarkers: boolean;
531
+ showRxMarkers: boolean;
532
+ canDragTx: boolean;
533
+ canRightClickSetFrequency: boolean;
534
+ canDoubleClickSetFrequency: boolean;
535
+ canDragFrequency: boolean;
536
+ frequencyGestureTarget: "operator-tx" | "radio-frequency" | null;
537
+ frequencyStepHz: number | null;
538
+ presetMarkers: {
539
+ id: string;
540
+ frequency: number;
541
+ label: string;
542
+ description: string | null;
543
+ clickable: boolean;
544
+ }[];
545
+ canDragVoiceOverlay: boolean;
546
+ showVoiceOverlay: boolean;
547
+ canLocalViewportZoom: boolean;
548
+ canLocalViewportPan: boolean;
549
+ supportsManualRange: boolean;
550
+ supportsAutoRange: boolean;
551
+ defaultRangeMode: "manual" | "auto" | null;
552
+ }, {
553
+ showTxMarkers: boolean;
554
+ showRxMarkers: boolean;
555
+ canDragTx: boolean;
556
+ canRightClickSetFrequency: boolean;
557
+ canDoubleClickSetFrequency: boolean;
558
+ canDragFrequency: boolean;
559
+ frequencyGestureTarget: "operator-tx" | "radio-frequency" | null;
560
+ frequencyStepHz: number | null;
561
+ presetMarkers: {
562
+ id: string;
563
+ frequency: number;
564
+ label: string;
565
+ description: string | null;
566
+ clickable: boolean;
567
+ }[];
568
+ canDragVoiceOverlay: boolean;
569
+ showVoiceOverlay: boolean;
570
+ canLocalViewportZoom: boolean;
571
+ canLocalViewportPan: boolean;
572
+ supportsManualRange: boolean;
573
+ supportsAutoRange: boolean;
574
+ defaultRangeMode: "manual" | "auto" | null;
575
+ }>;
576
+ controls: z.ZodArray<z.ZodObject<{
577
+ id: z.ZodEnum<["zoom-step", "digital-window-toggle", "openwebrx-detail-toggle", "viewport-zoom"]>;
578
+ action: z.ZodEnum<["in", "out", "toggle"]>;
579
+ kind: z.ZodEnum<["server", "local"]>;
580
+ visible: z.ZodBoolean;
581
+ enabled: z.ZodBoolean;
582
+ active: z.ZodBoolean;
583
+ pending: z.ZodBoolean;
584
+ }, "strip", z.ZodTypeAny, {
585
+ id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom";
586
+ kind: "server" | "local";
587
+ action: "in" | "out" | "toggle";
588
+ visible: boolean;
589
+ enabled: boolean;
590
+ active: boolean;
591
+ pending: boolean;
592
+ }, {
593
+ id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom";
594
+ kind: "server" | "local";
595
+ action: "in" | "out" | "toggle";
596
+ visible: boolean;
597
+ enabled: boolean;
598
+ active: boolean;
599
+ pending: boolean;
600
+ }>, "many">;
601
+ }, "strip", z.ZodTypeAny, {
602
+ centerFrequency: number | null;
603
+ spanHz: number | null;
604
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null;
605
+ frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed";
606
+ sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail";
607
+ displayRange: {
608
+ min: number;
609
+ max: number;
610
+ } | null;
611
+ currentRadioFrequency: number | null;
612
+ standardFrequencyHz: number | null;
613
+ edgeLowHz: number | null;
614
+ edgeHighHz: number | null;
615
+ voice: {
616
+ radioMode: string | null;
617
+ bandwidthLabel: string | null;
618
+ occupiedBandwidthHz: number | null;
619
+ offsetModel: "upper" | "lower" | "symmetric" | null;
620
+ };
621
+ interaction: {
622
+ showTxMarkers: boolean;
623
+ showRxMarkers: boolean;
624
+ canDragTx: boolean;
625
+ canRightClickSetFrequency: boolean;
626
+ canDoubleClickSetFrequency: boolean;
627
+ canDragFrequency: boolean;
628
+ frequencyGestureTarget: "operator-tx" | "radio-frequency" | null;
629
+ frequencyStepHz: number | null;
630
+ presetMarkers: {
631
+ id: string;
632
+ frequency: number;
633
+ label: string;
634
+ description: string | null;
635
+ clickable: boolean;
636
+ }[];
637
+ canDragVoiceOverlay: boolean;
638
+ showVoiceOverlay: boolean;
639
+ canLocalViewportZoom: boolean;
640
+ canLocalViewportPan: boolean;
641
+ supportsManualRange: boolean;
642
+ supportsAutoRange: boolean;
643
+ defaultRangeMode: "manual" | "auto" | null;
644
+ };
645
+ controls: {
646
+ id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom";
647
+ kind: "server" | "local";
648
+ action: "in" | "out" | "toggle";
649
+ visible: boolean;
650
+ enabled: boolean;
651
+ active: boolean;
652
+ pending: boolean;
653
+ }[];
654
+ }, {
655
+ centerFrequency: number | null;
656
+ spanHz: number | null;
657
+ kind: "audio" | "radio-sdr" | "openwebrx-sdr" | null;
658
+ frequencyRangeMode: "baseband" | "absolute-center" | "absolute-fixed" | "absolute-windowed";
659
+ sourceMode: "unknown" | "center" | "fixed" | "scroll-center" | "scroll-fixed" | "baseband" | "full" | "detail";
660
+ displayRange: {
661
+ min: number;
662
+ max: number;
663
+ } | null;
664
+ currentRadioFrequency: number | null;
665
+ standardFrequencyHz: number | null;
666
+ edgeLowHz: number | null;
667
+ edgeHighHz: number | null;
668
+ voice: {
669
+ radioMode: string | null;
670
+ bandwidthLabel: string | null;
671
+ occupiedBandwidthHz: number | null;
672
+ offsetModel: "upper" | "lower" | "symmetric" | null;
673
+ };
674
+ interaction: {
675
+ showTxMarkers: boolean;
676
+ showRxMarkers: boolean;
677
+ canDragTx: boolean;
678
+ canRightClickSetFrequency: boolean;
679
+ canDoubleClickSetFrequency: boolean;
680
+ canDragFrequency: boolean;
681
+ frequencyGestureTarget: "operator-tx" | "radio-frequency" | null;
682
+ frequencyStepHz: number | null;
683
+ presetMarkers: {
684
+ id: string;
685
+ frequency: number;
686
+ label: string;
687
+ description: string | null;
688
+ clickable: boolean;
689
+ }[];
690
+ canDragVoiceOverlay: boolean;
691
+ showVoiceOverlay: boolean;
692
+ canLocalViewportZoom: boolean;
693
+ canLocalViewportPan: boolean;
694
+ supportsManualRange: boolean;
695
+ supportsAutoRange: boolean;
696
+ defaultRangeMode: "manual" | "auto" | null;
697
+ };
698
+ controls: {
699
+ id: "zoom-step" | "digital-window-toggle" | "openwebrx-detail-toggle" | "viewport-zoom";
700
+ kind: "server" | "local";
701
+ action: "in" | "out" | "toggle";
702
+ visible: boolean;
703
+ enabled: boolean;
704
+ active: boolean;
705
+ pending: boolean;
706
+ }[];
707
+ }>;
708
+ export type SpectrumSessionState = z.infer<typeof SpectrumSessionStateSchema>;
709
+ export type SpectrumFrequencyRange = z.infer<typeof SpectrumFrequencyRangeSchema>;
710
+ export type SpectrumBinaryFormat = z.infer<typeof SpectrumBinaryFormatSchema>;
711
+ export type SpectrumBinaryData = z.infer<typeof SpectrumBinaryDataSchema>;
712
+ export type SpectrumFrameMeta = z.infer<typeof SpectrumFrameMetaSchema>;
713
+ export type SpectrumFrame = z.infer<typeof SpectrumFrameSchema>;
714
+ export type SpectrumSourceAvailability = z.infer<typeof SpectrumSourceAvailabilitySchema>;
715
+ export type SpectrumCapabilities = z.infer<typeof SpectrumCapabilitiesSchema>;
716
+ //# sourceMappingURL=spectrum.schema.d.ts.map