@camstack/types 1.2.63 → 1.2.65

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.
@@ -44,6 +44,13 @@ import { type InferProvider } from './capability-definition.js';
44
44
  * `package-event` are pure trigger kinds (no urgency dimension). Extending
45
45
  * this one field keeps the schema additive — a rule still declares exactly
46
46
  * one trigger.
47
+ *
48
+ * AUDIO rules add no member here, for the reason occupancy added none: the
49
+ * enum is mirrored by hand in the viewer (`scripts/check-viewer-condition-
50
+ * mirror.ts` fails the build on a member the app cannot render) and every
51
+ * member costs a release train. A sustained-sound rule is therefore an
52
+ * `immediate` rule carrying {@link NcConditions.audio} — the condition is the
53
+ * trigger discriminator, exactly as `occupancy` is on `device-event`.
47
54
  */
48
55
  export declare const NcDeliverySchema: z.ZodEnum<{
49
56
  "device-event": "device-event";
@@ -59,16 +66,40 @@ export type NcDelivery = z.infer<typeof NcDeliverySchema>;
59
66
  * depend on a provider's raw event name or payload shape.
60
67
  */
61
68
  export declare const NcSystemEventKindSchema: z.ZodEnum<{
62
- "camera-online": "camera-online";
63
- "camera-offline": "camera-offline";
69
+ "device-online": "device-online";
70
+ "device-offline": "device-offline";
71
+ "device-disabled": "device-disabled";
72
+ "device-enabled": "device-enabled";
64
73
  "stream-online": "stream-online";
65
74
  "stream-offline": "stream-offline";
66
75
  "node-online": "node-online";
67
76
  "node-offline": "node-offline";
68
77
  "addon-update-available": "addon-update-available";
69
78
  "server-update-available": "server-update-available";
79
+ "alarm-triggered": "alarm-triggered";
80
+ "alarm-armed": "alarm-armed";
81
+ "alarm-disarmed": "alarm-disarmed";
82
+ "camera-online": "camera-online";
83
+ "camera-offline": "camera-offline";
84
+ "camera-disabled": "camera-disabled";
85
+ "camera-enabled": "camera-enabled";
70
86
  }>;
71
87
  export type NcSystemEventKind = z.infer<typeof NcSystemEventKindSchema>;
88
+ /**
89
+ * The kinds a rule may be AUTHORED with — every schema member except the
90
+ * legacy tail. Editors render THIS list; the schema still parses the tail so a
91
+ * durable row (and an unmigrated rule) survives being read.
92
+ */
93
+ export declare const NC_AUTHORABLE_SYSTEM_EVENT_KINDS: readonly NcSystemEventKind[];
94
+ /**
95
+ * The panel's three transitions, as ONE list.
96
+ *
97
+ * Named here rather than spelled out at each of the four sites that need them
98
+ * (the emitter, the intake, the editor group, the combined-notification gate),
99
+ * because a fourth transition added to the enum and forgotten at one of them is
100
+ * an alarm state nobody can be notified about.
101
+ */
102
+ export declare const NC_ALARM_SYSTEM_EVENT_KINDS: readonly NcSystemEventKind[];
72
103
  /**
73
104
  * One coherent system-event condition. `kinds` is the required opt-in safety
74
105
  * gate; the remaining lists are optional narrowing filters relevant to the
@@ -76,16 +107,26 @@ export type NcSystemEventKind = z.infer<typeof NcSystemEventKindSchema>;
76
107
  */
77
108
  export declare const NcSystemEventConditionSchema: z.ZodObject<{
78
109
  kinds: z.ZodArray<z.ZodEnum<{
79
- "camera-online": "camera-online";
80
- "camera-offline": "camera-offline";
110
+ "device-online": "device-online";
111
+ "device-offline": "device-offline";
112
+ "device-disabled": "device-disabled";
113
+ "device-enabled": "device-enabled";
81
114
  "stream-online": "stream-online";
82
115
  "stream-offline": "stream-offline";
83
116
  "node-online": "node-online";
84
117
  "node-offline": "node-offline";
85
118
  "addon-update-available": "addon-update-available";
86
119
  "server-update-available": "server-update-available";
120
+ "alarm-triggered": "alarm-triggered";
121
+ "alarm-armed": "alarm-armed";
122
+ "alarm-disarmed": "alarm-disarmed";
123
+ "camera-online": "camera-online";
124
+ "camera-offline": "camera-offline";
125
+ "camera-disabled": "camera-disabled";
126
+ "camera-enabled": "camera-enabled";
87
127
  }>>;
88
128
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
129
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
89
130
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
90
131
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
91
132
  }, z.core.$strip>;
@@ -146,6 +187,56 @@ export declare const NcOccupancyConditionSchema: z.ZodObject<{
146
187
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
147
188
  }, z.core.$strip>;
148
189
  export type NcOccupancyCondition = z.infer<typeof NcOccupancyConditionSchema>;
190
+ /**
191
+ * The dBFS floor the analyzer reports on digital silence
192
+ * (`audio-analyzer-provider.ts`: `dbfs = rms > 0 ? 20*log10(rms) : -96`).
193
+ *
194
+ * It is the lower bound of {@link NcAudioConditionSchema.shape.dbThreshold} for
195
+ * one reason worth stating out loud: **the scale is dBFS and it is
196
+ * NEGATIVE-GOING** — `0` is full scale and silence reads as a large negative
197
+ * number. An operator (or a UI) that writes `60` meaning "60 decibels, quite
198
+ * loud" would author a threshold NO sample can ever reach, and the rule would
199
+ * look broken rather than mis-configured. The schema range rejects it instead.
200
+ */
201
+ export declare const NC_AUDIO_DBFS_FLOOR = -96;
202
+ /**
203
+ * Audio condition (IMMEDIATE trigger) — a rule on SOUND, not on a picture.
204
+ *
205
+ * Operator-approved vocabulary (2026-08-12, option A — the same one the
206
+ * reference notifier uses, so an operator moving between them re-uses what
207
+ * they already know): a rule matches when, over a sampling window of
208
+ * `samplingSeconds`, at least `hitPercent`% of the audio samples in that
209
+ * window are HITS. A sample is a hit when it satisfies BOTH present filters:
210
+ *
211
+ * - `dbThreshold` — its level is at or above this many dBFS (see
212
+ * {@link NC_AUDIO_DBFS_FLOOR}: negative-going, `0` = full scale);
213
+ * - `labels` — the classifier put at least one of these labels on it.
214
+ *
215
+ * Both are OPTIONAL and independent, which is the point of the shape: a
216
+ * loudness rule ("something loud at 3am") needs no model to be right, and a
217
+ * label rule ("a dog barked") needs no threshold. **Fail-closed when NEITHER
218
+ * is given** — a window in which every sample is trivially a hit would fire on
219
+ * silence, so the engine refuses such a condition rather than notifying on
220
+ * nothing (the schema cannot express "at least one of" without becoming a
221
+ * ZodEffects the cap path would have to special-case).
222
+ *
223
+ * `hitPercent` is over the samples the window actually HOLDS, and the window
224
+ * must be FULL before it can match — a window that has been open for two
225
+ * seconds of its ten is 100% of nothing, and firing on it would make
226
+ * `samplingSeconds` decorative.
227
+ *
228
+ * Labels are the audio macro classes (`AUDIO_MACRO_LABELS` / the NC taxonomy's
229
+ * `audio-*` ids). Both spellings are accepted — the matcher normalizes the
230
+ * `audio-` prefix away on both sides, so a picker that offers taxonomy ids and
231
+ * an operator who typed `dog` mean the same thing.
232
+ */
233
+ export declare const NcAudioConditionSchema: z.ZodObject<{
234
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
235
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
236
+ hitPercent: z.ZodDefault<z.ZodNumber>;
237
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
238
+ }, z.core.$strip>;
239
+ export type NcAudioCondition = z.infer<typeof NcAudioConditionSchema>;
149
240
  /**
150
241
  * Which zone-crossing DIRECTION a rule accepts (`ObjectEvent.zoneCrossing`).
151
242
  *
@@ -387,16 +478,26 @@ export declare const NcConditionsSchema: z.ZodObject<{
387
478
  }>>;
388
479
  systemEvent: z.ZodOptional<z.ZodObject<{
389
480
  kinds: z.ZodArray<z.ZodEnum<{
390
- "camera-online": "camera-online";
391
- "camera-offline": "camera-offline";
481
+ "device-online": "device-online";
482
+ "device-offline": "device-offline";
483
+ "device-disabled": "device-disabled";
484
+ "device-enabled": "device-enabled";
392
485
  "stream-online": "stream-online";
393
486
  "stream-offline": "stream-offline";
394
487
  "node-online": "node-online";
395
488
  "node-offline": "node-offline";
396
489
  "addon-update-available": "addon-update-available";
397
490
  "server-update-available": "server-update-available";
491
+ "alarm-triggered": "alarm-triggered";
492
+ "alarm-armed": "alarm-armed";
493
+ "alarm-disarmed": "alarm-disarmed";
494
+ "camera-online": "camera-online";
495
+ "camera-offline": "camera-offline";
496
+ "camera-disabled": "camera-disabled";
497
+ "camera-enabled": "camera-enabled";
398
498
  }>>;
399
499
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
500
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
400
501
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
401
502
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
402
503
  }, z.core.$strip>>;
@@ -419,6 +520,12 @@ export declare const NcConditionsSchema: z.ZodObject<{
419
520
  count: z.ZodDefault<z.ZodNumber>;
420
521
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
421
522
  }, z.core.$strip>>;
523
+ audio: z.ZodOptional<z.ZodObject<{
524
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
525
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
526
+ hitPercent: z.ZodDefault<z.ZodNumber>;
527
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
528
+ }, z.core.$strip>>;
422
529
  }, z.core.$strip>;
423
530
  export type NcConditions = z.infer<typeof NcConditionsSchema>;
424
531
  /** One delivery target: a `notification-output` Target ref + passthrough params. */
@@ -511,6 +618,72 @@ export declare const NcThrottleSchema: z.ZodObject<{
511
618
  }>>;
512
619
  }, z.core.$strip>;
