@camstack/types 1.2.300 → 1.2.303

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.
@@ -3435,6 +3435,18 @@ export declare const NC_ALARM_DELAY_MAX_SEC = 600;
3435
3435
  export declare const NC_ALARM_TRIGGERED_MAX_SEC = 3600;
3436
3436
  /** At most this many ids on one mode's non-blocking list. */
3437
3437
  export declare const NC_ALARM_NONBLOCKING_MAX = 200;
3438
+ /**
3439
+ * What the panel does when a bounded triggered window ends.
3440
+ * - `rearmAfter` — return to the armed mode
3441
+ * - `disableAfter` — auto-disarm
3442
+ * - `doNothing` — stay triggered until a human disarms
3443
+ */
3444
+ export declare const NcAlarmPostTriggeredActionSchema: z.ZodEnum<{
3445
+ rearmAfter: "rearmAfter";
3446
+ disableAfter: "disableAfter";
3447
+ doNothing: "doNothing";
3448
+ }>;
3449
+ export type NcAlarmPostTriggeredAction = z.infer<typeof NcAlarmPostTriggeredActionSchema>;
3438
3450
  /** One mode's OVERRIDES. An absent field inherits the global value (D697). */
3439
3451
  export declare const NcAlarmModeDelaysSchema: z.ZodObject<{
3440
3452
  mode: z.ZodEnum<{
@@ -3447,6 +3459,20 @@ export declare const NcAlarmModeDelaysSchema: z.ZodObject<{
3447
3459
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
3448
3460
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
3449
3461
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
3462
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
3463
+ rearmAfter: "rearmAfter";
3464
+ disableAfter: "disableAfter";
3465
+ doNothing: "doNothing";
3466
+ }>>;
3467
+ schedule: z.ZodOptional<z.ZodObject<{
3468
+ windows: z.ZodArray<z.ZodObject<{
3469
+ days: z.ZodArray<z.ZodNumber>;
3470
+ startMinute: z.ZodNumber;
3471
+ endMinute: z.ZodNumber;
3472
+ }, z.core.$strip>>;
3473
+ timezone: z.ZodOptional<z.ZodString>;
3474
+ invert: z.ZodOptional<z.ZodBoolean>;
3475
+ }, z.core.$strip>>;
3450
3476
  }, z.core.$strip>;
3451
3477
  export type NcAlarmModeDelays = z.infer<typeof NcAlarmModeDelaysSchema>;
3452
3478
  /**
@@ -3465,6 +3491,20 @@ export declare const NcAlarmModeDelaysEditSchema: z.ZodObject<{
3465
3491
  exitDelaySec: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3466
3492
  entryDelaySec: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3467
3493
  triggeredDurationSec: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3494
+ postTriggeredAction: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3495
+ rearmAfter: "rearmAfter";
3496
+ disableAfter: "disableAfter";
3497
+ doNothing: "doNothing";
3498
+ }>>>;
3499
+ schedule: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3500
+ windows: z.ZodArray<z.ZodObject<{
3501
+ days: z.ZodArray<z.ZodNumber>;
3502
+ startMinute: z.ZodNumber;
3503
+ endMinute: z.ZodNumber;
3504
+ }, z.core.$strip>>;
3505
+ timezone: z.ZodOptional<z.ZodString>;
3506
+ invert: z.ZodOptional<z.ZodBoolean>;
3507
+ }, z.core.$strip>>>;
3468
3508
  }, z.core.$strip>;
3469
3509
  export type NcAlarmModeDelaysEdit = z.infer<typeof NcAlarmModeDelaysEditSchema>;
3470
3510
  /** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
@@ -3582,6 +3622,11 @@ export declare const NcAlarmSettingsSchema: z.ZodObject<{
3582
3622
  exitDelaySec: z.ZodNumber;
3583
3623
  entryDelaySec: z.ZodNumber;
3584
3624
  triggeredDurationSec: z.ZodNumber;
3625
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
3626
+ rearmAfter: "rearmAfter";
3627
+ disableAfter: "disableAfter";
3628
+ doNothing: "doNothing";
3629
+ }>>;
3585
3630
  announceArm: z.ZodOptional<z.ZodBoolean>;
3586
3631
  announceTargets: z.ZodArray<z.ZodString>;
3587
3632
  nonBlocking: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -3625,6 +3670,20 @@ export declare const NcAlarmSettingsSchema: z.ZodObject<{
3625
3670
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
3626
3671
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
3627
3672
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
3673
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
3674
+ rearmAfter: "rearmAfter";
3675
+ disableAfter: "disableAfter";
3676
+ doNothing: "doNothing";
3677
+ }>>;
3678
+ schedule: z.ZodOptional<z.ZodObject<{
3679
+ windows: z.ZodArray<z.ZodObject<{
3680
+ days: z.ZodArray<z.ZodNumber>;
3681
+ startMinute: z.ZodNumber;
3682
+ endMinute: z.ZodNumber;
3683
+ }, z.core.$strip>>;
3684
+ timezone: z.ZodOptional<z.ZodString>;
3685
+ invert: z.ZodOptional<z.ZodBoolean>;
3686
+ }, z.core.$strip>>;
3628
3687
  }, z.core.$strip>>>;
3629
3688
  }, z.core.$strip>;
3630
3689
  export type NcAlarmSettings = z.infer<typeof NcAlarmSettingsSchema>;
@@ -3680,6 +3739,11 @@ export declare const NcAlarmSettingsPatchSchema: z.ZodObject<{
3680
3739
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
3681
3740
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
3682
3741
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
3742
+ postTriggeredAction: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3743
+ rearmAfter: "rearmAfter";
3744
+ disableAfter: "disableAfter";
3745
+ doNothing: "doNothing";
3746
+ }>>>;
3683
3747
  announceArm: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3684
3748
  announceTargets: z.ZodOptional<z.ZodArray<z.ZodString>>;
3685
3749
  nonBlocking: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -3723,6 +3787,20 @@ export declare const NcAlarmSettingsPatchSchema: z.ZodObject<{
3723
3787
  exitDelaySec: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3724
3788
  entryDelaySec: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3725
3789
  triggeredDurationSec: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3790
+ postTriggeredAction: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3791
+ rearmAfter: "rearmAfter";
3792
+ disableAfter: "disableAfter";
3793
+ doNothing: "doNothing";
3794
+ }>>>;
3795
+ schedule: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3796
+ windows: z.ZodArray<z.ZodObject<{
3797
+ days: z.ZodArray<z.ZodNumber>;
3798
+ startMinute: z.ZodNumber;
3799
+ endMinute: z.ZodNumber;
3800
+ }, z.core.$strip>>;
3801
+ timezone: z.ZodOptional<z.ZodString>;
3802
+ invert: z.ZodOptional<z.ZodBoolean>;
3803
+ }, z.core.$strip>>>;
3726
3804
  }, z.core.$strip>>>;
3727
3805
  nonBlockingEdit: z.ZodOptional<z.ZodObject<{
3728
3806
  mode: z.ZodEnum<{
@@ -3906,6 +3984,11 @@ export declare const NcAlarmConfigSchema: z.ZodObject<{
3906
3984
  exitDelaySec: z.ZodNumber;
3907
3985
  entryDelaySec: z.ZodNumber;
3908
3986
  triggeredDurationSec: z.ZodNumber;
3987
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
3988
+ rearmAfter: "rearmAfter";
3989
+ disableAfter: "disableAfter";
3990
+ doNothing: "doNothing";
3991
+ }>>;
3909
3992
  announceArm: z.ZodOptional<z.ZodBoolean>;
3910
3993
  announceTargets: z.ZodArray<z.ZodString>;
3911
3994
  nonBlocking: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -3949,6 +4032,20 @@ export declare const NcAlarmConfigSchema: z.ZodObject<{
3949
4032
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
3950
4033
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
3951
4034
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
4035
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
4036
+ rearmAfter: "rearmAfter";
4037
+ disableAfter: "disableAfter";
4038
+ doNothing: "doNothing";
4039
+ }>>;
4040
+ schedule: z.ZodOptional<z.ZodObject<{
4041
+ windows: z.ZodArray<z.ZodObject<{
4042
+ days: z.ZodArray<z.ZodNumber>;
4043
+ startMinute: z.ZodNumber;
4044
+ endMinute: z.ZodNumber;
4045
+ }, z.core.$strip>>;
4046
+ timezone: z.ZodOptional<z.ZodString>;
4047
+ invert: z.ZodOptional<z.ZodBoolean>;
4048
+ }, z.core.$strip>>;
3952
4049
  }, z.core.$strip>>>;
3953
4050
  }, z.core.$strip>;
3954
4051
  profiles: z.ZodOptional<z.ZodObject<{
@@ -7720,6 +7817,11 @@ export declare const notificationRulesCapability: {
7720
7817
  exitDelaySec: z.ZodNumber;
7721
7818
  entryDelaySec: z.ZodNumber;
7722
7819
  triggeredDurationSec: z.ZodNumber;
7820
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
7821
+ rearmAfter: "rearmAfter";
7822
+ disableAfter: "disableAfter";
7823
+ doNothing: "doNothing";
7824
+ }>>;
7723
7825
  announceArm: z.ZodOptional<z.ZodBoolean>;
7724
7826
  announceTargets: z.ZodArray<z.ZodString>;
7725
7827
  nonBlocking: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -7763,6 +7865,20 @@ export declare const notificationRulesCapability: {
7763
7865
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
7764
7866
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
7765
7867
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
7868
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
7869
+ rearmAfter: "rearmAfter";
7870
+ disableAfter: "disableAfter";
7871
+ doNothing: "doNothing";
7872
+ }>>;
7873
+ schedule: z.ZodOptional<z.ZodObject<{
7874
+ windows: z.ZodArray<z.ZodObject<{
7875
+ days: z.ZodArray<z.ZodNumber>;
7876
+ startMinute: z.ZodNumber;
7877
+ endMinute: z.ZodNumber;
7878
+ }, z.core.$strip>>;
7879
+ timezone: z.ZodOptional<z.ZodString>;
7880
+ invert: z.ZodOptional<z.ZodBoolean>;
7881
+ }, z.core.$strip>>;
7766
7882
  }, z.core.$strip>>>;
7767
7883
  }, z.core.$strip>;
7768
7884
  profiles: z.ZodOptional<z.ZodObject<{
@@ -7861,6 +7977,11 @@ export declare const notificationRulesCapability: {
7861
7977
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
7862
7978
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
7863
7979
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
7980
+ postTriggeredAction: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
7981
+ rearmAfter: "rearmAfter";
7982
+ disableAfter: "disableAfter";
7983
+ doNothing: "doNothing";
7984
+ }>>>;
7864
7985
  announceArm: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
7865
7986
  announceTargets: z.ZodOptional<z.ZodArray<z.ZodString>>;
7866
7987
  nonBlocking: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -7904,6 +8025,20 @@ export declare const notificationRulesCapability: {
7904
8025
  exitDelaySec: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
7905
8026
  entryDelaySec: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
7906
8027
  triggeredDurationSec: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
8028
+ postTriggeredAction: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
8029
+ rearmAfter: "rearmAfter";
8030
+ disableAfter: "disableAfter";
8031
+ doNothing: "doNothing";
8032
+ }>>>;
8033
+ schedule: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8034
+ windows: z.ZodArray<z.ZodObject<{
8035
+ days: z.ZodArray<z.ZodNumber>;
8036
+ startMinute: z.ZodNumber;
8037
+ endMinute: z.ZodNumber;
8038
+ }, z.core.$strip>>;
8039
+ timezone: z.ZodOptional<z.ZodString>;
8040
+ invert: z.ZodOptional<z.ZodBoolean>;
8041
+ }, z.core.$strip>>>;
7907
8042
  }, z.core.$strip>>>;
7908
8043
  nonBlockingEdit: z.ZodOptional<z.ZodObject<{
7909
8044
  mode: z.ZodEnum<{
@@ -7945,6 +8080,11 @@ export declare const notificationRulesCapability: {
7945
8080
  exitDelaySec: z.ZodNumber;
7946
8081
  entryDelaySec: z.ZodNumber;
7947
8082
  triggeredDurationSec: z.ZodNumber;
8083
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8084
+ rearmAfter: "rearmAfter";
8085
+ disableAfter: "disableAfter";
8086
+ doNothing: "doNothing";
8087
+ }>>;
7948
8088
  announceArm: z.ZodOptional<z.ZodBoolean>;
7949
8089
  announceTargets: z.ZodArray<z.ZodString>;
7950
8090
  nonBlocking: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -7988,6 +8128,20 @@ export declare const notificationRulesCapability: {
7988
8128
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
7989
8129
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
7990
8130
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
8131
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8132
+ rearmAfter: "rearmAfter";
8133
+ disableAfter: "disableAfter";
8134
+ doNothing: "doNothing";
8135
+ }>>;
8136
+ schedule: z.ZodOptional<z.ZodObject<{
8137
+ windows: z.ZodArray<z.ZodObject<{
8138
+ days: z.ZodArray<z.ZodNumber>;
8139
+ startMinute: z.ZodNumber;
8140
+ endMinute: z.ZodNumber;
8141
+ }, z.core.$strip>>;
8142
+ timezone: z.ZodOptional<z.ZodString>;
8143
+ invert: z.ZodOptional<z.ZodBoolean>;
8144
+ }, z.core.$strip>>;
7991
8145
  }, z.core.$strip>>>;
7992
8146
  }, z.core.$strip>;
7993
8147
  profiles: z.ZodOptional<z.ZodObject<{
@@ -8086,6 +8240,11 @@ export declare const notificationRulesCapability: {
8086
8240
  exitDelaySec: z.ZodNumber;
8087
8241
  entryDelaySec: z.ZodNumber;
8088
8242
  triggeredDurationSec: z.ZodNumber;
8243
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8244
+ rearmAfter: "rearmAfter";
8245
+ disableAfter: "disableAfter";
8246
+ doNothing: "doNothing";
8247
+ }>>;
8089
8248
  announceArm: z.ZodOptional<z.ZodBoolean>;
8090
8249
  announceTargets: z.ZodArray<z.ZodString>;
8091
8250
  nonBlocking: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -8129,6 +8288,20 @@ export declare const notificationRulesCapability: {
8129
8288
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
8130
8289
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
8131
8290
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
8291
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8292
+ rearmAfter: "rearmAfter";
8293
+ disableAfter: "disableAfter";
8294
+ doNothing: "doNothing";
8295
+ }>>;
8296
+ schedule: z.ZodOptional<z.ZodObject<{
8297
+ windows: z.ZodArray<z.ZodObject<{
8298
+ days: z.ZodArray<z.ZodNumber>;
8299
+ startMinute: z.ZodNumber;
8300
+ endMinute: z.ZodNumber;
8301
+ }, z.core.$strip>>;
8302
+ timezone: z.ZodOptional<z.ZodString>;
8303
+ invert: z.ZodOptional<z.ZodBoolean>;
8304
+ }, z.core.$strip>>;
8132
8305
  }, z.core.$strip>>>;
8133
8306
  }, z.core.$strip>;
8134
8307
  profiles: z.ZodOptional<z.ZodObject<{
@@ -8223,6 +8396,11 @@ export declare const notificationRulesCapability: {
8223
8396
  exitDelaySec: z.ZodNumber;
8224
8397
  entryDelaySec: z.ZodNumber;
8225
8398
  triggeredDurationSec: z.ZodNumber;
8399
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8400
+ rearmAfter: "rearmAfter";
8401
+ disableAfter: "disableAfter";
8402
+ doNothing: "doNothing";
8403
+ }>>;
8226
8404
  announceArm: z.ZodOptional<z.ZodBoolean>;
8227
8405
  announceTargets: z.ZodArray<z.ZodString>;
8228
8406
  nonBlocking: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -8266,6 +8444,20 @@ export declare const notificationRulesCapability: {
8266
8444
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
8267
8445
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
8268
8446
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
8447
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8448
+ rearmAfter: "rearmAfter";
8449
+ disableAfter: "disableAfter";
8450
+ doNothing: "doNothing";
8451
+ }>>;
8452
+ schedule: z.ZodOptional<z.ZodObject<{
8453
+ windows: z.ZodArray<z.ZodObject<{
8454
+ days: z.ZodArray<z.ZodNumber>;
8455
+ startMinute: z.ZodNumber;
8456
+ endMinute: z.ZodNumber;
8457
+ }, z.core.$strip>>;
8458
+ timezone: z.ZodOptional<z.ZodString>;
8459
+ invert: z.ZodOptional<z.ZodBoolean>;
8460
+ }, z.core.$strip>>;
8269
8461
  }, z.core.$strip>>>;
8270
8462
  }, z.core.$strip>;
8271
8463
  profiles: z.ZodOptional<z.ZodObject<{
@@ -8362,6 +8554,11 @@ export declare const notificationRulesCapability: {
8362
8554
  exitDelaySec: z.ZodNumber;
8363
8555
  entryDelaySec: z.ZodNumber;
8364
8556
  triggeredDurationSec: z.ZodNumber;
8557
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8558
+ rearmAfter: "rearmAfter";
8559
+ disableAfter: "disableAfter";
8560
+ doNothing: "doNothing";
8561
+ }>>;
8365
8562
  announceArm: z.ZodOptional<z.ZodBoolean>;
8366
8563
  announceTargets: z.ZodArray<z.ZodString>;
8367
8564
  nonBlocking: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -8405,6 +8602,20 @@ export declare const notificationRulesCapability: {
8405
8602
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
8406
8603
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
8407
8604
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
8605
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8606
+ rearmAfter: "rearmAfter";
8607
+ disableAfter: "disableAfter";
8608
+ doNothing: "doNothing";
8609
+ }>>;
8610
+ schedule: z.ZodOptional<z.ZodObject<{
8611
+ windows: z.ZodArray<z.ZodObject<{
8612
+ days: z.ZodArray<z.ZodNumber>;
8613
+ startMinute: z.ZodNumber;
8614
+ endMinute: z.ZodNumber;
8615
+ }, z.core.$strip>>;
8616
+ timezone: z.ZodOptional<z.ZodString>;
8617
+ invert: z.ZodOptional<z.ZodBoolean>;
8618
+ }, z.core.$strip>>;
8408
8619
  }, z.core.$strip>>>;
8409
8620
  }, z.core.$strip>;
8410
8621
  profiles: z.ZodOptional<z.ZodObject<{
@@ -8501,6 +8712,11 @@ export declare const notificationRulesCapability: {
8501
8712
  exitDelaySec: z.ZodNumber;
8502
8713
  entryDelaySec: z.ZodNumber;
8503
8714
  triggeredDurationSec: z.ZodNumber;
8715
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8716
+ rearmAfter: "rearmAfter";
8717
+ disableAfter: "disableAfter";
8718
+ doNothing: "doNothing";
8719
+ }>>;
8504
8720
  announceArm: z.ZodOptional<z.ZodBoolean>;
8505
8721
  announceTargets: z.ZodArray<z.ZodString>;
8506
8722
  nonBlocking: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -8544,6 +8760,20 @@ export declare const notificationRulesCapability: {
8544
8760
  exitDelaySec: z.ZodOptional<z.ZodNumber>;
8545
8761
  entryDelaySec: z.ZodOptional<z.ZodNumber>;
8546
8762
  triggeredDurationSec: z.ZodOptional<z.ZodNumber>;
8763
+ postTriggeredAction: z.ZodOptional<z.ZodEnum<{
8764
+ rearmAfter: "rearmAfter";
8765
+ disableAfter: "disableAfter";
8766
+ doNothing: "doNothing";
8767
+ }>>;
8768
+ schedule: z.ZodOptional<z.ZodObject<{
8769
+ windows: z.ZodArray<z.ZodObject<{
8770
+ days: z.ZodArray<z.ZodNumber>;
8771
+ startMinute: z.ZodNumber;
8772
+ endMinute: z.ZodNumber;
8773
+ }, z.core.$strip>>;
8774
+ timezone: z.ZodOptional<z.ZodString>;
8775
+ invert: z.ZodOptional<z.ZodBoolean>;
8776
+ }, z.core.$strip>>;
8547
8777
  }, z.core.$strip>>>;
8548
8778
  }, z.core.$strip>;
8549
8779
  profiles: z.ZodOptional<z.ZodObject<{
@@ -1,3 +1,4 @@
1
+ import { DeviceType } from './device-type.js';
1
2
  /** An arg the authoring UI collects (not baked into the catalogue entry). */
2
3
  export interface DeviceDoOpenArg {
3
4
  readonly key: string;
@@ -27,6 +28,36 @@ export interface DeviceDoAction {
27
28
  export declare const DEVICE_DO_ACTIONS: readonly DeviceDoAction[];
28
29
  /** True when METHOD_ACCESS_MAP still exposes this cap.method as actuatable. */
29
30
  export declare function isDoActionActuatable(action: DeviceDoAction): boolean;
31
+ /**
32
+ * Catalogue caps a `DeviceType` is expected to offer in the Do picker.
33
+ *
34
+ * Exhaustive over {@link DeviceType}: adding a new enum member without an
35
+ * entry fails the TypeScript build here (same pattern as
36
+ * {@link DEVICE_TYPE_CONTROL_KIND}). An empty list is a deliberate choice
37
+ * for read-only / non-actuatable types — never "forgotten".
38
+ *
39
+ * Camera accessories (ptz, privacy-mask, …) are listed on Camera even though
40
+ * a given camera may bind only a subset; {@link actionsForBoundCaps} still
41
+ * filters to what the device actually binds.
42
+ */
43
+ export declare const DEVICE_TYPE_DO_CAPS: Record<DeviceType, readonly string[]>;
44
+ /**
45
+ * Whether a device type belongs in a Do / automation action device picker.
46
+ *
47
+ * Containers stay in {@link DEVICE_TYPE_DO_CAPS} (empty, for exhaustiveness)
48
+ * but must never appear as selectable targets — actuate the children instead.
49
+ */
50
+ export declare function isDoPickerDeviceType(type: string): boolean;
51
+ /**
52
+ * Do-picker family id — devices that share one may be multi-selected for
53
+ * the same action (several locks, the climate family, cover+valve, …).
54
+ *
55
+ * Distinct from {@link DeviceControlKind}: humidifier / water-heater keep
56
+ * their own control widgets but author with climate siblings.
57
+ */
58
+ export declare function deviceDoFamily(type: string): string;
59
+ /** True when two device types may share one multi-target Do step. */
60
+ export declare function sameDoFamily(leftType: string, rightType: string): boolean;
30
61
  /**
31
62
  * Actions offered for a device that binds the given caps.
32
63
  *
@@ -34,6 +65,32 @@ export declare function isDoActionActuatable(action: DeviceDoAction): boolean;
34
65
  * METHOD_ACCESS_MAP. Empty bindings → empty list (pick a device first).
35
66
  */
36
67
  export declare function actionsForBoundCaps(boundCaps: readonly string[]): readonly DeviceDoAction[];
68
+ /**
69
+ * Catalogue actions for a wire `DeviceType` string — the fallback when
70
+ * bindings have not answered yet (or answered empty for a typed actuator).
71
+ * Unknown type strings → empty.
72
+ */
73
+ export declare function actionsForDeviceType(type: string): readonly DeviceDoAction[];
74
+ /**
75
+ * Union of bound-cap actions with the type's expected catalogue caps.
76
+ *
77
+ * Bindings win for filtering (a lock without `lock-control` bound still
78
+ * offers nothing from bindings alone); the type map fills gaps when the
79
+ * binding read is empty so a Lock / Valve / Climate never shows
80
+ * "No actions for this device" solely because getBindings lagged.
81
+ */
82
+ export declare function actionsForDevice(input: {
83
+ readonly boundCaps: readonly string[] | undefined;
84
+ readonly deviceType: string | undefined;
85
+ }): readonly DeviceDoAction[];
86
+ /**
87
+ * Intersection of {@link actionsForDevice} across several targets — what a
88
+ * multi-select same-family Do step may offer.
89
+ */
90
+ export declare function actionsForDevices(targets: readonly {
91
+ readonly boundCaps?: readonly string[];
92
+ readonly deviceType?: string;
93
+ }[]): readonly DeviceDoAction[];
37
94
  /** The whole catalogue (still actuatable) — for a `{$var}` automation target. */
38
95
  export declare function allDoActions(): readonly DeviceDoAction[];
39
96
  /**
@@ -4993,6 +4993,13 @@ export type AppRouter = TrpcCoreRouter<{
4993
4993
  output: z.infer<typeof notificationOutputCapability.methods.listTargets.output>;
4994
4994
  meta: object;
4995
4995
  }>;
4996
+ getTarget: TRPCQueryProcedure<{
4997
+ input: {
4998
+ [x: string]: unknown;
4999
+ } & z.input<typeof notificationOutputCapability.methods.getTarget.input>;
5000
+ output: z.infer<typeof notificationOutputCapability.methods.getTarget.output>;
5001
+ meta: object;
5002
+ }>;
4996
5003
  discoverTargets: TRPCQueryProcedure<{
4997
5004
  input: {
4998
5005
  [x: string]: unknown;
@@ -5000,6 +5007,13 @@ export type AppRouter = TrpcCoreRouter<{
5000
5007
  output: z.infer<typeof notificationOutputCapability.methods.discoverTargets.output>;
5001
5008
  meta: object;
5002
5009
  }>;
5010
+ probeTargetConfig: TRPCMutationProcedure<{
5011
+ input: {
5012
+ [x: string]: unknown;
5013
+ } & z.input<typeof notificationOutputCapability.methods.probeTargetConfig.input>;
5014
+ output: z.infer<typeof notificationOutputCapability.methods.probeTargetConfig.output>;
5015
+ meta: object;
5016
+ }>;
5003
5017
  send: TRPCMutationProcedure<{
5004
5018
  input: {
5005
5019
  [x: string]: unknown;
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1219 method paths across 165 capabilities.
9
+ * Coverage: 1221 method paths across 165 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -84,7 +84,7 @@ export interface SystemProxy {
84
84
  readonly networkAccess: Pick<InferProvider<typeof networkAccessCapability>, 'start' | 'stop' | 'getEndpoint' | 'getStatus' | 'listEndpoints'>;
85
85
  readonly networkQuality: Pick<InferProvider<typeof networkQualityCapability>, 'getAllStats'>;
86
86
  readonly nodes: Pick<InferProvider<typeof nodesCapability>, 'topology' | 'directory' | 'deployAddon' | 'undeployAddon' | 'restartAddon' | 'restartProcess' | 'restartNode' | 'shutdownNode' | 'renameNode' | 'clusterAddonStatus' | 'getCapUsageGraph' | 'getNodeAddons' | 'setProcessLogLevel' | 'executeQuery'>;
87
- readonly notificationOutput: Pick<InferProvider<typeof notificationOutputCapability>, 'listTargetKinds' | 'listTargets' | 'discoverTargets' | 'send' | 'testTarget' | 'upsertTarget' | 'deleteTarget' | 'setTargetEnabled'>;
87
+ readonly notificationOutput: Pick<InferProvider<typeof notificationOutputCapability>, 'listTargetKinds' | 'listTargets' | 'getTarget' | 'discoverTargets' | 'probeTargetConfig' | 'send' | 'testTarget' | 'upsertTarget' | 'deleteTarget' | 'setTargetEnabled'>;
88
88
  readonly notificationRules: Pick<InferProvider<typeof notificationRulesCapability>, 'listRules' | 'getRule' | 'createRule' | 'updateRule' | 'deleteRule' | 'setRuleEnabled' | 'listSequences' | 'getSequence' | 'createSequence' | 'updateSequence' | 'deleteSequence' | 'getClipRetentionAsks' | 'listDeviceMutes' | 'testRule' | 'previewStateSummary' | 'getConditionCatalog' | 'getTemplateCatalog' | 'previewTemplate' | 'getHistory' | 'getRuleLastRuns' | 'resolveArtifactUrl' | 'listSnoozes' | 'createSnooze' | 'cancelSnooze' | 'getAlarmConfig' | 'setAlarmConfig' | 'createAlarmProfile' | 'renameAlarmProfile' | 'deleteAlarmProfile' | 'activateAlarmProfile' | 'getAlarmSensors'>;
89
89
  readonly osdManager: Pick<InferProvider<typeof osdManagerCapability>, 'getConditionSupport' | 'copyDeviceConfiguration' | 'listTemplates' | 'upsertTemplate' | 'deleteTemplate'>;
90
90
  readonly pipelineExecutor: Pick<InferProvider<typeof pipelineExecutorCapability>, 'getAvailableEngines' | 'getSelectedEngine' | 'getDefaultSteps' | 'getEngineProvisioning' | 'getVideoPipelineSteps' | 'setVideoPipelineSteps' | 'clearDeviceOverrides' | 'getInferenceDeviceHealth' | 'rearmInferenceDevice' | 'getSchema' | 'getGlobalSteps' | 'getGlobalPipelineConfig' | 'getOrchestratorConfigSchema' | 'validatePipeline' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate' | 'getCapabilities' | 'getAddonModels' | 'downloadModel' | 'deleteModel' | 'cacheFrameInPool' | 'inferCached' | 'uncacheFrame' | 'getEffectiveTuning' | 'listLoadedEngines' | 'spinEngine' | 'killEngine' | 'listReferenceImages' | 'getReferenceImage' | 'getReferenceAudioFiles' | 'getReferenceAudio' | 'getAudioCapabilities' | 'runAudioTest' | 'getDetectionConfigSchema'>;
package/dist/index.d.ts CHANGED
@@ -179,7 +179,7 @@ export type { DeviceConstructor, DeviceContext, DeviceManagerApi, IDeviceRegistr
179
179
  export type { AccessoryControlInput, AccessoryControlKind, AccessoryControlPick, DeviceControlKind, SensorMapping, } from './device/device-control-resolution.js';
180
180
  export { DEVICE_TYPE_CONTROL_KIND, hasMotionTrigger, isNode, MOTION_TRIGGER_FEATURE, pickAccessoryControl, resolveDeviceControlKind, resolveMutate, SENSOR_FEATURES, SENSOR_MAP, } from './device/device-control-resolution.js';
181
181
  export type { DeviceDoAction, DeviceDoOpenArg } from './device/device-do-actions.js';
182
- export { actionsForBoundCaps, allDoActions, DEVICE_DO_ACTIONS, doActionSelectValue, isDoActionActuatable, matchDoAction, } from './device/device-do-actions.js';
182
+ export { actionsForBoundCaps, actionsForDevice, actionsForDevices, actionsForDeviceType, allDoActions, DEVICE_DO_ACTIONS, DEVICE_TYPE_DO_CAPS, deviceDoFamily, doActionSelectValue, isDoActionActuatable, isDoPickerDeviceType, matchDoAction, sameDoFamily, } from './device/device-do-actions.js';
183
183
  export type { ChildLayout, ChildLayoutEntry, CreateDeviceSpec, DeviceCapDisplayOverride, DeviceDiscovery, DeviceDisplayOverride, DeviceManualCreation, DeviceMeta, DiscoveredDevice, InitialDeviceMeta, RoleDisplayDefault, SavedDevice, } from './device/device-management.js';
184
184
  export type { DeviceProfile, DeviceProfileDefaults, DeviceProfileMatch, PipelinePhaseMode, } from './device/device-profile.js';
185
185
  export { BATTERY_DEVICE_PROFILE, DEVICE_PROFILES, deviceMatchesProfile, resolveDeviceProfile, } from './device/device-profile.js';
@@ -242,15 +242,15 @@ export { type PreparedAction, type PreparedAttachment, type PreparedNotification
242
242
  export { htmlToText, markdownToHtmlLite, markdownToText, type NotificationFormat as NotificationBodyFormat, resolveFormat, textToHtml, transcodeBody, } from './notification/format-transcode.js';
243
243
  export { conditionExclusionReason, conditionVisibleForKind, defaultDeliveryForSection, droppedConditionsForKind, isAudioRule, isOccupancyRule, isSystemDelivery, isSystemRuleKind, kindsForDiscriminator, NC_AUDIO_SEED, NC_CAMERA_SCOPE_CAP_NAME, NC_OCCUPANCY_DEFAULTS, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_RULE_SECTIONS, NC_SYSTEM_DELIVERY, NC_SYSTEM_RULE_KINDS, type NcDroppedCondition, type NcKindVisibilitySubject, type NcRuleEditorSection, type NcRuleEditorSectionKey, type NcRuleKind, type NcRuleKindSpec, type NcRuleOwningSectionKey, type NcRuleSection, type NcRuleSectionKey, type NcRuleConditionsSubject, type NcRuleSectionSubject, type NcRuleSeed, parseRuleSection, ruleDeviceCompatCapNames, ruleDeviceCompatCapQueries, ruleEditorSectionsForKind, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, systemFamilyOfKind, systemRuleKindOf, } from './notification/rule-kinds.js';
244
244
  export { isScheduleActive } from './notification/schedule.js';
245
- export { isAlarmControllableCap, NC_ALARM_CONTROLLABLE_CAPS, NC_ALARM_OPENING_EVENT_KINDS, NC_SENSOR_TRANSITION_NEVER_FIRES_WARNING, type NcAlarmControllableCap, type NcAlarmMembershipSubject, type NcAlarmOpeningEventKind, ruleBelongsToAlarm, sensorTransitionNeverFires, } from './notification/alarm-membership.js';
245
+ export { isAlarmControllableCap, NC_ALARM_CONTROLLABLE_CAPS, NC_ALARM_OPENING_EVENT_KINDS, NC_SENSOR_TRANSITION_NEVER_FIRES_WARNING, type NcAlarmControllableCap, type NcAlarmMembershipSubject, type NcAlarmOpeningEventKind, ruleAutoTriggersAlarm, ruleBelongsToAlarm, ruleGatedOnArmedState, sensorTransitionNeverFires, } from './notification/alarm-membership.js';
246
246
  export { alarmDeviceBlocksArming, alarmDeviceSecureOnArm, type AlarmDeviceBlocksInput, type AlarmDeviceSecureOnArmInput, type NcAlarmSecureActuation, secureActuationFor, } from './notification/alarm-controllable.js';
247
- export { alarmPatchLanded, applyBlockingEdit, applyModeDelaysEdits, applyModeDeviceListEdit, applyNonBlockingEdit, applySecureOnArmEdit, NC_ALARM_DELAY_FIELDS, type NcAlarmDelayField, type NcAlarmDelaySettings, type NcAlarmDelaySource, type NcAlarmModeDeviceListEditResult, type NcAlarmNonBlockingEditResult, type NcAlarmResolvedDelays, resolveModeDelays, } from './notification/alarm-settings.js';
247
+ export { alarmPatchLanded, applyBlockingEdit, applyModeDelaysEdits, applyModeDeviceListEdit, applyNonBlockingEdit, applySecureOnArmEdit, derivePostTriggeredAction, NC_ALARM_DELAY_FIELDS, type NcAlarmDelayField, type NcAlarmDelaySettings, type NcAlarmDelaySource, type NcAlarmModeDeviceListEditResult, type NcAlarmNonBlockingEditResult, type NcAlarmResolvedDelays, resolveModeDelays, } from './notification/alarm-settings.js';
248
248
  export { activateAlarmProfile, alarmProfileById, cloneAlarmSettings, createAlarmProfile, deleteAlarmProfile, ensureAlarmProfiles, isDefaultAlarmProfileId, NC_ALARM_DEFAULT_PROFILE_ID, NC_ALARM_DEFAULT_PROFILE_NAME, NC_ALARM_SYSTEM_DEFAULT_DELAYS, ncAlarmSystemDefaultSettings, type NcAlarmProfileCreateSource, type NcAlarmProfileRecord, type NcAlarmProfilesMutationResult, type NcAlarmProfilesRefuseReason, type NcAlarmProfilesState, renameAlarmProfile, syncActiveAlarmProfileSettings, } from './notification/alarm-profiles.js';
249
249
  export { NC_SENSOR_RAISED_FIELD_BY_KIND, NC_SENSOR_TRANSITION_KINDS, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, sensorRaisedOf, sensorTransitionOffered, } from './notification/sensor-raised.js';
250
250
  export { NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, isHeldBackTemplateVar, isKnownTemplateVar, servedTemplateVars, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, templateVarsFor, } from './notification/template-vars.js';
251
251
  export { NC_SYSTEM_EVENT_FILTER_KEYS, type NcSystemEventFilterKey, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, } from './notification/system-event-filters.js';
252
252
  export { describeSystemEventFamilyProblem, isSystemEventFamily, NC_SYSTEM_EVENT_CONDITION_FILTER_KEYS, NC_SYSTEM_EVENT_FAMILIES, NC_SYSTEM_EVENT_FAMILY, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, type NcSystemEventConditionFilterKey, type NcSystemEventFamily, type NcSystemEventFamilyProblem, type NcSystemEventFamilyVerdict, type NcSystemEventKindGroupSpec, systemEventFamilyOf, systemEventFamilyProblems, systemEventKindNamesOf, systemEventKindsOfFamily, } from './notification/system-event-families.js';
253
- export { describeSystemEventDeliveryProblem, isSystemEventSummaryRule, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, type NcSummarySendTime, type NcSystemEventDeliveryProblem, type NcSystemEventDeliverySubject, scheduleForSendTimes, sendTimesOfSchedule, systemEventDeliveryProblems, systemEventSummaryScheduleOf, systemEventSummarySplitOf, templateCarriesSummary, } from './notification/system-event-summary.js';
253
+ export { describeSystemEventDeliveryProblem, isSystemEventSummaryRule, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, type NcSummarySendTime, type NcSystemEventDeliveryProblem, type NcSystemEventDeliverySubject, scheduleForSendTimes, sendTimesForEditor, sendTimesOfSchedule, systemEventDeliveryProblems, systemEventSummaryScheduleOf, systemEventSummarySplitOf, templateCarriesSummary, } from './notification/system-event-summary.js';
254
254
  export { NC_SERVER_PACKAGE_NAME, NC_UPDATE_EVENT_PACKAGE_NAMES, type NcInstalledPackageLike, type NcScopePickerItem, nodePickerItems, packagePickerItems, } from './notification/scope-picker-items.js';
255
255
  export type { TimelapseCadencePair, TimelapsePreviewMode, TimelapseRule, TimelapseRuleInput, TimelapseRulePatch, TimelapseTemplate, } from './notification/timelapse-rule.js';
256
256
  export type { StateLabel, StateLabelKey, StateLabelLocale } from './i18n/state-labels.js';