@camstack/types 1.2.255 → 1.2.257

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.
@@ -74,6 +74,9 @@ export declare const NcSystemEventKindSchema: z.ZodEnum<{
74
74
  "device-battery-normal": "device-battery-normal";
75
75
  "device-consumable-low": "device-consumable-low";
76
76
  "device-consumable-normal": "device-consumable-normal";
77
+ "device-tank-low": "device-tank-low";
78
+ "device-tank-full": "device-tank-full";
79
+ "device-tank-normal": "device-tank-normal";
77
80
  "stream-online": "stream-online";
78
81
  "stream-offline": "stream-offline";
79
82
  "node-online": "node-online";
@@ -132,6 +135,27 @@ export declare const NC_ALARM_SYSTEM_EVENT_KINDS: readonly NcSystemEventKind[];
132
135
  * catalog parity spec.
133
136
  */
134
137
  export declare const NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS: readonly NcSystemEventKind[];
138
+ /**
139
+ * The two kinds a RULE's consumable threshold speaks about (D642). Named once:
140
+ * the filter scoping (`systemEventFilterApplies`), the hub's threshold census
141
+ * and both editors read it.
142
+ */
143
+ export declare const NC_CONSUMABLE_SYSTEM_EVENT_KINDS: readonly NcSystemEventKind[];
144
+ /** A vacuum's tank alerts (D642) — raised on the provider's own verdict. */
145
+ export declare const NC_TANK_SYSTEM_EVENT_KINDS: readonly NcSystemEventKind[];
146
+ /**
147
+ * The consumable threshold a rule that does not state one judges at (D642).
148
+ * The operator's number ("default 15 %, configurable on the rule"), and the
149
+ * value the cluster-wide setting it replaces shipped with.
150
+ */
151
+ export declare const NC_CONSUMABLE_LOW_PERCENT_DEFAULT = 15;
152
+ /**
153
+ * The highest consumable threshold a rule may state (D642 review M1): 100 minus
154
+ * the band's 5-point recovery hysteresis (`consumable-band.ts`). Above it the
155
+ * recovery point passes 100 % and an episode could never clear, even for a
156
+ * part just replaced. A spec in the notification centre pins the sum.
157
+ */
158
+ export declare const NC_CONSUMABLE_LOW_PERCENT_MAX = 95;
135
159
  /**
136
160
  * One coherent system-event condition. `kinds` is the required opt-in safety
137
161
  * gate; the remaining lists are optional narrowing filters relevant to the
@@ -147,6 +171,9 @@ export declare const NcSystemEventConditionSchema: z.ZodObject<{
147
171
  "device-battery-normal": "device-battery-normal";
148
172
  "device-consumable-low": "device-consumable-low";
149
173
  "device-consumable-normal": "device-consumable-normal";
174
+ "device-tank-low": "device-tank-low";
175
+ "device-tank-full": "device-tank-full";
176
+ "device-tank-normal": "device-tank-normal";
150
177
  "stream-online": "stream-online";
151
178
  "stream-offline": "stream-offline";
152
179
  "node-online": "node-online";
@@ -180,8 +207,11 @@ export declare const NcSystemEventConditionSchema: z.ZodObject<{
180
207
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
181
208
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
182
209
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
210
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
183
211
  }, z.core.$strip>;
184
212
  export type NcSystemEventCondition = z.infer<typeof NcSystemEventConditionSchema>;
213
+ /** The consumable threshold a system-event condition judges at (D642). */
214
+ export declare function consumableLowPercentOf(condition: NcSystemEventCondition): number;
185
215
  /**
186
216
  * `maxPerTrack` for `immediate` rules is FIXED at 1 (D-3): a single track
187
217
  * fires an immediate rule at most once, enforced durably by the outbox
@@ -347,6 +377,20 @@ export declare const NcCrossingSchema: z.ZodEnum<{
347
377
  exit: "exit";
348
378
  }>;
349
379
  export type NcCrossing = z.infer<typeof NcCrossingSchema>;
380
+ /**
381
+ * Which edge of a BOOLEAN sensor fires a device-event rule (D640).
382
+ * - `raised` — the sensor went high: water detected, smoke, open, tampered.
383
+ * - `cleared` — it went back: dry, clear, closed.
384
+ * - absent — both edges, which is what every rule authored before this did.
385
+ *
386
+ * There is no third member for "both": absence already says it, and a value
387
+ * that means the same as absence is a second way to write one rule.
388
+ */
389
+ export declare const NcSensorTransitionSchema: z.ZodEnum<{
390
+ raised: "raised";
391
+ cleared: "cleared";
392
+ }>;
393
+ export type NcSensorTransition = z.infer<typeof NcSensorTransitionSchema>;
350
394
  /** Admin-zone membership condition (zone IDs as stamped by the ZoneEngine). */
351
395
  export declare const NcZoneConditionSchema: z.ZodObject<{
352
396
  ids: z.ZodArray<z.ZodString>;
@@ -588,6 +632,7 @@ export declare const NcConditionsSchema: z.ZodObject<{
588
632
  latched: z.ZodOptional<z.ZodBoolean>;
589
633
  }, z.core.$strip>>;
590
634
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
635
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
591
636
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
592
637
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
593
638
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -623,6 +668,10 @@ export declare const NcConditionsSchema: z.ZodObject<{
623
668
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
624
669
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
625
670
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
671
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
672
+ raised: "raised";
673
+ cleared: "cleared";
674
+ }>>;
626
675
  packagePhase: z.ZodOptional<z.ZodEnum<{
627
676
  both: "both";
628
677
  delivered: "delivered";
@@ -638,6 +687,9 @@ export declare const NcConditionsSchema: z.ZodObject<{
638
687
  "device-battery-normal": "device-battery-normal";
639
688
  "device-consumable-low": "device-consumable-low";
640
689
  "device-consumable-normal": "device-consumable-normal";
690
+ "device-tank-low": "device-tank-low";
691
+ "device-tank-full": "device-tank-full";
692
+ "device-tank-normal": "device-tank-normal";
641
693
  "stream-online": "stream-online";
642
694
  "stream-offline": "stream-offline";
643
695
  "node-online": "node-online";
@@ -671,6 +723,7 @@ export declare const NcConditionsSchema: z.ZodObject<{
671
723
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
672
724
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
673
725
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
726
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
674
727
  }, z.core.$strip>>;
675
728
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
676
729
  kind: z.ZodLiteral<"polygon">;
@@ -904,6 +957,7 @@ export declare const NcRuleInputSchema: z.ZodObject<{
904
957
  latched: z.ZodOptional<z.ZodBoolean>;
905
958
  }, z.core.$strip>>;
906
959
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
960
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
907
961
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
908
962
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
909
963
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -939,6 +993,10 @@ export declare const NcRuleInputSchema: z.ZodObject<{
939
993
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
940
994
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
941
995
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
996
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
997
+ raised: "raised";
998
+ cleared: "cleared";
999
+ }>>;
942
1000
  packagePhase: z.ZodOptional<z.ZodEnum<{
943
1001
  both: "both";
944
1002
  delivered: "delivered";
@@ -954,6 +1012,9 @@ export declare const NcRuleInputSchema: z.ZodObject<{
954
1012
  "device-battery-normal": "device-battery-normal";
955
1013
  "device-consumable-low": "device-consumable-low";
956
1014
  "device-consumable-normal": "device-consumable-normal";
1015
+ "device-tank-low": "device-tank-low";
1016
+ "device-tank-full": "device-tank-full";
1017
+ "device-tank-normal": "device-tank-normal";
957
1018
  "stream-online": "stream-online";
958
1019
  "stream-offline": "stream-offline";
959
1020
  "node-online": "node-online";
@@ -987,6 +1048,7 @@ export declare const NcRuleInputSchema: z.ZodObject<{
987
1048
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
988
1049
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
989
1050
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
1051
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
990
1052
  }, z.core.$strip>>;
991
1053
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
992
1054
  kind: z.ZodLiteral<"polygon">;
@@ -1267,6 +1329,7 @@ export declare const NcRulePatchSchema: z.ZodObject<{
1267
1329
  latched: z.ZodOptional<z.ZodBoolean>;
1268
1330
  }, z.core.$strip>>;
1269
1331
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1332
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1270
1333
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1271
1334
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
1272
1335
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -1302,6 +1365,10 @@ export declare const NcRulePatchSchema: z.ZodObject<{
1302
1365
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
1303
1366
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
1304
1367
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1368
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
1369
+ raised: "raised";
1370
+ cleared: "cleared";
1371
+ }>>;
1305
1372
  packagePhase: z.ZodOptional<z.ZodEnum<{
1306
1373
  both: "both";
1307
1374
  delivered: "delivered";
@@ -1317,6 +1384,9 @@ export declare const NcRulePatchSchema: z.ZodObject<{
1317
1384
  "device-battery-normal": "device-battery-normal";
1318
1385
  "device-consumable-low": "device-consumable-low";
1319
1386
  "device-consumable-normal": "device-consumable-normal";
1387
+ "device-tank-low": "device-tank-low";
1388
+ "device-tank-full": "device-tank-full";
1389
+ "device-tank-normal": "device-tank-normal";
1320
1390
  "stream-online": "stream-online";
1321
1391
  "stream-offline": "stream-offline";
1322
1392
  "node-online": "node-online";
@@ -1350,6 +1420,7 @@ export declare const NcRulePatchSchema: z.ZodObject<{
1350
1420
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1351
1421
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1352
1422
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
1423
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
1353
1424
  }, z.core.$strip>>;
1354
1425
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
1355
1426
  kind: z.ZodLiteral<"polygon">;
@@ -1559,6 +1630,7 @@ export declare const NcRuleUpdateInputSchema: z.ZodObject<{
1559
1630
  latched: z.ZodOptional<z.ZodBoolean>;
1560
1631
  }, z.core.$strip>>;
1561
1632
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1633
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1562
1634
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1563
1635
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
1564
1636
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -1594,6 +1666,10 @@ export declare const NcRuleUpdateInputSchema: z.ZodObject<{
1594
1666
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
1595
1667
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
1596
1668
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1669
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
1670
+ raised: "raised";
1671
+ cleared: "cleared";
1672
+ }>>;
1597
1673
  packagePhase: z.ZodOptional<z.ZodEnum<{
1598
1674
  both: "both";
1599
1675
  delivered: "delivered";
@@ -1609,6 +1685,9 @@ export declare const NcRuleUpdateInputSchema: z.ZodObject<{
1609
1685
  "device-battery-normal": "device-battery-normal";
1610
1686
  "device-consumable-low": "device-consumable-low";
1611
1687
  "device-consumable-normal": "device-consumable-normal";
1688
+ "device-tank-low": "device-tank-low";
1689
+ "device-tank-full": "device-tank-full";
1690
+ "device-tank-normal": "device-tank-normal";
1612
1691
  "stream-online": "stream-online";
1613
1692
  "stream-offline": "stream-offline";
1614
1693
  "node-online": "node-online";
@@ -1642,6 +1721,7 @@ export declare const NcRuleUpdateInputSchema: z.ZodObject<{
1642
1721
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1643
1722
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1644
1723
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
1724
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
1645
1725
  }, z.core.$strip>>;
1646
1726
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
1647
1727
  kind: z.ZodLiteral<"polygon">;
@@ -1751,6 +1831,7 @@ export declare const NcRuleSchema: z.ZodObject<{
1751
1831
  latched: z.ZodOptional<z.ZodBoolean>;
1752
1832
  }, z.core.$strip>>;
1753
1833
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1834
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1754
1835
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1755
1836
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
1756
1837
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -1786,6 +1867,10 @@ export declare const NcRuleSchema: z.ZodObject<{
1786
1867
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
1787
1868
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
1788
1869
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1870
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
1871
+ raised: "raised";
1872
+ cleared: "cleared";
1873
+ }>>;
1789
1874
  packagePhase: z.ZodOptional<z.ZodEnum<{
1790
1875
  both: "both";
1791
1876
  delivered: "delivered";
@@ -1801,6 +1886,9 @@ export declare const NcRuleSchema: z.ZodObject<{
1801
1886
  "device-battery-normal": "device-battery-normal";
1802
1887
  "device-consumable-low": "device-consumable-low";
1803
1888
  "device-consumable-normal": "device-consumable-normal";
1889
+ "device-tank-low": "device-tank-low";
1890
+ "device-tank-full": "device-tank-full";
1891
+ "device-tank-normal": "device-tank-normal";
1804
1892
  "stream-online": "stream-online";
1805
1893
  "stream-offline": "stream-offline";
1806
1894
  "node-online": "node-online";
@@ -1834,6 +1922,7 @@ export declare const NcRuleSchema: z.ZodObject<{
1834
1922
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1835
1923
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1836
1924
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
1925
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
1837
1926
  }, z.core.$strip>>;
1838
1927
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
1839
1928
  kind: z.ZodLiteral<"polygon">;
@@ -2132,6 +2221,9 @@ export declare const NcTemplateVarDescriptorSchema: z.ZodObject<{
2132
2221
  "device-battery-normal": "device-battery-normal";
2133
2222
  "device-consumable-low": "device-consumable-low";
2134
2223
  "device-consumable-normal": "device-consumable-normal";
2224
+ "device-tank-low": "device-tank-low";
2225
+ "device-tank-full": "device-tank-full";
2226
+ "device-tank-normal": "device-tank-normal";
2135
2227
  "stream-online": "stream-online";
2136
2228
  "stream-offline": "stream-offline";
2137
2229
  "node-online": "node-online";
@@ -2205,6 +2297,9 @@ export declare const NcTemplateVarContextSchema: z.ZodObject<{
2205
2297
  "device-battery-normal": "device-battery-normal";
2206
2298
  "device-consumable-low": "device-consumable-low";
2207
2299
  "device-consumable-normal": "device-consumable-normal";
2300
+ "device-tank-low": "device-tank-low";
2301
+ "device-tank-full": "device-tank-full";
2302
+ "device-tank-normal": "device-tank-normal";
2208
2303
  "stream-online": "stream-online";
2209
2304
  "stream-offline": "stream-offline";
2210
2305
  "node-online": "node-online";
@@ -2275,6 +2370,9 @@ export declare const NcTemplatePreviewInputSchema: z.ZodObject<{
2275
2370
  "device-battery-normal": "device-battery-normal";
2276
2371
  "device-consumable-low": "device-consumable-low";
2277
2372
  "device-consumable-normal": "device-consumable-normal";
2373
+ "device-tank-low": "device-tank-low";
2374
+ "device-tank-full": "device-tank-full";
2375
+ "device-tank-normal": "device-tank-normal";
2278
2376
  "stream-online": "stream-online";
2279
2377
  "stream-offline": "stream-offline";
2280
2378
  "node-online": "node-online";
@@ -2339,9 +2437,11 @@ export declare const NcConditionDescriptorSchema: z.ZodObject<{
2339
2437
  occupancy: "occupancy";
2340
2438
  deviceState: "deviceState";
2341
2439
  schedule: "schedule";
2440
+ sensorTransition: "sensorTransition";
2342
2441
  packagePhase: "packagePhase";
2343
2442
  systemEvent: "systemEvent";
2344
2443
  deviceIdList: "deviceIdList";
2444
+ deviceIdExcludeList: "deviceIdExcludeList";
2345
2445
  stringList: "stringList";
2346
2446
  number01: "number01";
2347
2447
  sourceSelect: "sourceSelect";
@@ -2425,6 +2525,9 @@ export declare const NcHistorySubjectSchema: z.ZodObject<{
2425
2525
  "device-battery-normal": "device-battery-normal";
2426
2526
  "device-consumable-low": "device-consumable-low";
2427
2527
  "device-consumable-normal": "device-consumable-normal";
2528
+ "device-tank-low": "device-tank-low";
2529
+ "device-tank-full": "device-tank-full";
2530
+ "device-tank-normal": "device-tank-normal";
2428
2531
  "stream-online": "stream-online";
2429
2532
  "stream-offline": "stream-offline";
2430
2533
  "node-online": "node-online";
@@ -2518,6 +2621,9 @@ export declare const NcHistoryEntrySchema: z.ZodObject<{
2518
2621
  "device-battery-normal": "device-battery-normal";
2519
2622
  "device-consumable-low": "device-consumable-low";
2520
2623
  "device-consumable-normal": "device-consumable-normal";
2624
+ "device-tank-low": "device-tank-low";
2625
+ "device-tank-full": "device-tank-full";
2626
+ "device-tank-normal": "device-tank-normal";
2521
2627
  "stream-online": "stream-online";
2522
2628
  "stream-offline": "stream-offline";
2523
2629
  "node-online": "node-online";
@@ -2577,6 +2683,52 @@ export declare const NcHistoryFilterSchema: z.ZodObject<{
2577
2683
  limit: z.ZodDefault<z.ZodNumber>;
2578
2684
  }, z.core.$strip>;
2579
2685
  export type NcHistoryFilter = z.infer<typeof NcHistoryFilterSchema>;
2686
+ /**
2687
+ * The newest delivery row of ONE rule — the "Last run" of a rules table.
2688
+ *
2689
+ * A projection of the same outbox rows `getHistory` returns, so it records
2690
+ * DELIVERIES only: a throttled or unmatched evaluation never produced a row
2691
+ * and is not a run here. When one fire reached several targets (several rows
2692
+ * at the same `lastAt`), `status` is the least successful of them
2693
+ * (`dead` > `pending` > `sent`): "the last run delivered" must be true for
2694
+ * every target it names.
2695
+ */
2696
+ export declare const NcRuleLastRunSchema: z.ZodObject<{
2697
+ ruleId: z.ZodString;
2698
+ lastAt: z.ZodNumber;
2699
+ status: z.ZodEnum<{
2700
+ pending: "pending";
2701
+ sent: "sent";
2702
+ dead: "dead";
2703
+ }>;
2704
+ deviceId: z.ZodNumber;
2705
+ }, z.core.$strip>;
2706
+ export type NcRuleLastRun = z.infer<typeof NcRuleLastRunSchema>;
2707
+ /**
2708
+ * Every rule's last run, in one answer.
2709
+ *
2710
+ * A rule ABSENT from `runs` produced no delivery inside `horizonMs` — how far
2711
+ * back this answer looked, in ms before the hub's now. It is the outbox prune
2712
+ * window (7 days by default, operator-configurable), NARROWED when the read hit
2713
+ * its row bound: the answer never claims a window it did not read. `null` means
2714
+ * the operator keeps the outbox forever AND the read reached its end, so absent
2715
+ * means "never on record". A UI derives its "not in the last N days" from this
2716
+ * value, never from a constant — and only when the call ANSWERED (D315).
2717
+ */
2718
+ export declare const NcRuleLastRunsSchema: z.ZodObject<{
2719
+ runs: z.ZodArray<z.ZodObject<{
2720
+ ruleId: z.ZodString;
2721
+ lastAt: z.ZodNumber;
2722
+ status: z.ZodEnum<{
2723
+ pending: "pending";
2724
+ sent: "sent";
2725
+ dead: "dead";
2726
+ }>;
2727
+ deviceId: z.ZodNumber;
2728
+ }, z.core.$strip>>;
2729
+ horizonMs: z.ZodNullable<z.ZodNumber>;
2730
+ }, z.core.$strip>;
2731
+ export type NcRuleLastRuns = z.infer<typeof NcRuleLastRunsSchema>;
2580
2732
  /**
2581
2733
  * What a snooze covers. Broader scopes win when several overlap, so one window
2582
2734
  * leaves ONE digest rather than a rule snooze and a whole-feed snooze both
@@ -2748,6 +2900,7 @@ export declare const NcAlarmModeCoverageSchema: z.ZodObject<{
2748
2900
  ruleCount: z.ZodNumber;
2749
2901
  allDevices: z.ZodBoolean;
2750
2902
  deviceIds: z.ZodArray<z.ZodNumber>;
2903
+ allDevicesExcept: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
2751
2904
  skippedDevices: z.ZodDefault<z.ZodArray<z.ZodObject<{
2752
2905
  deviceId: z.ZodNumber;
2753
2906
  reason: z.ZodEnum<{
@@ -2877,6 +3030,7 @@ export declare const NcAlarmConfigSchema: z.ZodObject<{
2877
3030
  ruleCount: z.ZodNumber;
2878
3031
  allDevices: z.ZodBoolean;
2879
3032
  deviceIds: z.ZodArray<z.ZodNumber>;
3033
+ allDevicesExcept: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
2880
3034
  skippedDevices: z.ZodDefault<z.ZodArray<z.ZodObject<{
2881
3035
  deviceId: z.ZodNumber;
2882
3036
  reason: z.ZodEnum<{
@@ -3043,6 +3197,7 @@ export declare const notificationRulesCapability: {
3043
3197
  latched: z.ZodOptional<z.ZodBoolean>;
3044
3198
  }, z.core.$strip>>;
3045
3199
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3200
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3046
3201
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
3047
3202
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
3048
3203
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -3078,6 +3233,10 @@ export declare const notificationRulesCapability: {
3078
3233
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
3079
3234
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
3080
3235
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
3236
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
3237
+ raised: "raised";
3238
+ cleared: "cleared";
3239
+ }>>;
3081
3240
  packagePhase: z.ZodOptional<z.ZodEnum<{
3082
3241
  both: "both";
3083
3242
  delivered: "delivered";
@@ -3093,6 +3252,9 @@ export declare const notificationRulesCapability: {
3093
3252
  "device-battery-normal": "device-battery-normal";
3094
3253
  "device-consumable-low": "device-consumable-low";
3095
3254
  "device-consumable-normal": "device-consumable-normal";
3255
+ "device-tank-low": "device-tank-low";
3256
+ "device-tank-full": "device-tank-full";
3257
+ "device-tank-normal": "device-tank-normal";
3096
3258
  "stream-online": "stream-online";
3097
3259
  "stream-offline": "stream-offline";
3098
3260
  "node-online": "node-online";
@@ -3126,6 +3288,7 @@ export declare const notificationRulesCapability: {
3126
3288
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3127
3289
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
3128
3290
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
3291
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
3129
3292
  }, z.core.$strip>>;
3130
3293
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
3131
3294
  kind: z.ZodLiteral<"polygon">;
@@ -3317,6 +3480,7 @@ export declare const notificationRulesCapability: {
3317
3480
  latched: z.ZodOptional<z.ZodBoolean>;
3318
3481
  }, z.core.$strip>>;
3319
3482
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3483
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3320
3484
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
3321
3485
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
3322
3486
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -3352,6 +3516,10 @@ export declare const notificationRulesCapability: {
3352
3516
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
3353
3517
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
3354
3518
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
3519
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
3520
+ raised: "raised";
3521
+ cleared: "cleared";
3522
+ }>>;
3355
3523
  packagePhase: z.ZodOptional<z.ZodEnum<{
3356
3524
  both: "both";
3357
3525
  delivered: "delivered";
@@ -3367,6 +3535,9 @@ export declare const notificationRulesCapability: {
3367
3535
  "device-battery-normal": "device-battery-normal";
3368
3536
  "device-consumable-low": "device-consumable-low";
3369
3537
  "device-consumable-normal": "device-consumable-normal";
3538
+ "device-tank-low": "device-tank-low";
3539
+ "device-tank-full": "device-tank-full";
3540
+ "device-tank-normal": "device-tank-normal";
3370
3541
  "stream-online": "stream-online";
3371
3542
  "stream-offline": "stream-offline";
3372
3543
  "node-online": "node-online";
@@ -3400,6 +3571,7 @@ export declare const notificationRulesCapability: {
3400
3571
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3401
3572
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
3402
3573
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
3574
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
3403
3575
  }, z.core.$strip>>;
3404
3576
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
3405
3577
  kind: z.ZodLiteral<"polygon">;
@@ -3589,6 +3761,7 @@ export declare const notificationRulesCapability: {
3589
3761
  latched: z.ZodOptional<z.ZodBoolean>;
3590
3762
  }, z.core.$strip>>;
3591
3763
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3764
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3592
3765
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
3593
3766
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
3594
3767
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -3624,6 +3797,10 @@ export declare const notificationRulesCapability: {
3624
3797
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
3625
3798
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
3626
3799
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
3800
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
3801
+ raised: "raised";
3802
+ cleared: "cleared";
3803
+ }>>;
3627
3804
  packagePhase: z.ZodOptional<z.ZodEnum<{
3628
3805
  both: "both";
3629
3806
  delivered: "delivered";
@@ -3639,6 +3816,9 @@ export declare const notificationRulesCapability: {
3639
3816
  "device-battery-normal": "device-battery-normal";
3640
3817
  "device-consumable-low": "device-consumable-low";
3641
3818
  "device-consumable-normal": "device-consumable-normal";
3819
+ "device-tank-low": "device-tank-low";
3820
+ "device-tank-full": "device-tank-full";
3821
+ "device-tank-normal": "device-tank-normal";
3642
3822
  "stream-online": "stream-online";
3643
3823
  "stream-offline": "stream-offline";
3644
3824
  "node-online": "node-online";
@@ -3672,6 +3852,7 @@ export declare const notificationRulesCapability: {
3672
3852
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3673
3853
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
3674
3854
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
3855
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
3675
3856
  }, z.core.$strip>>;
3676
3857
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
3677
3858
  kind: z.ZodLiteral<"polygon">;
@@ -3855,6 +4036,7 @@ export declare const notificationRulesCapability: {
3855
4036
  latched: z.ZodOptional<z.ZodBoolean>;
3856
4037
  }, z.core.$strip>>;
3857
4038
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4039
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3858
4040
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
3859
4041
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
3860
4042
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -3890,6 +4072,10 @@ export declare const notificationRulesCapability: {
3890
4072
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
3891
4073
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
3892
4074
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4075
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
4076
+ raised: "raised";
4077
+ cleared: "cleared";
4078
+ }>>;
3893
4079
  packagePhase: z.ZodOptional<z.ZodEnum<{
3894
4080
  both: "both";
3895
4081
  delivered: "delivered";
@@ -3905,6 +4091,9 @@ export declare const notificationRulesCapability: {
3905
4091
  "device-battery-normal": "device-battery-normal";
3906
4092
  "device-consumable-low": "device-consumable-low";
3907
4093
  "device-consumable-normal": "device-consumable-normal";
4094
+ "device-tank-low": "device-tank-low";
4095
+ "device-tank-full": "device-tank-full";
4096
+ "device-tank-normal": "device-tank-normal";
3908
4097
  "stream-online": "stream-online";
3909
4098
  "stream-offline": "stream-offline";
3910
4099
  "node-online": "node-online";
@@ -3938,6 +4127,7 @@ export declare const notificationRulesCapability: {
3938
4127
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3939
4128
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
3940
4129
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
4130
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
3941
4131
  }, z.core.$strip>>;
3942
4132
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
3943
4133
  kind: z.ZodLiteral<"polygon">;
@@ -4218,6 +4408,7 @@ export declare const notificationRulesCapability: {
4218
4408
  latched: z.ZodOptional<z.ZodBoolean>;
4219
4409
  }, z.core.$strip>>;
4220
4410
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4411
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4221
4412
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
4222
4413
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
4223
4414
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -4253,6 +4444,10 @@ export declare const notificationRulesCapability: {
4253
4444
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
4254
4445
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
4255
4446
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4447
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
4448
+ raised: "raised";
4449
+ cleared: "cleared";
4450
+ }>>;
4256
4451
  packagePhase: z.ZodOptional<z.ZodEnum<{
4257
4452
  both: "both";
4258
4453
  delivered: "delivered";
@@ -4268,6 +4463,9 @@ export declare const notificationRulesCapability: {
4268
4463
  "device-battery-normal": "device-battery-normal";
4269
4464
  "device-consumable-low": "device-consumable-low";
4270
4465
  "device-consumable-normal": "device-consumable-normal";
4466
+ "device-tank-low": "device-tank-low";
4467
+ "device-tank-full": "device-tank-full";
4468
+ "device-tank-normal": "device-tank-normal";
4271
4469
  "stream-online": "stream-online";
4272
4470
  "stream-offline": "stream-offline";
4273
4471
  "node-online": "node-online";
@@ -4301,6 +4499,7 @@ export declare const notificationRulesCapability: {
4301
4499
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4302
4500
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4303
4501
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
4502
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
4304
4503
  }, z.core.$strip>>;
4305
4504
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
4306
4505
  kind: z.ZodLiteral<"polygon">;
@@ -4408,6 +4607,7 @@ export declare const notificationRulesCapability: {
4408
4607
  latched: z.ZodOptional<z.ZodBoolean>;
4409
4608
  }, z.core.$strip>>;
4410
4609
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4610
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4411
4611
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
4412
4612
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
4413
4613
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -4443,6 +4643,10 @@ export declare const notificationRulesCapability: {
4443
4643
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
4444
4644
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
4445
4645
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4646
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
4647
+ raised: "raised";
4648
+ cleared: "cleared";
4649
+ }>>;
4446
4650
  packagePhase: z.ZodOptional<z.ZodEnum<{
4447
4651
  both: "both";
4448
4652
  delivered: "delivered";
@@ -4458,6 +4662,9 @@ export declare const notificationRulesCapability: {
4458
4662
  "device-battery-normal": "device-battery-normal";
4459
4663
  "device-consumable-low": "device-consumable-low";
4460
4664
  "device-consumable-normal": "device-consumable-normal";
4665
+ "device-tank-low": "device-tank-low";
4666
+ "device-tank-full": "device-tank-full";
4667
+ "device-tank-normal": "device-tank-normal";
4461
4668
  "stream-online": "stream-online";
4462
4669
  "stream-offline": "stream-offline";
4463
4670
  "node-online": "node-online";
@@ -4491,6 +4698,7 @@ export declare const notificationRulesCapability: {
4491
4698
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4492
4699
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4493
4700
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
4701
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
4494
4702
  }, z.core.$strip>>;
4495
4703
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
4496
4704
  kind: z.ZodLiteral<"polygon">;
@@ -4762,6 +4970,7 @@ export declare const notificationRulesCapability: {
4762
4970
  latched: z.ZodOptional<z.ZodBoolean>;
4763
4971
  }, z.core.$strip>>;
4764
4972
  devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4973
+ devicesExclude: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4765
4974
  classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
4766
4975
  classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
4767
4976
  minConfidence: z.ZodOptional<z.ZodNumber>;
@@ -4797,6 +5006,10 @@ export declare const notificationRulesCapability: {
4797
5006
  minLabelConfidence: z.ZodOptional<z.ZodNumber>;
4798
5007
  eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
4799
5008
  sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
5009
+ sensorTransition: z.ZodOptional<z.ZodEnum<{
5010
+ raised: "raised";
5011
+ cleared: "cleared";
5012
+ }>>;
4800
5013
  packagePhase: z.ZodOptional<z.ZodEnum<{
4801
5014
  both: "both";
4802
5015
  delivered: "delivered";
@@ -4812,6 +5025,9 @@ export declare const notificationRulesCapability: {
4812
5025
  "device-battery-normal": "device-battery-normal";
4813
5026
  "device-consumable-low": "device-consumable-low";
4814
5027
  "device-consumable-normal": "device-consumable-normal";
5028
+ "device-tank-low": "device-tank-low";
5029
+ "device-tank-full": "device-tank-full";
5030
+ "device-tank-normal": "device-tank-normal";
4815
5031
  "stream-online": "stream-online";
4816
5032
  "stream-offline": "stream-offline";
4817
5033
  "node-online": "node-online";
@@ -4845,6 +5061,7 @@ export declare const notificationRulesCapability: {
4845
5061
  excludeDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
4846
5062
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
4847
5063
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
5064
+ consumableLowPercent: z.ZodOptional<z.ZodNumber>;
4848
5065
  }, z.core.$strip>>;
4849
5066
  customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
4850
5067
  kind: z.ZodLiteral<"polygon">;
@@ -5055,9 +5272,11 @@ export declare const notificationRulesCapability: {
5055
5272
  occupancy: "occupancy";
5056
5273
  deviceState: "deviceState";
5057
5274
  schedule: "schedule";
5275
+ sensorTransition: "sensorTransition";
5058
5276
  packagePhase: "packagePhase";
5059
5277
  systemEvent: "systemEvent";
5060
5278
  deviceIdList: "deviceIdList";
5279
+ deviceIdExcludeList: "deviceIdExcludeList";
5061
5280
  stringList: "stringList";
5062
5281
  number01: "number01";
5063
5282
  sourceSelect: "sourceSelect";
@@ -5162,6 +5381,9 @@ export declare const notificationRulesCapability: {
5162
5381
  "device-battery-normal": "device-battery-normal";
5163
5382
  "device-consumable-low": "device-consumable-low";
5164
5383
  "device-consumable-normal": "device-consumable-normal";
5384
+ "device-tank-low": "device-tank-low";
5385
+ "device-tank-full": "device-tank-full";
5386
+ "device-tank-normal": "device-tank-normal";
5165
5387
  "stream-online": "stream-online";
5166
5388
  "stream-offline": "stream-offline";
5167
5389
  "node-online": "node-online";
@@ -5241,6 +5463,9 @@ export declare const notificationRulesCapability: {
5241
5463
  "device-battery-normal": "device-battery-normal";
5242
5464
  "device-consumable-low": "device-consumable-low";
5243
5465
  "device-consumable-normal": "device-consumable-normal";
5466
+ "device-tank-low": "device-tank-low";
5467
+ "device-tank-full": "device-tank-full";
5468
+ "device-tank-normal": "device-tank-normal";
5244
5469
  "stream-online": "stream-online";
5245
5470
  "stream-offline": "stream-offline";
5246
5471
  "node-online": "node-online";
@@ -5349,6 +5574,9 @@ export declare const notificationRulesCapability: {
5349
5574
  "device-battery-normal": "device-battery-normal";
5350
5575
  "device-consumable-low": "device-consumable-low";
5351
5576
  "device-consumable-normal": "device-consumable-normal";
5577
+ "device-tank-low": "device-tank-low";
5578
+ "device-tank-full": "device-tank-full";
5579
+ "device-tank-normal": "device-tank-normal";
5352
5580
  "stream-online": "stream-online";
5353
5581
  "stream-offline": "stream-offline";
5354
5582
  "node-online": "node-online";
@@ -5386,6 +5614,27 @@ export declare const notificationRulesCapability: {
5386
5614
  artifactIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
5387
5615
  }, z.core.$strip>>;
5388
5616
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
5617
+ /**
5618
+ * The newest delivery of every rule, in ONE bounded read of the outbox —
5619
+ * the "Last run" column. Never a `getHistory` per rule. A rule with no
5620
+ * delivery inside `horizonMs` is absent from `runs`; see
5621
+ * {@link NcRuleLastRunsSchema} for what absent means. A store that cannot
5622
+ * answer FAILS the call rather than answering "nothing ran". Admin-only,
5623
+ * like `getHistory`, of which it is a projection.
5624
+ */
5625
+ readonly getRuleLastRuns: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
5626
+ runs: z.ZodArray<z.ZodObject<{
5627
+ ruleId: z.ZodString;
5628
+ lastAt: z.ZodNumber;
5629
+ status: z.ZodEnum<{
5630
+ pending: "pending";
5631
+ sent: "sent";
5632
+ dead: "dead";
5633
+ }>;
5634
+ deviceId: z.ZodNumber;
5635
+ }, z.core.$strip>>;
5636
+ horizonMs: z.ZodNullable<z.ZodNumber>;
5637
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
5389
5638
  /**
5390
5639
  * Mint a fresh, externally-reachable URL for one artefact a history row
5391
5640
  * named in {@link NcHistoryEntrySchema.shape.artifactIds} — the SAME
@@ -5529,6 +5778,7 @@ export declare const notificationRulesCapability: {
5529
5778
  ruleCount: z.ZodNumber;
5530
5779
  allDevices: z.ZodBoolean;
5531
5780
  deviceIds: z.ZodArray<z.ZodNumber>;
5781
+ allDevicesExcept: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
5532
5782
  skippedDevices: z.ZodDefault<z.ZodArray<z.ZodObject<{
5533
5783
  deviceId: z.ZodNumber;
5534
5784
  reason: z.ZodEnum<{
@@ -5647,6 +5897,7 @@ export declare const notificationRulesCapability: {
5647
5897
  ruleCount: z.ZodNumber;
5648
5898
  allDevices: z.ZodBoolean;
5649
5899
  deviceIds: z.ZodArray<z.ZodNumber>;
5900
+ allDevicesExcept: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
5650
5901
  skippedDevices: z.ZodDefault<z.ZodArray<z.ZodObject<{
5651
5902
  deviceId: z.ZodNumber;
5652
5903
  reason: z.ZodEnum<{