513
620
  export type NcThrottle = z.infer<typeof NcThrottleSchema>;
621
+ /**
622
+ * How long the confirm gate may hold ONE notification, and how big the picture
623
+ * it judges may be.
624
+ *
625
+ * The clamp is the product decision, not a coincidence of the model: p50 was
626
+ * 4.9 s warm and 15.3 s cold against qwen3-vl-8b, and a notification that
627
+ * arrives after the visitor has gone is not a notification. 448 px was enough
628
+ * to score 16/16 on the operator's parking scenario — bigger costs latency and
629
+ * tokens for pixels the model pools away.
630
+ */
631
+ export declare const NC_CONFIRM_MIN_TIMEOUT_MS = 1000;
632
+ export declare const NC_CONFIRM_MAX_TIMEOUT_MS = 20000;
633
+ export declare const NC_CONFIRM_DEFAULT_TIMEOUT_MS = 8000;
634
+ export declare const NC_CONFIRM_DEFAULT_MAX_IMAGE_PX = 448;
635
+ /** Comparison the model's COUNT must satisfy for the notification to fire. */
636
+ export declare const NcConfirmExpectSchema: z.ZodObject<{
637
+ op: z.ZodEnum<{
638
+ ">=": ">=";
639
+ "<=": "<=";
640
+ ">": ">";
641
+ "<": "<";
642
+ "==": "==";
643
+ }>;
644
+ count: z.ZodNumber;
645
+ }, z.core.$strip>;
646
+ export type NcConfirmExpect = z.infer<typeof NcConfirmExpectSchema>;
647
+ /**
648
+ * AI CONFIRM — a vision model looks at the picture this notification is about
649
+ * to ship and says whether it agrees with the rule.
650
+ *
651
+ * It runs AFTER the attachments resolve, deliberately: the crop JUDGED is the
652
+ * crop SHIPPED (D52). A verdict about a different pixel rectangle than the one
653
+ * on the operator's phone is not a verdict about this notification.
654
+ *
655
+ * FAIL-OPEN is the only safe default. A gate that cannot reach its model, or
656
+ * whose model is cold, must not silence a camera — so `onTimeout: 'fire'` is
657
+ * the default and every fail-open is COUNTED, because a gate that always fails
658
+ * open looks in the log exactly like a gate that works.
659
+ *
660
+ * Every field is `.optional()` rather than relied on as a Zod default at the
661
+ * runtime seam: a Zod default does NOT run on the addon→addon cap path (three
662
+ * production failures in one day), so the gate reads absent as the constant
663
+ * above rather than trusting a parse it may never have seen.
664
+ */
665
+ export declare const NcConfirmSchema: z.ZodObject<{
666
+ enabled: z.ZodDefault<z.ZodBoolean>;
667
+ profileId: z.ZodOptional<z.ZodString>;
668
+ prompt: z.ZodOptional<z.ZodString>;
669
+ expect: z.ZodOptional<z.ZodObject<{
670
+ op: z.ZodEnum<{
671
+ ">=": ">=";
672
+ "<=": "<=";
673
+ ">": ">";
674
+ "<": "<";
675
+ "==": "==";
676
+ }>;
677
+ count: z.ZodNumber;
678
+ }, z.core.$strip>>;
679
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
680
+ onTimeout: z.ZodDefault<z.ZodEnum<{
681
+ fire: "fire";
682
+ suppress: "suppress";
683
+ }>>;
684
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
685
+ }, z.core.$strip>;
686
+ export type NcConfirm = z.infer<typeof NcConfirmSchema>;
514
687
  /** Client-supplied rule fields (server stamps id/createdBy/createdAt/updatedAt). */
515
688
  export declare const NcRuleInputSchema: z.ZodObject<{
516
689
  name: z.ZodString;
@@ -570,16 +743,26 @@ export declare const NcRuleInputSchema: z.ZodObject<{
570
743
  }>>;
571
744
  systemEvent: z.ZodOptional<z.ZodObject<{
572
745
  kinds: z.ZodArray<z.ZodEnum<{
573
- "camera-online": "camera-online";
574
- "camera-offline": "camera-offline";
746
+ "device-online": "device-online";
747
+ "device-offline": "device-offline";
748
+ "device-disabled": "device-disabled";
749
+ "device-enabled": "device-enabled";
575
750
  "stream-online": "stream-online";
576
751
  "stream-offline": "stream-offline";
577
752
  "node-online": "node-online";
578
753
  "node-offline": "node-offline";
579
754
  "addon-update-available": "addon-update-available";
580
755
  "server-update-available": "server-update-available";
756
+ "alarm-triggered": "alarm-triggered";
757
+ "alarm-armed": "alarm-armed";
758
+ "alarm-disarmed": "alarm-disarmed";
759
+ "camera-online": "camera-online";
760
+ "camera-offline": "camera-offline";
761
+ "camera-disabled": "camera-disabled";
762
+ "camera-enabled": "camera-enabled";
581
763
  }>>;
582
764
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
765
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
583
766
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
584
767
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
585
768
  }, z.core.$strip>>;
@@ -602,6 +785,12 @@ export declare const NcRuleInputSchema: z.ZodObject<{
602
785
  count: z.ZodDefault<z.ZodNumber>;
603
786
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
604
787
  }, z.core.$strip>>;
788
+ audio: z.ZodOptional<z.ZodObject<{
789
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
790
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
791
+ hitPercent: z.ZodDefault<z.ZodNumber>;
792
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
793
+ }, z.core.$strip>>;
605
794
  }, z.core.$strip>>;
606
795
  schedule: z.ZodOptional<z.ZodObject<{
607
796
  windows: z.ZodArray<z.ZodObject<{
@@ -697,6 +886,27 @@ export declare const NcRuleInputSchema: z.ZodObject<{
697
886
  destructive: z.ZodOptional<z.ZodBoolean>;
698
887
  }, z.core.$strip>>>;
699
888
  }, z.core.$strip>>;
889
+ confirm: z.ZodOptional<z.ZodObject<{
890
+ enabled: z.ZodDefault<z.ZodBoolean>;
891
+ profileId: z.ZodOptional<z.ZodString>;
892
+ prompt: z.ZodOptional<z.ZodString>;
893
+ expect: z.ZodOptional<z.ZodObject<{
894
+ op: z.ZodEnum<{
895
+ ">=": ">=";
896
+ "<=": "<=";
897
+ ">": ">";
898
+ "<": "<";
899
+ "==": "==";
900
+ }>;
901
+ count: z.ZodNumber;
902
+ }, z.core.$strip>>;
903
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
904
+ onTimeout: z.ZodDefault<z.ZodEnum<{
905
+ fire: "fire";
906
+ suppress: "suppress";
907
+ }>>;
908
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
909
+ }, z.core.$strip>>;
700
910
  }, z.core.$strip>;
701
911
  export type NcRuleInput = z.infer<typeof NcRuleInputSchema>;
702
912
  /**
@@ -710,7 +920,6 @@ export type NcRuleInput = z.infer<typeof NcRuleInputSchema>;
710
920
  */
