@camstack/types 1.2.43 → 1.2.45

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 (38) hide show
  1. package/dist/addon.js +8 -2
  2. package/dist/addon.mjs +8 -2
  3. package/dist/capabilities/index.d.ts +21 -3
  4. package/dist/capabilities/osd-manager.cap.d.ts +900 -0
  5. package/dist/capabilities/pipeline-analytics.cap.d.ts +1192 -74
  6. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +10 -0
  7. package/dist/capabilities/pipeline-runner.cap.d.ts +6 -0
  8. package/dist/capabilities/schemas/streaming-shared.d.ts +2 -0
  9. package/dist/capabilities/server-management.cap.d.ts +3 -3
  10. package/dist/capabilities/stream-broker.cap.d.ts +32 -0
  11. package/dist/ffmpeg/fmp4-box-splitter.d.ts +113 -0
  12. package/dist/ffmpeg/fmp4-fragment-child.d.ts +85 -0
  13. package/dist/ffmpeg/fmp4-fragment-plane.d.ts +142 -0
  14. package/dist/ffmpeg/invocation.d.ts +4 -2
  15. package/dist/fmp4-box-splitter-B53u9-Nu.mjs +615 -0
  16. package/dist/fmp4-box-splitter-BkWH7O3L.js +686 -0
  17. package/dist/generated/addon-api.d.ts +162 -0
  18. package/dist/generated/cap-input-defaults.d.ts +1 -1
  19. package/dist/generated/capability-router-map.d.ts +5 -2
  20. package/dist/generated/device-proxy.d.ts +3 -1
  21. package/dist/generated/method-access-map.d.ts +1 -1
  22. package/dist/generated/system-proxy.d.ts +2 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.js +1114 -407
  25. package/dist/index.mjs +1075 -397
  26. package/dist/interfaces/camera-switches.d.ts +48 -0
  27. package/dist/interfaces/stream-broker.d.ts +19 -49
  28. package/dist/node.d.ts +4 -0
  29. package/dist/node.js +509 -3
  30. package/dist/node.mjs +507 -3
  31. package/dist/notification/schedule.d.ts +20 -0
  32. package/dist/{sleep-Bx9IIoT0.js → sleep-BOI-sVEA.js} +37 -1
  33. package/dist/{sleep-DtstvzWm.mjs → sleep-Bf5fBs7u.mjs} +37 -1
  34. package/dist/types/detection.d.ts +31 -0
  35. package/dist/types/pipeline-step.d.ts +22 -1
  36. package/package.json +1 -1
  37. package/dist/canonical-hash-7nfBbEqR.mjs +0 -35
  38. package/dist/canonical-hash-BcZHRHIx.js +0 -40