711
921
  export declare const NcRulePatchSchema: z.ZodObject<{
712
922
  name: z.ZodOptional<z.ZodString>;
713
- enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
714
923
  delivery: z.ZodOptional<z.ZodEnum<{
715
924
  "device-event": "device-event";
716
925
  immediate: "immediate";
@@ -718,7 +927,88 @@ export declare const NcRulePatchSchema: z.ZodObject<{
718
927
  "package-event": "package-event";
719
928
  "system-event": "system-event";
720
929
  }>>;
721
- conditions: z.ZodOptional<z.ZodDefault<z.ZodObject<{
930
+ schedule: z.ZodOptional<z.ZodOptional<z.ZodObject<{
931
+ windows: z.ZodArray<z.ZodObject<{
932
+ days: z.ZodArray<z.ZodNumber>;
933
+ startMinute: z.ZodNumber;
934
+ endMinute: z.ZodNumber;
935
+ }, z.core.$strip>>;
936
+ timezone: z.ZodOptional<z.ZodString>;
937
+ invert: z.ZodOptional<z.ZodBoolean>;
938
+ }, z.core.$strip>>>;
939
+ targets: z.ZodOptional<z.ZodArray<z.ZodObject<{
940
+ targetId: z.ZodString;
941
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
942
+ }, z.core.$strip>>>;
943
+ targetUsers: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
944
+ template: z.ZodOptional<z.ZodOptional<z.ZodObject<{
945
+ title: z.ZodOptional<z.ZodString>;
946
+ body: z.ZodOptional<z.ZodString>;
947
+ }, z.core.$strip>>>;
948
+ ownerUserId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
949
+ snoozeAllowGlobal: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
950
+ actions: z.ZodOptional<z.ZodOptional<z.ZodObject<{
951
+ onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
952
+ name: z.ZodString;
953
+ enabled: z.ZodBoolean;
954
+ minDelaySec: z.ZodOptional<z.ZodNumber>;
955
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
956
+ kind: z.ZodLiteral<"wait">;
957
+ seconds: z.ZodNumber;
958
+ }, z.core.$strip>, z.ZodObject<{
959
+ kind: z.ZodLiteral<"cap">;
960
+ deviceId: z.ZodNumber;
961
+ cap: z.ZodString;
962
+ method: z.ZodString;
963
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
964
+ }, z.core.$strip>], "kind">>;
965
+ }, z.core.$strip>>>;
966
+ buttons: z.ZodOptional<z.ZodArray<z.ZodObject<{
967
+ id: z.ZodString;
968
+ label: z.ZodString;
969
+ sequence: z.ZodString;
970
+ icon: z.ZodOptional<z.ZodEnum<{
971
+ light: "light";
972
+ lock: "lock";
973
+ view: "view";
974
+ arm: "arm";
975
+ disarm: "disarm";
976
+ dismiss: "dismiss";
977
+ open: "open";
978
+ close: "close";
979
+ unlock: "unlock";
980
+ play: "play";
981
+ acknowledge: "acknowledge";
982
+ silence: "silence";
983
+ alert: "alert";
984
+ }>>;
985
+ destructive: z.ZodOptional<z.ZodBoolean>;
986
+ }, z.core.$strip>>>;
987
+ }, z.core.$strip>>>;
988
+ confirm: z.ZodOptional<z.ZodOptional<z.ZodObject<{
989
+ enabled: z.ZodDefault<z.ZodBoolean>;
990
+ profileId: z.ZodOptional<z.ZodString>;
991
+ prompt: z.ZodOptional<z.ZodString>;
992
+ expect: z.ZodOptional<z.ZodObject<{
993
+ op: z.ZodEnum<{
994
+ ">=": ">=";
995
+ "<=": "<=";
996
+ ">": ">";
997
+ "<": "<";
998
+ "==": "==";
999
+ }>;
1000
+ count: z.ZodNumber;
1001
+ }, z.core.$strip>>;
1002
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
1003
+ onTimeout: z.ZodDefault<z.ZodEnum<{
1004
+ fire: "fire";
1005
+ suppress: "suppress";
1006
+ }>>;
1007
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
1008
+ }, z.core.$strip>>>;
1009
+ disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1010
+ enabled: z.ZodOptional<z.ZodBoolean>;
1011
+ conditions: z.ZodOptional<z.ZodObject<{
722
1012
  deviceState: z.ZodOptional<z.ZodObject<{
723
1013
  deviceId: z.ZodNumber;
724
1014
  states: z.ZodArray<z.ZodString>;
@@ -766,16 +1056,26 @@ export declare const NcRulePatchSchema: z.ZodObject<{
766
1056
  }>>;
767
1057
  systemEvent: z.ZodOptional<z.ZodObject<{
768
1058
  kinds: z.ZodArray<z.ZodEnum<{
769
- "camera-online": "camera-online";
770
- "camera-offline": "camera-offline";
1059
+ "device-online": "device-online";
1060
+ "device-offline": "device-offline";
1061
+ "device-disabled": "device-disabled";
1062
+ "device-enabled": "device-enabled";
771
1063
  "stream-online": "stream-online";
772
1064
  "stream-offline": "stream-offline";
773
1065
  "node-online": "node-online";
774
1066
  "node-offline": "node-offline";
775
1067
  "addon-update-available": "addon-update-available";
776
1068
  "server-update-available": "server-update-available";
1069
+ "alarm-triggered": "alarm-triggered";
1070
+ "alarm-armed": "alarm-armed";
1071
+ "alarm-disarmed": "alarm-disarmed";
1072
+ "camera-online": "camera-online";
1073
+ "camera-offline": "camera-offline";
1074
+ "camera-disabled": "camera-disabled";
1075
+ "camera-enabled": "camera-enabled";
777
1076
  }>>;
778
1077
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1078
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
779
1079
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
780
1080
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
781
1081
  }, z.core.$strip>>;
@@ -798,22 +1098,14 @@ export declare const NcRulePatchSchema: z.ZodObject<{
798
1098
  count: z.ZodDefault<z.ZodNumber>;
799
1099
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
800
1100
  }, z.core.$strip>>;
801
- }, z.core.$strip>>>;
802
- schedule: z.ZodOptional<z.ZodOptional<z.ZodObject<{
803
- windows: z.ZodArray<z.ZodObject<{
804
- days: z.ZodArray<z.ZodNumber>;
805
- startMinute: z.ZodNumber;
806
- endMinute: z.ZodNumber;
1101
+ audio: z.ZodOptional<z.ZodObject<{
1102
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
1103
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
1104
+ hitPercent: z.ZodDefault<z.ZodNumber>;
1105
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
807
1106
  }, z.core.$strip>>;
808
- timezone: z.ZodOptional<z.ZodString>;
809
- invert: z.ZodOptional<z.ZodBoolean>;
810
- }, z.core.$strip>>>;
811
- targets: z.ZodOptional<z.ZodArray<z.ZodObject<{
812
- targetId: z.ZodString;
813
- params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
814
- }, z.core.$strip>>>;
815
- targetUsers: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
816
- media: z.ZodOptional<z.ZodDefault<z.ZodObject<{
1107
+ }, z.core.$strip>>;
1108
+ media: z.ZodOptional<z.ZodObject<{
817
1109
  attach: z.ZodDefault<z.ZodEnum<{
818
1110
  none: "none";
819
1111
  best: "best";
@@ -836,8 +1128,8 @@ export declare const NcRulePatchSchema: z.ZodObject<{
836
1128
  mid: "mid";
837
1129
  low: "low";
838
1130
  }>>;
839
- }, z.core.$strip>>>;
840
- throttle: z.ZodOptional<z.ZodDefault<z.ZodObject<{
1131
+ }, z.core.$strip>>;
1132
+ throttle: z.ZodOptional<z.ZodObject<{
841
1133
  cooldownSec: z.ZodDefault<z.ZodNumber>;
842
1134
  scope: z.ZodDefault<z.ZodEnum<{
843
1135
  rule: "rule";
@@ -847,53 +1139,8 @@ export declare const NcRulePatchSchema: z.ZodObject<{
847
1139
  shared: "shared";
848
1140
  "per-class": "per-class";
849
1141
  }>>;
850
- }, z.core.$strip>>>;
851
- template: z.ZodOptional<z.ZodOptional<z.ZodObject<{
852
- title: z.ZodOptional<z.ZodString>;
853
- body: z.ZodOptional<z.ZodString>;
854
- }, z.core.$strip>>>;
855
- priority: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
856
- ownerUserId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
857
- snoozeAllowGlobal: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
858
- actions: z.ZodOptional<z.ZodOptional<z.ZodObject<{
859
- onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
860
- name: z.ZodString;
861
- enabled: z.ZodBoolean;
862
- minDelaySec: z.ZodOptional<z.ZodNumber>;
863
- actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
864
- kind: z.ZodLiteral<"wait">;
865
- seconds: z.ZodNumber;
866
- }, z.core.$strip>, z.ZodObject<{
867
- kind: z.ZodLiteral<"cap">;
868
- deviceId: z.ZodNumber;
869
- cap: z.ZodString;
870
- method: z.ZodString;
871
- args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
872
- }, z.core.$strip>], "kind">>;
873
- }, z.core.$strip>>>;
874
- buttons: z.ZodOptional<z.ZodArray<z.ZodObject<{
875
- id: z.ZodString;
876
- label: z.ZodString;
877
- sequence: z.ZodString;
878
- icon: z.ZodOptional<z.ZodEnum<{
879
- light: "light";
880
- lock: "lock";
881
- view: "view";
882
- arm: "arm";
883
- disarm: "disarm";
884
- dismiss: "dismiss";
885
- open: "open";
886
- close: "close";
887
- unlock: "unlock";
888
- play: "play";
889
- acknowledge: "acknowledge";
890
- silence: "silence";
891
- alert: "alert";
892
- }>>;
893
- destructive: z.ZodOptional<z.ZodBoolean>;
894
- }, z.core.$strip>>>;
895
- }, z.core.$strip>>>;
896
- disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1142
+ }, z.core.$strip>>;
1143
+ priority: z.ZodOptional<z.ZodNumber>;
897
1144
  }, z.core.$strip>;
898
1145
  export type NcRulePatch = z.infer<typeof NcRulePatchSchema>;
899
1146
  /** A persisted rule. */
@@ -955,16 +1202,26 @@ export declare const NcRuleSchema: z.ZodObject<{
955
1202
  }>>;
956
1203
  systemEvent: z.ZodOptional<z.ZodObject<{
957
1204
  kinds: z.ZodArray<z.ZodEnum<{
958
- "camera-online": "camera-online";
959
- "camera-offline": "camera-offline";
1205
+ "device-online": "device-online";
1206
+ "device-offline": "device-offline";
1207
+ "device-disabled": "device-disabled";
1208
+ "device-enabled": "device-enabled";
960
1209
  "stream-online": "stream-online";
961
1210
  "stream-offline": "stream-offline";
962
1211
  "node-online": "node-online";
963
1212
  "node-offline": "node-offline";
964
1213
  "addon-update-available": "addon-update-available";
965
1214
  "server-update-available": "server-update-available";
1215
+ "alarm-triggered": "alarm-triggered";
1216
+ "alarm-armed": "alarm-armed";
1217
+ "alarm-disarmed": "alarm-disarmed";
1218
+ "camera-online": "camera-online";
1219
+ "camera-offline": "camera-offline";
1220
+ "camera-disabled": "camera-disabled";
1221
+ "camera-enabled": "camera-enabled";
966
1222
  }>>;
967
1223
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1224
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
968
1225
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
969
1226
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
970
1227
  }, z.core.$strip>>;
@@ -987,6 +1244,12 @@ export declare const NcRuleSchema: z.ZodObject<{
987
1244
  count: z.ZodDefault<z.ZodNumber>;
988
1245
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
989
1246
  }, z.core.$strip>>;
1247
+ audio: z.ZodOptional<z.ZodObject<{
1248
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
1249
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
1250
+ hitPercent: z.ZodDefault<z.ZodNumber>;
1251
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
1252
+ }, z.core.$strip>>;
990
1253
  }, z.core.$strip>>;