@@ -0,0 +1,900 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ /**
4
+ * `osd-manager` — the ORCHESTRATOR over the device-scope `osd` cap.
5
+ *
6
+ * The `osd` cap is the firmware contract: it probes a camera's overlay
7
+ * SLOTS and writes literal text into one. It has no idea WHERE that text
8
+ * comes from, and it must not — a driver that grew a "show the temperature
9
+ * here" feature would grow it once per vendor.
10
+ *
11
+ * This cap owns the other half: a per-(camera, slot) BINDING that says
12
+ * which value feeds the slot, how it is formatted, and under which
13
+ * conditions it is shown at all. One addon renders every binding on every
14
+ * camera, so a new source costs zero driver code.
15
+ *
16
+ * Three deliberate choices, each with a rejected alternative:
17
+ *
18
+ * 1. A source is `(capName, valuePath)` over the kernel's device
19
+ * runtime-state mirror — NOT a closed enum of source kinds. Every
20
+ * cap-keyed slice a device publishes is bindable the day the cap
21
+ * ships. The rejected alternative (one enum member per source, with
22
+ * a resolver branch each) is what makes "add the humidity too" a
23
+ * code change.
24
+ * 2. The display gate reuses `NcConditionsSchema` verbatim — the
25
+ * notification centre's condition vocabulary — rather than a parallel
26
+ * model. An operator who has learned one condition editor has learned
27
+ * both.
28
+ * 3. Because the renderer's facts are device STATE and not a detection
29
+ * record, only a SUBSET of that vocabulary can be answered here.
30
+ * `setSlotBinding` REJECTS the rest at write time (see
31
+ * `getConditionSupport`). It does not accept-then-fail-closed: a
32
+ * condition that can never be true renders a permanently blank
33
+ * overlay, and a blank overlay looks exactly like a broken camera.
34
+ */
35
+ /** Where a slot's value comes from. */
36
+ export declare const OsdSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
37
+ kind: z.ZodLiteral<"static">;
38
+ text: z.ZodString;
39
+ }, z.core.$strip>, z.ZodObject<{
40
+ kind: z.ZodLiteral<"clock">;
41
+ pattern: z.ZodDefault<z.ZodString>;
42
+ timezone: z.ZodOptional<z.ZodString>;
43
+ }, z.core.$strip>, z.ZodObject<{
44
+ kind: z.ZodLiteral<"device-state">;
45
+ deviceId: z.ZodOptional<z.ZodNumber>;
46
+ capName: z.ZodString;
47
+ valuePath: z.ZodString;
48
+ }, z.core.$strip>], "kind">;
49
+ export type OsdSource = z.infer<typeof OsdSourceSchema>;
50
+ export declare const OsdSlotBindingSchema: z.ZodObject<{
51
+ enabled: z.ZodDefault<z.ZodBoolean>;
52
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
53
+ kind: z.ZodLiteral<"static">;
54
+ text: z.ZodString;
55
+ }, z.core.$strip>, z.ZodObject<{
56
+ kind: z.ZodLiteral<"clock">;
57
+ pattern: z.ZodDefault<z.ZodString>;
58
+ timezone: z.ZodOptional<z.ZodString>;
59
+ }, z.core.$strip>, z.ZodObject<{
60
+ kind: z.ZodLiteral<"device-state">;
61
+ deviceId: z.ZodOptional<z.ZodNumber>;
62
+ capName: z.ZodString;
63
+ valuePath: z.ZodString;
64
+ }, z.core.$strip>], "kind">;
65
+ template: z.ZodDefault<z.ZodString>;
66
+ maxCharacters: z.ZodOptional<z.ZodNumber>;
67
+ maxDecimals: z.ZodDefault<z.ZodNumber>;
68
+ unitLabel: z.ZodOptional<z.ZodString>;
69
+ valueMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
70
+ schedule: z.ZodOptional<z.ZodObject<{
71
+ windows: z.ZodArray<z.ZodObject<{
72
+ days: z.ZodArray<z.ZodNumber>;
73
+ startMinute: z.ZodNumber;
74
+ endMinute: z.ZodNumber;
75
+ }, z.core.$strip>>;
76
+ timezone: z.ZodOptional<z.ZodString>;
77
+ invert: z.ZodOptional<z.ZodBoolean>;
78
+ }, z.core.$strip>>;
79
+ conditions: z.ZodOptional<z.ZodObject<{
80
+ deviceState: z.ZodOptional<z.ZodObject<{
81
+ deviceId: z.ZodNumber;
82
+ states: z.ZodArray<z.ZodString>;
83
+ }, z.core.$strip>>;
84
+ devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
85
+ classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
86
+ classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
87
+ minConfidence: z.ZodOptional<z.ZodNumber>;
88
+ zones: z.ZodOptional<z.ZodObject<{
89
+ ids: z.ZodArray<z.ZodString>;
90
+ match: z.ZodDefault<z.ZodEnum<{
91
+ any: "any";
92
+ all: "all";
93
+ }>>;
94
+ }, z.core.$strip>>;
95
+ zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
96
+ crossing: z.ZodOptional<z.ZodEnum<{
97
+ any: "any";
98
+ enter: "enter";
99
+ exit: "exit";
100
+ }>>;
101
+ labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
102
+ identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
+ plates: z.ZodOptional<z.ZodObject<{
104
+ values: z.ZodArray<z.ZodString>;
105
+ maxDistance: z.ZodDefault<z.ZodNumber>;
106
+ }, z.core.$strip>>;
107
+ identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
108
+ minImportance: z.ZodOptional<z.ZodNumber>;
109
+ minDwellSeconds: z.ZodOptional<z.ZodNumber>;
110
+ source: z.ZodOptional<z.ZodEnum<{
111
+ sensor: "sensor";
112
+ audio: "audio";
113
+ any: "any";
114
+ pipeline: "pipeline";
115
+ onboard: "onboard";
116
+ }>>;
117
+ minLabelConfidence: z.ZodOptional<z.ZodNumber>;
118
+ eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
119
+ sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
120
+ packagePhase: z.ZodOptional<z.ZodEnum<{
121
+ both: "both";
122
+ delivered: "delivered";
123
+ "picked-up": "picked-up";
124
+ }>>;
125
+ customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
126
+ kind: z.ZodLiteral<"polygon">;
127
+ points: z.ZodArray<z.ZodObject<{
128
+ x: z.ZodNumber;
129
+ y: z.ZodNumber;
130
+ }, z.core.$strip>>;
131
+ }, z.core.$strip>>>;
132
+ occupancy: z.ZodOptional<z.ZodObject<{
133
+ zoneId: z.ZodOptional<z.ZodString>;
134
+ className: z.ZodOptional<z.ZodString>;
135
+ op: z.ZodDefault<z.ZodEnum<{
136
+ "<=": "<=";
137
+ ">=": ">=";
138
+ "became-occupied": "became-occupied";
139
+ "became-free": "became-free";
140
+ }>>;
141
+ count: z.ZodDefault<z.ZodNumber>;
142
+ sustainSeconds: z.ZodDefault<z.ZodNumber>;
143
+ }, z.core.$strip>>;
144
+ }, z.core.$strip>>;
145
+ fallbackText: z.ZodDefault<z.ZodString>;
146
+ }, z.core.$strip>;
147
+ export type OsdSlotBinding = z.infer<typeof OsdSlotBindingSchema>;
148
+ /** One camera slot, as the operator sees it: firmware truth + our binding. */
149
+ export declare const OsdSlotViewSchema: z.ZodObject<{
150
+ slotId: z.ZodString;
151
+ kind: z.ZodEnum<{
152
+ timestamp: "timestamp";
153
+ text: "text";
154
+ watermark: "watermark";
155
+ }>;
156
+ readOnly: z.ZodBoolean;
157
+ cameraEnabled: z.ZodBoolean;
158
+ cameraText: z.ZodOptional<z.ZodString>;
159
+ binding: z.ZodNullable<z.ZodObject<{
160
+ enabled: z.ZodDefault<z.ZodBoolean>;
161
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
162
+ kind: z.ZodLiteral<"static">;
163
+ text: z.ZodString;
164
+ }, z.core.$strip>, z.ZodObject<{
165
+ kind: z.ZodLiteral<"clock">;
166
+ pattern: z.ZodDefault<z.ZodString>;
167
+ timezone: z.ZodOptional<z.ZodString>;
168
+ }, z.core.$strip>, z.ZodObject<{
169
+ kind: z.ZodLiteral<"device-state">;
170
+ deviceId: z.ZodOptional<z.ZodNumber>;
171
+ capName: z.ZodString;
172
+ valuePath: z.ZodString;
173
+ }, z.core.$strip>], "kind">;
174
+ template: z.ZodDefault<z.ZodString>;
175
+ maxCharacters: z.ZodOptional<z.ZodNumber>;
176
+ maxDecimals: z.ZodDefault<z.ZodNumber>;
177
+ unitLabel: z.ZodOptional<z.ZodString>;
178
+ valueMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
179
+ schedule: z.ZodOptional<z.ZodObject<{
180
+ windows: z.ZodArray<z.ZodObject<{
181
+ days: z.ZodArray<z.ZodNumber>;
182
+ startMinute: z.ZodNumber;
183
+ endMinute: z.ZodNumber;
184
+ }, z.core.$strip>>;
185
+ timezone: z.ZodOptional<z.ZodString>;
186
+ invert: z.ZodOptional<z.ZodBoolean>;
187
+ }, z.core.$strip>>;
188
+ conditions: z.ZodOptional<z.ZodObject<{
189
+ deviceState: z.ZodOptional<z.ZodObject<{
190
+ deviceId: z.ZodNumber;
191
+ states: z.ZodArray<z.ZodString>;
192
+ }, z.core.$strip>>;
193
+ devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
194
+ classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
195
+ classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
196
+ minConfidence: z.ZodOptional<z.ZodNumber>;
197
+ zones: z.ZodOptional<z.ZodObject<{
198
+ ids: z.ZodArray<z.ZodString>;
199
+ match: z.ZodDefault<z.ZodEnum<{
200
+ any: "any";
201
+ all: "all";
202
+ }>>;
203
+ }, z.core.$strip>>;
204
+ zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
205
+ crossing: z.ZodOptional<z.ZodEnum<{
206
+ any: "any";
207
+ enter: "enter";
208
+ exit: "exit";
209
+ }>>;
210
+ labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
211
+ identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
212
+ plates: z.ZodOptional<z.ZodObject<{
213
+ values: z.ZodArray<z.ZodString>;
214
+ maxDistance: z.ZodDefault<z.ZodNumber>;
215
+ }, z.core.$strip>>;
216
+ identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
217
+ minImportance: z.ZodOptional<z.ZodNumber>;
218
+ minDwellSeconds: z.ZodOptional<z.ZodNumber>;
219
+ source: z.ZodOptional<z.ZodEnum<{
220
+ sensor: "sensor";
221
+ audio: "audio";
222
+ any: "any";
223
+ pipeline: "pipeline";
224
+ onboard: "onboard";
225
+ }>>;
226
+ minLabelConfidence: z.ZodOptional<z.ZodNumber>;
227
+ eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
228
+ sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
229
+ packagePhase: z.ZodOptional<z.ZodEnum<{
230
+ both: "both";
231
+ delivered: "delivered";
232
+ "picked-up": "picked-up";
233
+ }>>;
234
+ customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
235
+ kind: z.ZodLiteral<"polygon">;
236
+ points: z.ZodArray<z.ZodObject<{
237
+ x: z.ZodNumber;
238
+ y: z.ZodNumber;
239
+ }, z.core.$strip>>;
240
+ }, z.core.$strip>>>;
241
+ occupancy: z.ZodOptional<z.ZodObject<{
242
+ zoneId: z.ZodOptional<z.ZodString>;
243
+ className: z.ZodOptional<z.ZodString>;
244
+ op: z.ZodDefault<z.ZodEnum<{
245
+ "<=": "<=";
246
+ ">=": ">=";
247
+ "became-occupied": "became-occupied";
248
+ "became-free": "became-free";
249
+ }>>;
250
+ count: z.ZodDefault<z.ZodNumber>;
251
+ sustainSeconds: z.ZodDefault<z.ZodNumber>;
252
+ }, z.core.$strip>>;
253
+ }, z.core.$strip>>;
254
+ fallbackText: z.ZodDefault<z.ZodString>;
255
+ }, z.core.$strip>>;
256
+ }, z.core.$strip>;
257
+ export type OsdSlotView = z.infer<typeof OsdSlotViewSchema>;
258
+ /**
259
+ * What happened to one slot on one render pass. `unchanged` exists so the
260
+ * operator can tell "we are driving this and the value is steady" from
261
+ * "we never got there" — and so the loop can prove it is not rewriting
262
+ * identical text to the camera every tick.
263
+ */
264
+ export declare const OsdRenderOutcomeEnum: z.ZodEnum<{
265
+ failed: "failed";
266
+ disabled: "disabled";
267
+ written: "written";
268
+ unchanged: "unchanged";
269
+ gated: "gated";
270
+ unreadable: "unreadable";
271
+ unbound: "unbound";
272
+ }>;
273
+ export type OsdRenderOutcome = z.infer<typeof OsdRenderOutcomeEnum>;
274
+ export declare const OsdRenderResultSchema: z.ZodObject<{
275
+ slotId: z.ZodString;
276
+ outcome: z.ZodEnum<{
277
+ failed: "failed";
278
+ disabled: "disabled";
279
+ written: "written";
280
+ unchanged: "unchanged";
281
+ gated: "gated";
282
+ unreadable: "unreadable";
283
+ unbound: "unbound";
284
+ }>;
285
+ text: z.ZodString;
286
+ reason: z.ZodOptional<z.ZodString>;
287
+ }, z.core.$strip>;
288
+ export type OsdRenderResult = z.infer<typeof OsdRenderResultSchema>;
289
+ export declare const OsdSourceValueTypeEnum: z.ZodEnum<{
290
+ string: "string";
291
+ number: "number";
292
+ boolean: "boolean";
293
+ enum: "enum";
294
+ }>;
295
+ export type OsdSourceValueType = z.infer<typeof OsdSourceValueTypeEnum>;
296
+ /**
297
+ * One bindable value, derived from a cap's `runtimeState` schema — never
298
+ * hand-listed. The editor renders from this, so a cap that ships a new
299
+ * state field becomes bindable with no UI change.
300
+ */
301
+ export declare const OsdSourceOptionSchema: z.ZodObject<{
302
+ deviceId: z.ZodNumber;
303
+ deviceName: z.ZodString;
304
+ capName: z.ZodString;
305
+ valuePath: z.ZodString;
306
+ label: z.ZodString;
307
+ valueType: z.ZodEnum<{
308
+ string: "string";
309
+ number: "number";
310
+ boolean: "boolean";
311
+ enum: "enum";
312
+ }>;
313
+ enumValues: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
314
+ }, z.core.$strip>;
315
+ export type OsdSourceOption = z.infer<typeof OsdSourceOptionSchema>;
316
+ export declare const osdManagerCapability: {
317
+ readonly name: "osd-manager";
318
+ readonly scope: "system";
319
+ readonly mode: "singleton";
320
+ readonly methods: {
321
+ /**
322
+ * The camera's slots, each with its binding. `supported: false` when
323
+ * the camera publishes no `osd` cap — the page then says so instead
324
+ * of rendering an empty list that reads as "no overlays configured".
325
+ */
326
+ readonly getDeviceOsd: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
327
+ deviceId: z.ZodNumber;
328
+ }, z.core.$strip>, z.ZodObject<{
329
+ supported: z.ZodBoolean;
330
+ slots: z.ZodArray<z.ZodObject<{
331
+ slotId: z.ZodString;
332
+ kind: z.ZodEnum<{
333
+ timestamp: "timestamp";
334
+ text: "text";
335
+ watermark: "watermark";
336
+ }>;
337
+ readOnly: z.ZodBoolean;
338
+ cameraEnabled: z.ZodBoolean;
339
+ cameraText: z.ZodOptional<z.ZodString>;
340
+ binding: z.ZodNullable<z.ZodObject<{
341
+ enabled: z.ZodDefault<z.ZodBoolean>;
342
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
343
+ kind: z.ZodLiteral<"static">;
344
+ text: z.ZodString;
345
+ }, z.core.$strip>, z.ZodObject<{
346
+ kind: z.ZodLiteral<"clock">;
347
+ pattern: z.ZodDefault<z.ZodString>;
348
+ timezone: z.ZodOptional<z.ZodString>;
349
+ }, z.core.$strip>, z.ZodObject<{
350
+ kind: z.ZodLiteral<"device-state">;
351
+ deviceId: z.ZodOptional<z.ZodNumber>;
352
+ capName: z.ZodString;
353
+ valuePath: z.ZodString;
354
+ }, z.core.$strip>], "kind">;
355
+ template: z.ZodDefault<z.ZodString>;
356
+ maxCharacters: z.ZodOptional<z.ZodNumber>;
357
+ maxDecimals: z.ZodDefault<z.ZodNumber>;
358
+ unitLabel: z.ZodOptional<z.ZodString>;
359
+ valueMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
360
+ schedule: z.ZodOptional<z.ZodObject<{
361
+ windows: z.ZodArray<z.ZodObject<{
362
+ days: z.ZodArray<z.ZodNumber>;
363
+ startMinute: z.ZodNumber;
364
+ endMinute: z.ZodNumber;
365
+ }, z.core.$strip>>;
366
+ timezone: z.ZodOptional<z.ZodString>;
367
+ invert: z.ZodOptional<z.ZodBoolean>;
368
+ }, z.core.$strip>>;
369
+ conditions: z.ZodOptional<z.ZodObject<{
370
+ deviceState: z.ZodOptional<z.ZodObject<{
371
+ deviceId: z.ZodNumber;
372
+ states: z.ZodArray<z.ZodString>;
373
+ }, z.core.$strip>>;
374
+ devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
375
+ classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
376
+ classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
377
+ minConfidence: z.ZodOptional<z.ZodNumber>;
378
+ zones: z.ZodOptional<z.ZodObject<{
379
+ ids: z.ZodArray<z.ZodString>;
380
+ match: z.ZodDefault<z.ZodEnum<{
381
+ any: "any";
382
+ all: "all";
383
+ }>>;
384
+ }, z.core.$strip>>;
385
+ zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
386
+ crossing: z.ZodOptional<z.ZodEnum<{
387
+ any: "any";
388
+ enter: "enter";
389
+ exit: "exit";
390
+ }>>;
391
+ labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
392
+ identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
393
+ plates: z.ZodOptional<z.ZodObject<{
394
+ values: z.ZodArray<z.ZodString>;
395
+ maxDistance: z.ZodDefault<z.ZodNumber>;
396
+ }, z.core.$strip>>;
397
+ identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
398
+ minImportance: z.ZodOptional<z.ZodNumber>;
399
+ minDwellSeconds: z.ZodOptional<z.ZodNumber>;
400
+ source: z.ZodOptional<z.ZodEnum<{
401
+ sensor: "sensor";
402
+ audio: "audio";
403
+ any: "any";
404
+ pipeline: "pipeline";
405
+ onboard: "onboard";
406
+ }>>;
407
+ minLabelConfidence: z.ZodOptional<z.ZodNumber>;
408
+ eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
409
+ sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
410
+ packagePhase: z.ZodOptional<z.ZodEnum<{
411
+ both: "both";
412
+ delivered: "delivered";
413
+ "picked-up": "picked-up";
414
+ }>>;
415
+ customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
416
+ kind: z.ZodLiteral<"polygon">;
417
+ points: z.ZodArray<z.ZodObject<{
418
+ x: z.ZodNumber;
419
+ y: z.ZodNumber;
420
+ }, z.core.$strip>>;
421
+ }, z.core.$strip>>>;
422
+ occupancy: z.ZodOptional<z.ZodObject<{
423
+ zoneId: z.ZodOptional<z.ZodString>;
424
+ className: z.ZodOptional<z.ZodString>;
425
+ op: z.ZodDefault<z.ZodEnum<{
426
+ "<=": "<=";
427
+ ">=": ">=";
428
+ "became-occupied": "became-occupied";
429
+ "became-free": "became-free";
430
+ }>>;
431
+ count: z.ZodDefault<z.ZodNumber>;
432
+ sustainSeconds: z.ZodDefault<z.ZodNumber>;
433
+ }, z.core.$strip>>;
434
+ }, z.core.$strip>>;
435
+ fallbackText: z.ZodDefault<z.ZodString>;
436
+ }, z.core.$strip>>;
437
+ }, z.core.$strip>>;
438
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
439
+ /**
440
+ * Every value bindable on this camera: its own state leaves first,
441
+ * then every other device's. Derived from the cap definitions, so it
442
+ * cannot drift from what the resolver can actually read.
443
+ */
444
+ readonly getSourceCatalog: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
445
+ deviceId: z.ZodNumber;
446
+ }, z.core.$strip>, z.ZodObject<{
447
+ sources: z.ZodArray<z.ZodObject<{
448
+ deviceId: z.ZodNumber;
449
+ deviceName: z.ZodString;
450
+ capName: z.ZodString;
451
+ valuePath: z.ZodString;
452
+ label: z.ZodString;
453
+ valueType: z.ZodEnum<{
454
+ string: "string";
455
+ number: "number";
456
+ boolean: "boolean";
457
+ enum: "enum";
458
+ }>;
459
+ enumValues: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
460
+ }, z.core.$strip>>;
461
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
462
+ /**
463
+ * The condition ids this gate can answer, alongside the FULL notification
464
+ * condition catalog. Both, in one call, on purpose: an editor that showed
465
+ * the catalog without the supported set would offer conditions that
466
+ * `setSlotBinding` then rejects.
467
+ */
468
+ readonly getConditionSupport: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
469
+ supported: z.ZodArray<z.ZodString>;
470
+ catalog: z.ZodArray<z.ZodObject<{
471
+ id: z.ZodString;
472
+ group: z.ZodEnum<{
473
+ device: "device";
474
+ label: "label";
475
+ scope: "scope";
476
+ class: "class";
477
+ zones: "zones";
478
+ schedule: "schedule";
479
+ package: "package";
480
+ occupancy: "occupancy";
481
+ quality: "quality";
482
+ }>;
483
+ label: z.ZodString;
484
+ valueType: z.ZodEnum<{
485
+ number: "number";
486
+ deviceState: "deviceState";
487
+ schedule: "schedule";
488
+ packagePhase: "packagePhase";
489
+ occupancy: "occupancy";
490
+ deviceIdList: "deviceIdList";
491
+ stringList: "stringList";
492
+ number01: "number01";
493
+ sourceSelect: "sourceSelect";
494
+ zoneSelection: "zoneSelection";
495
+ zoneIdList: "zoneIdList";
496
+ plateMatcher: "plateMatcher";
497
+ crossingSelect: "crossingSelect";
498
+ polygonDraw: "polygonDraw";
499
+ }>;
500
+ operator: z.ZodEnum<{
501
+ in: "in";
502
+ notIn: "notIn";
503
+ anyOf: "anyOf";
504
+ allOf: "allOf";
505
+ gte: "gte";
506
+ fuzzyIn: "fuzzyIn";
507
+ withinSchedule: "withinSchedule";
508
+ }>;
509
+ appliesTo: z.ZodArray<z.ZodEnum<{
510
+ "device-event": "device-event";
511
+ immediate: "immediate";
512
+ "track-end": "track-end";
513
+ "package-event": "package-event";
514
+ }>>;
515
+ phase: z.ZodString;
516
+ description: z.ZodOptional<z.ZodString>;
517
+ options: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
518
+ value: z.ZodString;
519
+ label: z.ZodString;
520
+ hint: z.ZodOptional<z.ZodString>;
521
+ }, z.core.$strip>>>>;
522
+ }, z.core.$strip>>;
523
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
524
+ /**
525
+ * Persist a binding and render it immediately, returning the slot as
526
+ * it now stands. Throws when the binding names an unsupported
527
+ * condition, an unknown cap, or a value path that cap does not have.
528
+ */
529
+ readonly setSlotBinding: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
530
+ deviceId: z.ZodNumber;
531
+ slotId: z.ZodString;
532
+ binding: z.ZodObject<{
533
+ enabled: z.ZodDefault<z.ZodBoolean>;
534
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
535
+ kind: z.ZodLiteral<"static">;
536
+ text: z.ZodString;
537
+ }, z.core.$strip>, z.ZodObject<{
538
+ kind: z.ZodLiteral<"clock">;
539
+ pattern: z.ZodDefault<z.ZodString>;
540
+ timezone: z.ZodOptional<z.ZodString>;
541
+ }, z.core.$strip>, z.ZodObject<{
542
+ kind: z.ZodLiteral<"device-state">;
543
+ deviceId: z.ZodOptional<z.ZodNumber>;
544
+ capName: z.ZodString;
545
+ valuePath: z.ZodString;
546
+ }, z.core.$strip>], "kind">;
547
+ template: z.ZodDefault<z.ZodString>;
548
+ maxCharacters: z.ZodOptional<z.ZodNumber>;
549
+ maxDecimals: z.ZodDefault<z.ZodNumber>;
550
+ unitLabel: z.ZodOptional<z.ZodString>;
551
+ valueMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
552
+ schedule: z.ZodOptional<z.ZodObject<{
553
+ windows: z.ZodArray<z.ZodObject<{
554
+ days: z.ZodArray<z.ZodNumber>;
555
+ startMinute: z.ZodNumber;
556
+ endMinute: z.ZodNumber;
557
+ }, z.core.$strip>>;
558
+ timezone: z.ZodOptional<z.ZodString>;
559
+ invert: z.ZodOptional<z.ZodBoolean>;
560
+ }, z.core.$strip>>;
561
+ conditions: z.ZodOptional<z.ZodObject<{
562
+ deviceState: z.ZodOptional<z.ZodObject<{
563
+ deviceId: z.ZodNumber;
564
+ states: z.ZodArray<z.ZodString>;
565
+ }, z.core.$strip>>;
566
+ devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
567
+ classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
568
+ classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
569
+ minConfidence: z.ZodOptional<z.ZodNumber>;
570
+ zones: z.ZodOptional<z.ZodObject<{
571
+ ids: z.ZodArray<z.ZodString>;
572
+ match: z.ZodDefault<z.ZodEnum<{
573
+ any: "any";
574
+ all: "all";
575
+ }>>;
576
+ }, z.core.$strip>>;
577
+ zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
578
+ crossing: z.ZodOptional<z.ZodEnum<{
579
+ any: "any";
580
+ enter: "enter";
581
+ exit: "exit";
582
+ }>>;
583
+ labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
584
+ identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
585
+ plates: z.ZodOptional<z.ZodObject<{
586
+ values: z.ZodArray<z.ZodString>;
587
+ maxDistance: z.ZodDefault<z.ZodNumber>;
588
+ }, z.core.$strip>>;
589
+ identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
590
+ minImportance: z.ZodOptional<z.ZodNumber>;
591
+ minDwellSeconds: z.ZodOptional<z.ZodNumber>;
592
+ source: z.ZodOptional<z.ZodEnum<{
593
+ sensor: "sensor";
594
+ audio: "audio";
595
+ any: "any";
596
+ pipeline: "pipeline";
597
+ onboard: "onboard";
598
+ }>>;
599
+ minLabelConfidence: z.ZodOptional<z.ZodNumber>;
600
+ eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
601
+ sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
602
+ packagePhase: z.ZodOptional<z.ZodEnum<{
603
+ both: "both";
604
+ delivered: "delivered";
605
+ "picked-up": "picked-up";
606
+ }>>;
607
+ customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
608
+ kind: z.ZodLiteral<"polygon">;
609
+ points: z.ZodArray<z.ZodObject<{
610
+ x: z.ZodNumber;
611
+ y: z.ZodNumber;
612
+ }, z.core.$strip>>;
613
+ }, z.core.$strip>>>;
614
+ occupancy: z.ZodOptional<z.ZodObject<{
615
+ zoneId: z.ZodOptional<z.ZodString>;
616
+ className: z.ZodOptional<z.ZodString>;
617
+ op: z.ZodDefault<z.ZodEnum<{
618
+ "<=": "<=";
619
+ ">=": ">=";
620
+ "became-occupied": "became-occupied";
621
+ "became-free": "became-free";
622
+ }>>;
623
+ count: z.ZodDefault<z.ZodNumber>;
624
+ sustainSeconds: z.ZodDefault<z.ZodNumber>;
625
+ }, z.core.$strip>>;
626
+ }, z.core.$strip>>;
627
+ fallbackText: z.ZodDefault<z.ZodString>;
628
+ }, z.core.$strip>;
629
+ }, z.core.$strip>, z.ZodObject<{
630
+ slot: z.ZodObject<{
631
+ slotId: z.ZodString;
632
+ kind: z.ZodEnum<{
633
+ timestamp: "timestamp";
634
+ text: "text";
635
+ watermark: "watermark";
636
+ }>;
637
+ readOnly: z.ZodBoolean;
638
+ cameraEnabled: z.ZodBoolean;
639
+ cameraText: z.ZodOptional<z.ZodString>;
640
+ binding: z.ZodNullable<z.ZodObject<{
641
+ enabled: z.ZodDefault<z.ZodBoolean>;
642
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
643
+ kind: z.ZodLiteral<"static">;
644
+ text: z.ZodString;
645
+ }, z.core.$strip>, z.ZodObject<{
646
+ kind: z.ZodLiteral<"clock">;
647
+ pattern: z.ZodDefault<z.ZodString>;
648
+ timezone: z.ZodOptional<z.ZodString>;
649
+ }, z.core.$strip>, z.ZodObject<{
650
+ kind: z.ZodLiteral<"device-state">;
651
+ deviceId: z.ZodOptional<z.ZodNumber>;
652
+ capName: z.ZodString;
653
+ valuePath: z.ZodString;
654
+ }, z.core.$strip>], "kind">;
655
+ template: z.ZodDefault<z.ZodString>;
656
+ maxCharacters: z.ZodOptional<z.ZodNumber>;
657
+ maxDecimals: z.ZodDefault<z.ZodNumber>;
658
+ unitLabel: z.ZodOptional<z.ZodString>;
659
+ valueMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
660
+ schedule: z.ZodOptional<z.ZodObject<{
661
+ windows: z.ZodArray<z.ZodObject<{
662
+ days: z.ZodArray<z.ZodNumber>;
663
+ startMinute: z.ZodNumber;
664
+ endMinute: z.ZodNumber;
665
+ }, z.core.$strip>>;
666
+ timezone: z.ZodOptional<z.ZodString>;
667
+ invert: z.ZodOptional<z.ZodBoolean>;
668
+ }, z.core.$strip>>;
669
+ conditions: z.ZodOptional<z.ZodObject<{
670
+ deviceState: z.ZodOptional<z.ZodObject<{
671
+ deviceId: z.ZodNumber;
672
+ states: z.ZodArray<z.ZodString>;
673
+ }, z.core.$strip>>;
674
+ devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
675
+ classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
676
+ classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
677
+ minConfidence: z.ZodOptional<z.ZodNumber>;
678
+ zones: z.ZodOptional<z.ZodObject<{
679
+ ids: z.ZodArray<z.ZodString>;
680
+ match: z.ZodDefault<z.ZodEnum<{
681
+ any: "any";
682
+ all: "all";
683
+ }>>;
684
+ }, z.core.$strip>>;
685
+ zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
686
+ crossing: z.ZodOptional<z.ZodEnum<{
687
+ any: "any";
688
+ enter: "enter";
689
+ exit: "exit";
690
+ }>>;
691
+ labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
692
+ identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
693
+ plates: z.ZodOptional<z.ZodObject<{
694
+ values: z.ZodArray<z.ZodString>;
695
+ maxDistance: z.ZodDefault<z.ZodNumber>;
696
+ }, z.core.$strip>>;
697
+ identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
698
+ minImportance: z.ZodOptional<z.ZodNumber>;
699
+ minDwellSeconds: z.ZodOptional<z.ZodNumber>;
700
+ source: z.ZodOptional<z.ZodEnum<{
701
+ sensor: "sensor";
702
+ audio: "audio";
703
+ any: "any";
704
+ pipeline: "pipeline";
705
+ onboard: "onboard";
706
+ }>>;
707
+ minLabelConfidence: z.ZodOptional<z.ZodNumber>;
708
+ eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
709
+ sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
710
+ packagePhase: z.ZodOptional<z.ZodEnum<{
711
+ both: "both";
712
+ delivered: "delivered";
713
+ "picked-up": "picked-up";
714
+ }>>;
715
+ customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
716
+ kind: z.ZodLiteral<"polygon">;
717
+ points: z.ZodArray<z.ZodObject<{
718
+ x: z.ZodNumber;
719
+ y: z.ZodNumber;
720
+ }, z.core.$strip>>;
721
+ }, z.core.$strip>>>;
722
+ occupancy: z.ZodOptional<z.ZodObject<{
723
+ zoneId: z.ZodOptional<z.ZodString>;
724
+ className: z.ZodOptional<z.ZodString>;
725
+ op: z.ZodDefault<z.ZodEnum<{
726
+ "<=": "<=";
727
+ ">=": ">=";
728
+ "became-occupied": "became-occupied";
729
+ "became-free": "became-free";
730
+ }>>;
731
+ count: z.ZodDefault<z.ZodNumber>;
732
+ sustainSeconds: z.ZodDefault<z.ZodNumber>;
733
+ }, z.core.$strip>>;
734
+ }, z.core.$strip>>;
735
+ fallbackText: z.ZodDefault<z.ZodString>;
736
+ }, z.core.$strip>>;
737
+ }, z.core.$strip>;
738
+ render: z.ZodObject<{
739
+ slotId: z.ZodString;
740
+ outcome: z.ZodEnum<{
741
+ failed: "failed";
742
+ disabled: "disabled";
743
+ written: "written";
744
+ unchanged: "unchanged";
745
+ gated: "gated";
746
+ unreadable: "unreadable";
747
+ unbound: "unbound";
748
+ }>;
749
+ text: z.ZodString;
750
+ reason: z.ZodOptional<z.ZodString>;
751
+ }, z.core.$strip>;
752
+ }, z.core.$strip>, "mutation">;
753
+ /** Forget the binding. The slot keeps whatever text it last carried. */
754
+ readonly clearSlotBinding: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
755
+ deviceId: z.ZodNumber;
756
+ slotId: z.ZodString;
757
+ }, z.core.$strip>, z.ZodObject<{
758
+ success: z.ZodLiteral<true>;
759
+ }, z.core.$strip>, "mutation">;
760
+ /**
761
+ * Render without writing. `binding` overrides the stored one so an
762
+ * editor can preview an unsaved change. Mutation kind only to carry
763
+ * the binding object safely; no side effects.
764
+ */
765
+ readonly previewSlot: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
766
+ deviceId: z.ZodNumber;
767
+ slotId: z.ZodString;
768
+ binding: z.ZodOptional<z.ZodObject<{
769
+ enabled: z.ZodDefault<z.ZodBoolean>;
770
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
771
+ kind: z.ZodLiteral<"static">;
772
+ text: z.ZodString;
773
+ }, z.core.$strip>, z.ZodObject<{
774
+ kind: z.ZodLiteral<"clock">;
775
+ pattern: z.ZodDefault<z.ZodString>;
776
+ timezone: z.ZodOptional<z.ZodString>;
777
+ }, z.core.$strip>, z.ZodObject<{
778
+ kind: z.ZodLiteral<"device-state">;
779
+ deviceId: z.ZodOptional<z.ZodNumber>;
780
+ capName: z.ZodString;
781
+ valuePath: z.ZodString;
782
+ }, z.core.$strip>], "kind">;
783
+ template: z.ZodDefault<z.ZodString>;
784
+ maxCharacters: z.ZodOptional<z.ZodNumber>;
785
+ maxDecimals: z.ZodDefault<z.ZodNumber>;
786
+ unitLabel: z.ZodOptional<z.ZodString>;
787
+ valueMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
788
+ schedule: z.ZodOptional<z.ZodObject<{
789
+ windows: z.ZodArray<z.ZodObject<{
790
+ days: z.ZodArray<z.ZodNumber>;
791
+ startMinute: z.ZodNumber;
792
+ endMinute: z.ZodNumber;
793
+ }, z.core.$strip>>;
794
+ timezone: z.ZodOptional<z.ZodString>;
795
+ invert: z.ZodOptional<z.ZodBoolean>;
796
+ }, z.core.$strip>>;
797
+ conditions: z.ZodOptional<z.ZodObject<{
798
+ deviceState: z.ZodOptional<z.ZodObject<{
799
+ deviceId: z.ZodNumber;
800
+ states: z.ZodArray<z.ZodString>;
801
+ }, z.core.$strip>>;
802
+ devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
803
+ classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
804
+ classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
805
+ minConfidence: z.ZodOptional<z.ZodNumber>;
806
+ zones: z.ZodOptional<z.ZodObject<{
807
+ ids: z.ZodArray<z.ZodString>;
808
+ match: z.ZodDefault<z.ZodEnum<{
809
+ any: "any";
810
+ all: "all";
811
+ }>>;
812
+ }, z.core.$strip>>;
813
+ zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
814
+ crossing: z.ZodOptional<z.ZodEnum<{
815
+ any: "any";
816
+ enter: "enter";
817
+ exit: "exit";
818
+ }>>;
819
+ labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
820
+ identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
821
+ plates: z.ZodOptional<z.ZodObject<{
822
+ values: z.ZodArray<z.ZodString>;
823
+ maxDistance: z.ZodDefault<z.ZodNumber>;
824
+ }, z.core.$strip>>;
825
+ identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
826
+ minImportance: z.ZodOptional<z.ZodNumber>;
827
+ minDwellSeconds: z.ZodOptional<z.ZodNumber>;
828
+ source: z.ZodOptional<z.ZodEnum<{
829
+ sensor: "sensor";
830
+ audio: "audio";
831
+ any: "any";
832
+ pipeline: "pipeline";
833
+ onboard: "onboard";
834
+ }>>;
835
+ minLabelConfidence: z.ZodOptional<z.ZodNumber>;
836
+ eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
837
+ sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
838
+ packagePhase: z.ZodOptional<z.ZodEnum<{
839
+ both: "both";
840
+ delivered: "delivered";
841
+ "picked-up": "picked-up";
842
+ }>>;
843
+ customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
844
+ kind: z.ZodLiteral<"polygon">;
845
+ points: z.ZodArray<z.ZodObject<{
846
+ x: z.ZodNumber;
847
+ y: z.ZodNumber;
848
+ }, z.core.$strip>>;
849
+ }, z.core.$strip>>>;
850
+ occupancy: z.ZodOptional<z.ZodObject<{
851
+ zoneId: z.ZodOptional<z.ZodString>;
852
+ className: z.ZodOptional<z.ZodString>;
853
+ op: z.ZodDefault<z.ZodEnum<{
854
+ "<=": "<=";
855
+ ">=": ">=";
856
+ "became-occupied": "became-occupied";
857
+ "became-free": "became-free";
858
+ }>>;
859
+ count: z.ZodDefault<z.ZodNumber>;
860
+ sustainSeconds: z.ZodDefault<z.ZodNumber>;
861
+ }, z.core.$strip>>;
862
+ }, z.core.$strip>>;
863
+ fallbackText: z.ZodDefault<z.ZodString>;
864
+ }, z.core.$strip>>;
865
+ }, z.core.$strip>, z.ZodObject<{
866
+ slotId: z.ZodString;
867
+ outcome: z.ZodEnum<{
868
+ failed: "failed";
869
+ disabled: "disabled";
870
+ written: "written";
871
+ unchanged: "unchanged";
872
+ gated: "gated";
873
+ unreadable: "unreadable";
874
+ unbound: "unbound";
875
+ }>;
876
+ text: z.ZodString;
877
+ reason: z.ZodOptional<z.ZodString>;
878
+ }, z.core.$strip>, "mutation">;
879
+ /** Force a render pass over one camera now, instead of at the next tick. */
880
+ readonly renderDevice: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
881
+ deviceId: z.ZodNumber;
882
+ }, z.core.$strip>, z.ZodObject<{
883
+ results: z.ZodArray<z.ZodObject<{
884
+ slotId: z.ZodString;
885
+ outcome: z.ZodEnum<{
886
+ failed: "failed";
887
+ disabled: "disabled";
888
+ written: "written";
889
+ unchanged: "unchanged";
890
+ gated: "gated";
891
+ unreadable: "unreadable";
892
+ unbound: "unbound";
893
+ }>;
894
+ text: z.ZodString;
895
+ reason: z.ZodOptional<z.ZodString>;
896
+ }, z.core.$strip>>;
897
+ }, z.core.$strip>, "mutation">;
898
+ };
899
+ };
900
+ export type IOsdManagerProvider = InferProvider<typeof osdManagerCapability>;