991
1254
  schedule: z.ZodOptional<z.ZodObject<{
992
1255
  windows: z.ZodArray<z.ZodObject<{
@@ -1082,6 +1345,27 @@ export declare const NcRuleSchema: z.ZodObject<{
1082
1345
  destructive: z.ZodOptional<z.ZodBoolean>;
1083
1346
  }, z.core.$strip>>>;
1084
1347
  }, z.core.$strip>>;
1348
+ confirm: z.ZodOptional<z.ZodObject<{
1349
+ enabled: z.ZodDefault<z.ZodBoolean>;
1350
+ profileId: z.ZodOptional<z.ZodString>;
1351
+ prompt: z.ZodOptional<z.ZodString>;
1352
+ expect: z.ZodOptional<z.ZodObject<{
1353
+ op: z.ZodEnum<{
1354
+ ">=": ">=";
1355
+ "<=": "<=";
1356
+ ">": ">";
1357
+ "<": "<";
1358
+ "==": "==";
1359
+ }>;
1360
+ count: z.ZodNumber;
1361
+ }, z.core.$strip>>;
1362
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
1363
+ onTimeout: z.ZodDefault<z.ZodEnum<{
1364
+ fire: "fire";
1365
+ suppress: "suppress";
1366
+ }>>;
1367
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
1368
+ }, z.core.$strip>>;
1085
1369
  id: z.ZodString;
1086
1370
  createdBy: z.ZodString;
1087
1371
  createdAt: z.ZodNumber;
@@ -1204,14 +1488,23 @@ export declare const NcHistorySubjectSchema: z.ZodObject<{
1204
1488
  timestamp: z.ZodNumber;
1205
1489
  systemEvent: z.ZodOptional<z.ZodObject<{
1206
1490
  kind: z.ZodEnum<{
1207
- "camera-online": "camera-online";
1208
- "camera-offline": "camera-offline";
1491
+ "device-online": "device-online";
1492
+ "device-offline": "device-offline";
1493
+ "device-disabled": "device-disabled";
1494
+ "device-enabled": "device-enabled";
1209
1495
  "stream-online": "stream-online";
1210
1496
  "stream-offline": "stream-offline";
1211
1497
  "node-online": "node-online";
1212
1498
  "node-offline": "node-offline";
1213
1499
  "addon-update-available": "addon-update-available";
1214
1500
  "server-update-available": "server-update-available";
1501
+ "alarm-triggered": "alarm-triggered";
1502
+ "alarm-armed": "alarm-armed";
1503
+ "alarm-disarmed": "alarm-disarmed";
1504
+ "camera-online": "camera-online";
1505
+ "camera-offline": "camera-offline";
1506
+ "camera-disabled": "camera-disabled";
1507
+ "camera-enabled": "camera-enabled";
1215
1508
  }>;
1216
1509
  subject: z.ZodString;
1217
1510
  title: z.ZodString;
@@ -1270,14 +1563,23 @@ export declare const NcHistoryEntrySchema: z.ZodObject<{
1270
1563
  timestamp: z.ZodNumber;
1271
1564
  systemEvent: z.ZodOptional<z.ZodObject<{
1272
1565
  kind: z.ZodEnum<{
1273
- "camera-online": "camera-online";
1274
- "camera-offline": "camera-offline";
1566
+ "device-online": "device-online";
1567
+ "device-offline": "device-offline";
1568
+ "device-disabled": "device-disabled";
1569
+ "device-enabled": "device-enabled";
1275
1570
  "stream-online": "stream-online";
1276
1571
  "stream-offline": "stream-offline";
1277
1572
  "node-online": "node-online";
1278
1573
  "node-offline": "node-offline";
1279
1574
  "addon-update-available": "addon-update-available";
1280
1575
  "server-update-available": "server-update-available";
1576
+ "alarm-triggered": "alarm-triggered";
1577
+ "alarm-armed": "alarm-armed";
1578
+ "alarm-disarmed": "alarm-disarmed";
1579
+ "camera-online": "camera-online";
1580
+ "camera-offline": "camera-offline";
1581
+ "camera-disabled": "camera-disabled";
1582
+ "camera-enabled": "camera-enabled";
1281
1583
  }>;
1282
1584
  subject: z.ZodString;
1283
1585
  title: z.ZodString;
@@ -1403,6 +1705,31 @@ export type NcAlarmSettingsPatch = z.infer<typeof NcAlarmSettingsPatchSchema>;
1403
1705
  * Never authored, never stored — see `alarm-mode-coverage.ts` for why a stored
1404
1706
  * copy would lie the first time a rule is disabled.
1405
1707
  */
1708
+ /**
1709
+ * Why a device a mode NAMES is nonetheless not armed by it.
1710
+ *
1711
+ * Each value is an existing authority, never a new flag (D62): `muted` is the
1712
+ * per-camera notification switch the Notification Center already owns,
1713
+ * `detection-off` is the device's own detection binding being inactive, and
1714
+ * `offline` is the device manager's liveness. A fourth reason would mean a
1715
+ * fourth authority, and inventing one here is how a panel starts disagreeing
1716
+ * with the switches the operator actually used.
1717
+ */
1718
+ export declare const NcAlarmSkipReasonSchema: z.ZodEnum<{
1719
+ muted: "muted";
1720
+ offline: "offline";
1721
+ "detection-off": "detection-off";
1722
+ }>;
1723
+ export type NcAlarmSkipReason = z.infer<typeof NcAlarmSkipReasonSchema>;
1724
+ export declare const NcAlarmSkippedDeviceSchema: z.ZodObject<{
1725
+ deviceId: z.ZodNumber;
1726
+ reason: z.ZodEnum<{
1727
+ muted: "muted";
1728
+ offline: "offline";
1729
+ "detection-off": "detection-off";
1730
+ }>;
1731
+ }, z.core.$strip>;
1732
+ export type NcAlarmSkippedDevice = z.infer<typeof NcAlarmSkippedDeviceSchema>;
1406
1733
  export declare const NcAlarmModeCoverageSchema: z.ZodObject<{
1407
1734
  mode: z.ZodEnum<{
1408
1735
  home: "home";
@@ -1414,6 +1741,14 @@ export declare const NcAlarmModeCoverageSchema: z.ZodObject<{
1414
1741
  ruleCount: z.ZodNumber;
1415
1742
  allDevices: z.ZodBoolean;
1416
1743
  deviceIds: z.ZodArray<z.ZodNumber>;
1744
+ skippedDevices: z.ZodDefault<z.ZodArray<z.ZodObject<{
1745
+ deviceId: z.ZodNumber;
1746
+ reason: z.ZodEnum<{
1747
+ muted: "muted";
1748
+ offline: "offline";
1749
+ "detection-off": "detection-off";
1750
+ }>;
1751
+ }, z.core.$strip>>>;
1417
1752
  }, z.core.$strip>;
1418
1753
  export type NcAlarmModeCoverage = z.infer<typeof NcAlarmModeCoverageSchema>;
1419
1754
  export declare const NcAlarmConfigSchema: z.ZodObject<{
@@ -1436,6 +1771,14 @@ export declare const NcAlarmConfigSchema: z.ZodObject<{
1436
1771
  ruleCount: z.ZodNumber;
1437
1772
  allDevices: z.ZodBoolean;
1438
1773
  deviceIds: z.ZodArray<z.ZodNumber>;
1774
+ skippedDevices: z.ZodDefault<z.ZodArray<z.ZodObject<{
1775
+ deviceId: z.ZodNumber;
1776
+ reason: z.ZodEnum<{
1777
+ muted: "muted";
1778
+ offline: "offline";
1779
+ "detection-off": "detection-off";
1780
+ }>;
1781
+ }, z.core.$strip>>>;
1439
1782
  }, z.core.$strip>>;
1440
1783
  }, z.core.$strip>;
1441
1784
  export type NcAlarmConfig = z.infer<typeof NcAlarmConfigSchema>;
@@ -1503,16 +1846,26 @@ export declare const notificationRulesCapability: {
1503
1846
  }>>;
1504
1847
  systemEvent: z.ZodOptional<z.ZodObject<{
1505
1848
  kinds: z.ZodArray<z.ZodEnum<{
1506
- "camera-online": "camera-online";
1507
- "camera-offline": "camera-offline";
1849
+ "device-online": "device-online";
1850
+ "device-offline": "device-offline";
1851
+ "device-disabled": "device-disabled";
1852
+ "device-enabled": "device-enabled";
1508
1853
  "stream-online": "stream-online";
1509
1854
  "stream-offline": "stream-offline";
1510
1855
  "node-online": "node-online";
1511
1856
  "node-offline": "node-offline";
1512
1857
  "addon-update-available": "addon-update-available";
1513
1858
  "server-update-available": "server-update-available";
1859
+ "alarm-triggered": "alarm-triggered";
1860
+ "alarm-armed": "alarm-armed";
1861
+ "alarm-disarmed": "alarm-disarmed";
1862
+ "camera-online": "camera-online";
1863
+ "camera-offline": "camera-offline";
1864
+ "camera-disabled": "camera-disabled";
1865
+ "camera-enabled": "camera-enabled";
1514
1866
  }>>;
1515
1867
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1868
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1516
1869
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1517
1870
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
1518
1871
  }, z.core.$strip>>;
@@ -1535,6 +1888,12 @@ export declare const notificationRulesCapability: {
1535
1888
  count: z.ZodDefault<z.ZodNumber>;
1536
1889
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
1537
1890
  }, z.core.$strip>>;
1891
+ audio: z.ZodOptional<z.ZodObject<{
1892
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
1893
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
1894
+ hitPercent: z.ZodDefault<z.ZodNumber>;
1895
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
1896
+ }, z.core.$strip>>;
1538
1897
  }, z.core.$strip>>;
1539
1898
  schedule: z.ZodOptional<z.ZodObject<{
1540
1899
  windows: z.ZodArray<z.ZodObject<{
@@ -1630,6 +1989,27 @@ export declare const notificationRulesCapability: {
1630
1989
  destructive: z.ZodOptional<z.ZodBoolean>;
1631
1990
  }, z.core.$strip>>>;
1632
1991
  }, z.core.$strip>>;
1992
+ confirm: z.ZodOptional<z.ZodObject<{
1993
+ enabled: z.ZodDefault<z.ZodBoolean>;
1994
+ profileId: z.ZodOptional<z.ZodString>;
1995
+ prompt: z.ZodOptional<z.ZodString>;
1996
+ expect: z.ZodOptional<z.ZodObject<{
1997
+ op: z.ZodEnum<{
1998
+ ">=": ">=";
1999
+ "<=": "<=";
2000
+ ">": ">";
2001
+ "<": "<";
2002
+ "==": "==";
2003
+ }>;
2004
+ count: z.ZodNumber;
2005
+ }, z.core.$strip>>;
2006
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
2007
+ onTimeout: z.ZodDefault<z.ZodEnum<{
2008
+ fire: "fire";
2009
+ suppress: "suppress";
2010
+ }>>;
2011
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
2012
+ }, z.core.$strip>>;
1633
2013
  id: z.ZodString;
1634
2014
  createdBy: z.ZodString;
1635
2015
  createdAt: z.ZodNumber;
@@ -1698,16 +2078,26 @@ export declare const notificationRulesCapability: {
1698
2078
  }>>;
1699
2079
  systemEvent: z.ZodOptional<z.ZodObject<{
1700
2080
  kinds: z.ZodArray<z.ZodEnum<{
1701
- "camera-online": "camera-online";
1702
- "camera-offline": "camera-offline";
2081
+ "device-online": "device-online";
2082
+ "device-offline": "device-offline";
2083
+ "device-disabled": "device-disabled";
2084
+ "device-enabled": "device-enabled";
1703
2085
  "stream-online": "stream-online";
1704
2086
  "stream-offline": "stream-offline";
1705
2087
  "node-online": "node-online";
1706
2088
  "node-offline": "node-offline";
1707
2089
  "addon-update-available": "addon-update-available";
1708
2090
  "server-update-available": "server-update-available";
2091
+ "alarm-triggered": "alarm-triggered";
2092
+ "alarm-armed": "alarm-armed";
2093
+ "alarm-disarmed": "alarm-disarmed";
2094
+ "camera-online": "camera-online";
2095
+ "camera-offline": "camera-offline";
2096
+ "camera-disabled": "camera-disabled";
2097
+ "camera-enabled": "camera-enabled";
1709
2098
  }>>;
1710
2099
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
2100
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1711
2101
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1712
2102
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
1713
2103
  }, z.core.$strip>>;
@@ -1730,6 +2120,12 @@ export declare const notificationRulesCapability: {
1730
2120
  count: z.ZodDefault<z.ZodNumber>;
1731
2121
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
1732
2122
  }, z.core.$strip>>;
2123
+ audio: z.ZodOptional<z.ZodObject<{
2124
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
2125
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
2126
+ hitPercent: z.ZodDefault<z.ZodNumber>;
2127
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
2128
+ }, z.core.$strip>>;
1733
2129
  }, z.core.$strip>>;
1734
2130
  schedule: z.ZodOptional<z.ZodObject<{
1735
2131
  windows: z.ZodArray<z.ZodObject<{
@@ -1825,6 +2221,27 @@ export declare const notificationRulesCapability: {
1825
2221
  destructive: z.ZodOptional<z.ZodBoolean>;
1826
2222
  }, z.core.$strip>>>;
1827
2223
  }, z.core.$strip>>;
2224
+ confirm: z.ZodOptional<z.ZodObject<{
2225
+ enabled: z.ZodDefault<z.ZodBoolean>;
2226
+ profileId: z.ZodOptional<z.ZodString>;
2227
+ prompt: z.ZodOptional<z.ZodString>;
2228
+ expect: z.ZodOptional<z.ZodObject<{
2229
+ op: z.ZodEnum<{
2230
+ ">=": ">=";
2231
+ "<=": "<=";
2232
+ ">": ">";
2233
+ "<": "<";
2234
+ "==": "==";
2235
+ }>;
2236
+ count: z.ZodNumber;
2237
+ }, z.core.$strip>>;
2238
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
2239
+ onTimeout: z.ZodDefault<z.ZodEnum<{
2240
+ fire: "fire";
2241
+ suppress: "suppress";
2242
+ }>>;
2243
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
2244
+ }, z.core.$strip>>;
1828
2245
  id: z.ZodString;
1829
2246
  createdBy: z.ZodString;
1830
2247
  createdAt: z.ZodNumber;
@@ -1891,16 +2308,26 @@ export declare const notificationRulesCapability: {
1891
2308
  }>>;
1892
2309
  systemEvent: z.ZodOptional<z.ZodObject<{
1893
2310
  kinds: z.ZodArray<z.ZodEnum<{
1894
- "camera-online": "camera-online";
1895
- "camera-offline": "camera-offline";
2311
+ "device-online": "device-online";
2312
+ "device-offline": "device-offline";
2313
+ "device-disabled": "device-disabled";
2314
+ "device-enabled": "device-enabled";
1896
2315
  "stream-online": "stream-online";
1897
2316
  "stream-offline": "stream-offline";
1898
2317
  "node-online": "node-online";
1899
2318
  "node-offline": "node-offline";
1900
2319
  "addon-update-available": "addon-update-available";
1901
2320
  "server-update-available": "server-update-available";
2321
+ "alarm-triggered": "alarm-triggered";
2322
+ "alarm-armed": "alarm-armed";
2323
+ "alarm-disarmed": "alarm-disarmed";
2324
+ "camera-online": "camera-online";
2325
+ "camera-offline": "camera-offline";
2326
+ "camera-disabled": "camera-disabled";
2327
+ "camera-enabled": "camera-enabled";
1902
2328
  }>>;
1903
2329
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
2330
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1904
2331
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1905
2332
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
1906
2333
  }, z.core.$strip>>;
@@ -1923,6 +2350,12 @@ export declare const notificationRulesCapability: {
1923
2350
  count: z.ZodDefault<z.ZodNumber>;
1924
2351
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
1925
2352
  }, z.core.$strip>>;
2353
+ audio: z.ZodOptional<z.ZodObject<{
2354
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
2355
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
2356
+ hitPercent: z.ZodDefault<z.ZodNumber>;
2357
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
2358
+ }, z.core.$strip>>;
1926
2359
  }, z.core.$strip>>;
1927
2360
  schedule: z.ZodOptional<z.ZodObject<{
1928
2361
  windows: z.ZodArray<z.ZodObject<{
@@ -2018,6 +2451,27 @@ export declare const notificationRulesCapability: {
2018
2451
  destructive: z.ZodOptional<z.ZodBoolean>;
2019
2452
  }, z.core.$strip>>>;
2020
2453
  }, z.core.$strip>>;
2454
+ confirm: z.ZodOptional<z.ZodObject<{
2455
+ enabled: z.ZodDefault<z.ZodBoolean>;
2456
+ profileId: z.ZodOptional<z.ZodString>;
2457
+ prompt: z.ZodOptional<z.ZodString>;
2458
+ expect: z.ZodOptional<z.ZodObject<{
2459
+ op: z.ZodEnum<{
2460
+ ">=": ">=";
2461
+ "<=": "<=";
2462
+ ">": ">";
2463
+ "<": "<";
2464
+ "==": "==";
2465
+ }>;
2466
+ count: z.ZodNumber;
2467
+ }, z.core.$strip>>;
2468
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
2469
+ onTimeout: z.ZodDefault<z.ZodEnum<{
2470
+ fire: "fire";
2471
+ suppress: "suppress";
2472
+ }>>;
2473
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
2474
+ }, z.core.$strip>>;
2021
2475
  }, z.core.$strip>;
2022
2476
  }, z.core.$strip>, z.ZodObject<{
2023
2477
  rule: z.ZodObject<{
@@ -2078,16 +2532,26 @@ export declare const notificationRulesCapability: {
2078
2532
  }>>;
2079
2533
  systemEvent: z.ZodOptional<z.ZodObject<{
2080
2534
  kinds: z.ZodArray<z.ZodEnum<{
2081
- "camera-online": "camera-online";
2082
- "camera-offline": "camera-offline";
2535
+ "device-online": "device-online";
2536
+ "device-offline": "device-offline";
2537
+ "device-disabled": "device-disabled";
2538
+ "device-enabled": "device-enabled";
2083
2539
  "stream-online": "stream-online";
2084
2540
  "stream-offline": "stream-offline";
2085
2541
  "node-online": "node-online";
2086
2542
  "node-offline": "node-offline";
2087
2543
  "addon-update-available": "addon-update-available";
2088
2544
  "server-update-available": "server-update-available";
2545
+ "alarm-triggered": "alarm-triggered";
2546
+ "alarm-armed": "alarm-armed";
2547
+ "alarm-disarmed": "alarm-disarmed";
2548
+ "camera-online": "camera-online";
2549
+ "camera-offline": "camera-offline";
2550
+ "camera-disabled": "camera-disabled";
2551
+ "camera-enabled": "camera-enabled";
2089
2552
  }>>;
2090
2553
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
2554
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
2091
2555
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2092
2556
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
2093
2557
  }, z.core.$strip>>;
@@ -2110,6 +2574,12 @@ export declare const notificationRulesCapability: {
2110
2574
  count: z.ZodDefault<z.ZodNumber>;
2111
2575
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
2112
2576
  }, z.core.$strip>>;
2577
+ audio: z.ZodOptional<z.ZodObject<{
2578
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
2579
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
2580
+ hitPercent: z.ZodDefault<z.ZodNumber>;
2581
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
2582
+ }, z.core.$strip>>;
2113
2583
  }, z.core.$strip>>;
2114
2584
  schedule: z.ZodOptional<z.ZodObject<{
2115
2585
  windows: z.ZodArray<z.ZodObject<{
@@ -2205,6 +2675,27 @@ export declare const notificationRulesCapability: {
2205
2675
  destructive: z.ZodOptional<z.ZodBoolean>;
2206
2676
  }, z.core.$strip>>>;
2207
2677
  }, z.core.$strip>>;
2678
+ confirm: z.ZodOptional<z.ZodObject<{
2679
+ enabled: z.ZodDefault<z.ZodBoolean>;
2680
+ profileId: z.ZodOptional<z.ZodString>;
2681
+ prompt: z.ZodOptional<z.ZodString>;
2682
+ expect: z.ZodOptional<z.ZodObject<{
2683
+ op: z.ZodEnum<{
2684
+ ">=": ">=";
2685
+ "<=": "<=";
2686
+ ">": ">";
2687
+ "<": "<";
2688
+ "==": "==";
2689
+ }>;
2690
+ count: z.ZodNumber;
2691
+ }, z.core.$strip>>;
2692
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
2693
+ onTimeout: z.ZodDefault<z.ZodEnum<{
2694
+ fire: "fire";
2695
+ suppress: "suppress";
2696
+ }>>;
2697
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
2698
+ }, z.core.$strip>>;
2208
2699
  id: z.ZodString;
2209
2700
  createdBy: z.ZodString;
2210
2701
  createdAt: z.ZodNumber;
@@ -2218,7 +2709,6 @@ export declare const notificationRulesCapability: {
2218
2709
  ruleId: z.ZodString;
2219
2710
  patch: z.ZodObject<{
2220
2711
  name: z.ZodOptional<z.ZodString>;
2221
- enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
2222
2712
  delivery: z.ZodOptional<z.ZodEnum<{
2223
2713
  "device-event": "device-event";
2224
2714
  immediate: "immediate";
@@ -2226,7 +2716,88 @@ export declare const notificationRulesCapability: {
2226
2716
  "package-event": "package-event";
2227
2717
  "system-event": "system-event";
2228
2718
  }>>;
2229
- conditions: z.ZodOptional<z.ZodDefault<z.ZodObject<{
2719
+ schedule: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2720
+ windows: z.ZodArray<z.ZodObject<{
2721
+ days: z.ZodArray<z.ZodNumber>;
2722
+ startMinute: z.ZodNumber;
2723
+ endMinute: z.ZodNumber;
2724
+ }, z.core.$strip>>;
2725
+ timezone: z.ZodOptional<z.ZodString>;
2726
+ invert: z.ZodOptional<z.ZodBoolean>;
2727
+ }, z.core.$strip>>>;
2728
+ targets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2729
+ targetId: z.ZodString;
2730
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2731
+ }, z.core.$strip>>>;
2732
+ targetUsers: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
2733
+ template: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2734
+ title: z.ZodOptional<z.ZodString>;
2735
+ body: z.ZodOptional<z.ZodString>;
2736
+ }, z.core.$strip>>>;
2737
+ ownerUserId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2738
+ snoozeAllowGlobal: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2739
+ actions: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2740
+ onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
2741
+ name: z.ZodString;
2742
+ enabled: z.ZodBoolean;
2743
+ minDelaySec: z.ZodOptional<z.ZodNumber>;
2744
+ actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
2745
+ kind: z.ZodLiteral<"wait">;
2746
+ seconds: z.ZodNumber;
2747
+ }, z.core.$strip>, z.ZodObject<{
2748
+ kind: z.ZodLiteral<"cap">;
2749
+ deviceId: z.ZodNumber;
2750
+ cap: z.ZodString;
2751
+ method: z.ZodString;
2752
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2753
+ }, z.core.$strip>], "kind">>;
2754
+ }, z.core.$strip>>>;
2755
+ buttons: z.ZodOptional<z.ZodArray<z.ZodObject<{
2756
+ id: z.ZodString;
2757
+ label: z.ZodString;
2758
+ sequence: z.ZodString;
2759
+ icon: z.ZodOptional<z.ZodEnum<{
2760
+ light: "light";
2761
+ lock: "lock";
2762
+ view: "view";
2763
+ arm: "arm";
2764
+ disarm: "disarm";
2765
+ dismiss: "dismiss";
2766
+ open: "open";
2767
+ close: "close";
2768
+ unlock: "unlock";
2769
+ play: "play";
2770
+ acknowledge: "acknowledge";
2771
+ silence: "silence";
2772
+ alert: "alert";
2773
+ }>>;
2774
+ destructive: z.ZodOptional<z.ZodBoolean>;
2775
+ }, z.core.$strip>>>;
2776
+ }, z.core.$strip>>>;
2777
+ confirm: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2778
+ enabled: z.ZodDefault<z.ZodBoolean>;
2779
+ profileId: z.ZodOptional<z.ZodString>;
2780
+ prompt: z.ZodOptional<z.ZodString>;
2781
+ expect: z.ZodOptional<z.ZodObject<{
2782
+ op: z.ZodEnum<{
2783
+ ">=": ">=";
2784
+ "<=": "<=";
2785
+ ">": ">";
2786
+ "<": "<";
2787
+ "==": "==";
2788
+ }>;
2789
+ count: z.ZodNumber;
2790
+ }, z.core.$strip>>;
2791
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
2792
+ onTimeout: z.ZodDefault<z.ZodEnum<{
2793
+ fire: "fire";
2794
+ suppress: "suppress";
2795
+ }>>;
2796
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
2797
+ }, z.core.$strip>>>;
2798
+ disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2799
+ enabled: z.ZodOptional<z.ZodBoolean>;
2800
+ conditions: z.ZodOptional<z.ZodObject<{
2230
2801
  deviceState: z.ZodOptional<z.ZodObject<{
2231
2802
  deviceId: z.ZodNumber;
2232
2803
  states: z.ZodArray<z.ZodString>;
@@ -2274,16 +2845,26 @@ export declare const notificationRulesCapability: {
2274
2845
  }>>;
2275
2846
  systemEvent: z.ZodOptional<z.ZodObject<{
2276
2847
  kinds: z.ZodArray<z.ZodEnum<{
2277
- "camera-online": "camera-online";
2278
- "camera-offline": "camera-offline";
2848
+ "device-online": "device-online";
2849
+ "device-offline": "device-offline";
2850
+ "device-disabled": "device-disabled";
2851
+ "device-enabled": "device-enabled";
2279
2852
  "stream-online": "stream-online";
2280
2853
  "stream-offline": "stream-offline";
2281
2854
  "node-online": "node-online";
2282
2855
  "node-offline": "node-offline";
2283
2856
  "addon-update-available": "addon-update-available";
2284
2857
  "server-update-available": "server-update-available";
2858
+ "alarm-triggered": "alarm-triggered";
2859
+ "alarm-armed": "alarm-armed";
2860
+ "alarm-disarmed": "alarm-disarmed";
2861
+ "camera-online": "camera-online";
2862
+ "camera-offline": "camera-offline";
2863
+ "camera-disabled": "camera-disabled";
2864
+ "camera-enabled": "camera-enabled";
2285
2865
  }>>;
2286
2866
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
2867
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
2287
2868
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2288
2869
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
2289
2870
  }, z.core.$strip>>;
@@ -2306,22 +2887,14 @@ export declare const notificationRulesCapability: {
2306
2887
  count: z.ZodDefault<z.ZodNumber>;
2307
2888
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
2308
2889
  }, z.core.$strip>>;
2309
- }, z.core.$strip>>>;
2310
- schedule: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2311
- windows: z.ZodArray<z.ZodObject<{
2312
- days: z.ZodArray<z.ZodNumber>;
2313
- startMinute: z.ZodNumber;
2314
- endMinute: z.ZodNumber;
2890
+ audio: z.ZodOptional<z.ZodObject<{
2891
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
2892
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
2893
+ hitPercent: z.ZodDefault<z.ZodNumber>;
2894
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
2315
2895
  }, z.core.$strip>>;
2316
- timezone: z.ZodOptional<z.ZodString>;
2317
- invert: z.ZodOptional<z.ZodBoolean>;
2318
- }, z.core.$strip>>>;
2319
- targets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2320
- targetId: z.ZodString;
2321
- params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2322
- }, z.core.$strip>>>;
2323
- targetUsers: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
2324
- media: z.ZodOptional<z.ZodDefault<z.ZodObject<{
2896
+ }, z.core.$strip>>;
2897
+ media: z.ZodOptional<z.ZodObject<{
2325
2898
  attach: z.ZodDefault<z.ZodEnum<{
2326
2899
  none: "none";
2327
2900
  best: "best";
@@ -2344,8 +2917,8 @@ export declare const notificationRulesCapability: {
2344
2917
  mid: "mid";
2345
2918
  low: "low";
2346
2919
  }>>;
2347
- }, z.core.$strip>>>;
2348
- throttle: z.ZodOptional<z.ZodDefault<z.ZodObject<{
2920
+ }, z.core.$strip>>;
2921
+ throttle: z.ZodOptional<z.ZodObject<{
2349
2922
  cooldownSec: z.ZodDefault<z.ZodNumber>;
2350
2923
  scope: z.ZodDefault<z.ZodEnum<{
2351
2924
  rule: "rule";
@@ -2355,53 +2928,8 @@ export declare const notificationRulesCapability: {
2355
2928
  shared: "shared";
2356
2929
  "per-class": "per-class";
2357
2930
  }>>;
2358
- }, z.core.$strip>>>;
2359
- template: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2360
- title: z.ZodOptional<z.ZodString>;
2361
- body: z.ZodOptional<z.ZodString>;
2362
- }, z.core.$strip>>>;
2363
- priority: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2364
- ownerUserId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2365
- snoozeAllowGlobal: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2366
- actions: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2367
- onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
2368
- name: z.ZodString;
2369
- enabled: z.ZodBoolean;
2370
- minDelaySec: z.ZodOptional<z.ZodNumber>;
2371
- actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
2372
- kind: z.ZodLiteral<"wait">;
2373
- seconds: z.ZodNumber;
2374
- }, z.core.$strip>, z.ZodObject<{
2375
- kind: z.ZodLiteral<"cap">;
2376
- deviceId: z.ZodNumber;
2377
- cap: z.ZodString;
2378
- method: z.ZodString;
2379
- args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2380
- }, z.core.$strip>], "kind">>;
2381
- }, z.core.$strip>>>;
2382
- buttons: z.ZodOptional<z.ZodArray<z.ZodObject<{
2383
- id: z.ZodString;
2384
- label: z.ZodString;
2385
- sequence: z.ZodString;
2386
- icon: z.ZodOptional<z.ZodEnum<{
2387
- light: "light";
2388
- lock: "lock";
2389
- view: "view";
2390
- arm: "arm";
2391
- disarm: "disarm";
2392
- dismiss: "dismiss";
2393
- open: "open";
2394
- close: "close";
2395
- unlock: "unlock";
2396
- play: "play";
2397
- acknowledge: "acknowledge";
2398
- silence: "silence";
2399
- alert: "alert";
2400
- }>>;
2401
- destructive: z.ZodOptional<z.ZodBoolean>;
2402
- }, z.core.$strip>>>;
2403
- }, z.core.$strip>>>;
2404
- disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2931
+ }, z.core.$strip>>;
2932
+ priority: z.ZodOptional<z.ZodNumber>;
2405
2933
  }, z.core.$strip>;
2406
2934
  }, z.core.$strip>, z.ZodObject<{
2407
2935
  rule: z.ZodObject<{
@@ -2462,16 +2990,26 @@ export declare const notificationRulesCapability: {
2462
2990
  }>>;
2463
2991
  systemEvent: z.ZodOptional<z.ZodObject<{
2464
2992
  kinds: z.ZodArray<z.ZodEnum<{
2465
- "camera-online": "camera-online";
2466
- "camera-offline": "camera-offline";
2993
+ "device-online": "device-online";
2994
+ "device-offline": "device-offline";
2995
+ "device-disabled": "device-disabled";
2996
+ "device-enabled": "device-enabled";
2467
2997
  "stream-online": "stream-online";
2468
2998
  "stream-offline": "stream-offline";
2469
2999
  "node-online": "node-online";
2470
3000
  "node-offline": "node-offline";
2471
3001
  "addon-update-available": "addon-update-available";
2472
3002
  "server-update-available": "server-update-available";
3003
+ "alarm-triggered": "alarm-triggered";
3004
+ "alarm-armed": "alarm-armed";
3005
+ "alarm-disarmed": "alarm-disarmed";
3006
+ "camera-online": "camera-online";
3007
+ "camera-offline": "camera-offline";
3008
+ "camera-disabled": "camera-disabled";
3009
+ "camera-enabled": "camera-enabled";
2473
3010
  }>>;
2474
3011
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3012
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
2475
3013
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2476
3014
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
2477
3015
  }, z.core.$strip>>;
@@ -2494,6 +3032,12 @@ export declare const notificationRulesCapability: {
2494
3032
  count: z.ZodDefault<z.ZodNumber>;
2495
3033
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
2496
3034
  }, z.core.$strip>>;
3035
+ audio: z.ZodOptional<z.ZodObject<{
3036
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
3037
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
3038
+ hitPercent: z.ZodDefault<z.ZodNumber>;
3039
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
3040
+ }, z.core.$strip>>;
2497
3041
  }, z.core.$strip>>;
2498
3042
  schedule: z.ZodOptional<z.ZodObject<{
2499
3043
  windows: z.ZodArray<z.ZodObject<{
@@ -2589,6 +3133,27 @@ export declare const notificationRulesCapability: {
2589
3133
  destructive: z.ZodOptional<z.ZodBoolean>;
2590
3134
  }, z.core.$strip>>>;
2591
3135
  }, z.core.$strip>>;
3136
+ confirm: z.ZodOptional<z.ZodObject<{
3137
+ enabled: z.ZodDefault<z.ZodBoolean>;
3138
+ profileId: z.ZodOptional<z.ZodString>;
3139
+ prompt: z.ZodOptional<z.ZodString>;
3140
+ expect: z.ZodOptional<z.ZodObject<{
3141
+ op: z.ZodEnum<{
3142
+ ">=": ">=";
3143
+ "<=": "<=";
3144
+ ">": ">";
3145
+ "<": "<";
3146
+ "==": "==";
3147
+ }>;
3148
+ count: z.ZodNumber;
3149
+ }, z.core.$strip>>;
3150
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
3151
+ onTimeout: z.ZodDefault<z.ZodEnum<{
3152
+ fire: "fire";
3153
+ suppress: "suppress";
3154
+ }>>;
3155
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
3156
+ }, z.core.$strip>>;
2592
3157
  id: z.ZodString;
2593
3158
  createdBy: z.ZodString;
2594
3159
  createdAt: z.ZodNumber;
@@ -2703,16 +3268,26 @@ export declare const notificationRulesCapability: {
2703
3268
  }>>;
2704
3269
  systemEvent: z.ZodOptional<z.ZodObject<{
2705
3270
  kinds: z.ZodArray<z.ZodEnum<{
2706
- "camera-online": "camera-online";
2707
- "camera-offline": "camera-offline";
3271
+ "device-online": "device-online";
3272
+ "device-offline": "device-offline";
3273
+ "device-disabled": "device-disabled";
3274
+ "device-enabled": "device-enabled";
2708
3275
  "stream-online": "stream-online";
2709
3276
  "stream-offline": "stream-offline";
2710
3277
  "node-online": "node-online";
2711
3278
  "node-offline": "node-offline";
2712
3279
  "addon-update-available": "addon-update-available";
2713
3280
  "server-update-available": "server-update-available";
3281
+ "alarm-triggered": "alarm-triggered";
3282
+ "alarm-armed": "alarm-armed";
3283
+ "alarm-disarmed": "alarm-disarmed";
3284
+ "camera-online": "camera-online";
3285
+ "camera-offline": "camera-offline";
3286
+ "camera-disabled": "camera-disabled";
3287
+ "camera-enabled": "camera-enabled";
2714
3288
  }>>;
2715
3289
  deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
3290
+ deviceTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
2716
3291
  nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2717
3292
  packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
2718
3293
  }, z.core.$strip>>;
@@ -2735,6 +3310,12 @@ export declare const notificationRulesCapability: {
2735
3310
  count: z.ZodDefault<z.ZodNumber>;
2736
3311
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
2737
3312
  }, z.core.$strip>>;
3313
+ audio: z.ZodOptional<z.ZodObject<{
3314
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
3315
+ dbThreshold: z.ZodOptional<z.ZodNumber>;
3316
+ hitPercent: z.ZodDefault<z.ZodNumber>;
3317
+ samplingSeconds: z.ZodDefault<z.ZodNumber>;
3318
+ }, z.core.$strip>>;
2738
3319
  }, z.core.$strip>>;
2739
3320
  schedule: z.ZodOptional<z.ZodObject<{
2740
3321
  windows: z.ZodArray<z.ZodObject<{
@@ -2830,6 +3411,27 @@ export declare const notificationRulesCapability: {
2830
3411
  destructive: z.ZodOptional<z.ZodBoolean>;
2831
3412
  }, z.core.$strip>>>;
2832
3413
  }, z.core.$strip>>;
3414
+ confirm: z.ZodOptional<z.ZodObject<{
3415
+ enabled: z.ZodDefault<z.ZodBoolean>;
3416
+ profileId: z.ZodOptional<z.ZodString>;
3417
+ prompt: z.ZodOptional<z.ZodString>;
3418
+ expect: z.ZodOptional<z.ZodObject<{
3419
+ op: z.ZodEnum<{
3420
+ ">=": ">=";
3421
+ "<=": "<=";
3422
+ ">": ">";
3423
+ "<": "<";
3424
+ "==": "==";
3425
+ }>;
3426
+ count: z.ZodNumber;
3427
+ }, z.core.$strip>>;
3428
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
3429
+ onTimeout: z.ZodDefault<z.ZodEnum<{
3430
+ fire: "fire";
3431
+ suppress: "suppress";
3432
+ }>>;
3433
+ maxImagePx: z.ZodDefault<z.ZodNumber>;
3434
+ }, z.core.$strip>>;
2833
3435
  }, z.core.$strip>;
2834
3436
  lookbackMinutes: z.ZodDefault<z.ZodNumber>;
2835
3437
  }, z.core.$strip>, z.ZodObject<{
@@ -2997,14 +3599,23 @@ export declare const notificationRulesCapability: {
2997
3599
  timestamp: z.ZodNumber;
2998
3600
  systemEvent: z.ZodOptional<z.ZodObject<{
2999
3601
  kind: z.ZodEnum<{
3000
- "camera-online": "camera-online";
3001
- "camera-offline": "camera-offline";
3602
+ "device-online": "device-online";
3603
+ "device-offline": "device-offline";
3604
+ "device-disabled": "device-disabled";
3605
+ "device-enabled": "device-enabled";
3002
3606
  "stream-online": "stream-online";
3003
3607
  "stream-offline": "stream-offline";
3004
3608
  "node-online": "node-online";
3005
3609
  "node-offline": "node-offline";
3006
3610
  "addon-update-available": "addon-update-available";
3007
3611
  "server-update-available": "server-update-available";
3612
+ "alarm-triggered": "alarm-triggered";
3613
+ "alarm-armed": "alarm-armed";
3614
+ "alarm-disarmed": "alarm-disarmed";
3615
+ "camera-online": "camera-online";
3616
+ "camera-offline": "camera-offline";
3617
+ "camera-disabled": "camera-disabled";
3618
+ "camera-enabled": "camera-enabled";
3008
3619
  }>;
3009
3620
  subject: z.ZodString;
3010
3621
  title: z.ZodString;
@@ -3123,6 +3734,14 @@ export declare const notificationRulesCapability: {
3123
3734
  ruleCount: z.ZodNumber;
3124
3735
  allDevices: z.ZodBoolean;
3125
3736
  deviceIds: z.ZodArray<z.ZodNumber>;
3737
+ skippedDevices: z.ZodDefault<z.ZodArray<z.ZodObject<{
3738
+ deviceId: z.ZodNumber;
3739
+ reason: z.ZodEnum<{
3740
+ muted: "muted";
3741
+ offline: "offline";
3742
+ "detection-off": "detection-off";
3743
+ }>;
3744
+ }, z.core.$strip>>>;
3126
3745
  }, z.core.$strip>>;
3127
3746
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
3128
3747
  /**
@@ -3159,6 +3778,14 @@ export declare const notificationRulesCapability: {
3159
3778
  ruleCount: z.ZodNumber;
3160
3779
  allDevices: z.ZodBoolean;
3161
3780
  deviceIds: z.ZodArray<z.ZodNumber>;
3781
+ skippedDevices: z.ZodDefault<z.ZodArray<z.ZodObject<{
3782
+ deviceId: z.ZodNumber;
3783
+ reason: z.ZodEnum<{
3784
+ muted: "muted";
3785
+ offline: "offline";
3786
+ "detection-off": "detection-off";
3787
+ }>;
3788
+ }, z.core.$strip>>>;
3162
3789
  }, z.core.$strip>>;
3163
3790
  }, z.core.$strip>, "mutation">;
3164
3791
  };