@camstack/types 1.2.7 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/addon.js +2 -2
  2. package/dist/addon.mjs +2 -2
  3. package/dist/capabilities/capability-definition.d.ts +74 -3
  4. package/dist/capabilities/custom-actions.d.ts +19 -0
  5. package/dist/capabilities/day-night.cap.d.ts +8 -8
  6. package/dist/capabilities/face-gallery.cap.d.ts +12 -0
  7. package/dist/capabilities/index.d.ts +29 -30
  8. package/dist/capabilities/notification-rules.cap.d.ts +1601 -0
  9. package/dist/capabilities/notifier.cap.d.ts +3 -3
  10. package/dist/capabilities/pipeline-analytics.cap.d.ts +8 -8
  11. package/dist/capabilities/recording.cap.d.ts +2 -2
  12. package/dist/capabilities/toast.cap.d.ts +2 -2
  13. package/dist/catalogs/nc-taxonomy.d.ts +53 -0
  14. package/dist/enums/event-category.d.ts +0 -3
  15. package/dist/enums.js +1 -1
  16. package/dist/enums.mjs +1 -1
  17. package/dist/{event-category-D4HJq7Mw.mjs → event-category-BLcNejAE.mjs} +0 -3
  18. package/dist/{event-category-CGj9fI4L.js → event-category-Cdyife4p.js} +0 -3
  19. package/dist/generated/addon-api.d.ts +1437 -367
  20. package/dist/generated/capability-router-map.d.ts +4 -4
  21. package/dist/generated/method-access-map.d.ts +1 -1
  22. package/dist/generated/system-proxy.d.ts +2 -0
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.js +2154 -1343
  25. package/dist/index.mjs +2125 -1341
  26. package/dist/interfaces/addon.d.ts +2 -2
  27. package/dist/interfaces/capability.d.ts +0 -1
  28. package/dist/interfaces/event-bus.d.ts +0 -16
  29. package/dist/interfaces/ops-log.d.ts +2 -2
  30. package/dist/{sleep-eVjOy4ev.js → sleep-BG8hQTA8.js} +2 -2
  31. package/dist/{sleep-BQ60XlE9.mjs → sleep-DiOnzenz.mjs} +2 -2
  32. package/package.json +1 -1
  33. package/dist/capabilities/advanced-notifier.cap.d.ts +0 -256
  34. package/dist/interfaces/advanced-notifier.d.ts +0 -73
@@ -1656,149 +1656,6 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
1656
1656
  meta: object;
1657
1657
  }>;
1658
1658
  }>>;
1659
- advancedNotifier: import("@trpc/server").TRPCBuiltRouter<{
1660
- ctx: TrpcContext;
1661
- meta: object;
1662
- errorShape: import("@camstack/types").AugmentedErrorShape;
1663
- transformer: true;
1664
- }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
1665
- getRules: import("@trpc/server").TRPCQueryProcedure<{
1666
- input: {
1667
- nodeId?: string | undefined;
1668
- } | undefined;
1669
- output: {
1670
- rules: readonly {
1671
- id: string;
1672
- name: string;
1673
- enabled: boolean;
1674
- eventTypes: readonly string[];
1675
- conditions: {
1676
- deviceIds?: readonly number[] | undefined;
1677
- classNames?: readonly string[] | undefined;
1678
- zoneIds?: readonly string[] | undefined;
1679
- minConfidence?: number | undefined;
1680
- source?: "any" | "pipeline" | "onboard" | undefined;
1681
- schedule?: {
1682
- days: readonly number[];
1683
- startHour: number;
1684
- endHour: number;
1685
- } | undefined;
1686
- cooldownSeconds?: number | undefined;
1687
- minDwellSeconds?: number | undefined;
1688
- eventTypeTokens?: readonly string[] | undefined;
1689
- clipDescription?: {
1690
- text: string;
1691
- minSimilarity: number;
1692
- } | undefined;
1693
- labels?: readonly string[] | undefined;
1694
- };
1695
- outputs: readonly string[];
1696
- priority: "high" | "low" | "normal" | "critical";
1697
- template?: {
1698
- title: string;
1699
- body: string;
1700
- imageMode: "none" | "full" | "crop" | "annotated";
1701
- } | undefined;
1702
- }[];
1703
- };
1704
- meta: object;
1705
- }>;
1706
- upsertRule: import("@trpc/server").TRPCMutationProcedure<{
1707
- input: {
1708
- [x: string]: unknown;
1709
- rule: {
1710
- id: string;
1711
- name: string;
1712
- enabled: boolean;
1713
- eventTypes: readonly string[];
1714
- conditions: {
1715
- deviceIds?: readonly number[] | undefined;
1716
- classNames?: readonly string[] | undefined;
1717
- zoneIds?: readonly string[] | undefined;
1718
- minConfidence?: number | undefined;
1719
- source?: "any" | "pipeline" | "onboard" | undefined;
1720
- schedule?: {
1721
- days: readonly number[];
1722
- startHour: number;
1723
- endHour: number;
1724
- } | undefined;
1725
- cooldownSeconds?: number | undefined;
1726
- minDwellSeconds?: number | undefined;
1727
- eventTypeTokens?: readonly string[] | undefined;
1728
- clipDescription?: {
1729
- text: string;
1730
- minSimilarity: number;
1731
- } | undefined;
1732
- labels?: readonly string[] | undefined;
1733
- };
1734
- outputs: readonly string[];
1735
- priority: "high" | "low" | "normal" | "critical";
1736
- template?: {
1737
- title: string;
1738
- body: string;
1739
- imageMode: "none" | "full" | "crop" | "annotated";
1740
- } | undefined;
1741
- };
1742
- };
1743
- output: {
1744
- success: true;
1745
- };
1746
- meta: object;
1747
- }>;
1748
- deleteRule: import("@trpc/server").TRPCMutationProcedure<{
1749
- input: {
1750
- [x: string]: unknown;
1751
- ruleId: string;
1752
- };
1753
- output: {
1754
- success: true;
1755
- };
1756
- meta: object;
1757
- }>;
1758
- testRule: import("@trpc/server").TRPCMutationProcedure<{
1759
- input: {
1760
- [x: string]: unknown;
1761
- ruleId: string;
1762
- lookbackMinutes: number;
1763
- };
1764
- output: {
1765
- results: readonly {
1766
- ruleId: string;
1767
- eventId: string;
1768
- timestamp: number;
1769
- wouldFire: boolean;
1770
- reason?: string | undefined;
1771
- }[];
1772
- };
1773
- meta: object;
1774
- }>;
1775
- getHistory: import("@trpc/server").TRPCQueryProcedure<{
1776
- input: {
1777
- [x: string]: unknown;
1778
- filter?: {
1779
- ruleId?: string | undefined;
1780
- deviceId?: number | undefined;
1781
- from?: number | undefined;
1782
- to?: number | undefined;
1783
- limit?: number | undefined;
1784
- } | undefined;
1785
- };
1786
- output: {
1787
- entries: readonly {
1788
- id: string;
1789
- ruleId: string;
1790
- ruleName: string;
1791
- eventId: string;
1792
- timestamp: number;
1793
- outputs: readonly string[];
1794
- success: boolean;
1795
- error?: string | undefined;
1796
- deviceId?: number | undefined;
1797
- }[];
1798
- };
1799
- meta: object;
1800
- }>;
1801
- }>>;
1802
1659
  airQualitySensor: import("@trpc/server").TRPCBuiltRouter<{
1803
1660
  ctx: TrpcContext;
1804
1661
  meta: object;
@@ -3457,7 +3314,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
3457
3314
  deviceId: number;
3458
3315
  };
3459
3316
  output: {
3460
- modes: ("auto" | "schedule" | "night" | "day")[];
3317
+ modes: ("auto" | "night" | "day" | "schedule")[];
3461
3318
  supportsSensitivity: boolean;
3462
3319
  supportsSwitchDelay: boolean;
3463
3320
  sensitivity?: {
@@ -3478,7 +3335,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
3478
3335
  [x: string]: unknown;
3479
3336
  deviceId: number;
3480
3337
  settings: {
3481
- mode?: "auto" | "schedule" | "night" | "day" | undefined;
3338
+ mode?: "auto" | "night" | "day" | "schedule" | undefined;
3482
3339
  sensitivity?: number | undefined;
3483
3340
  switchDelaySec?: number | undefined;
3484
3341
  };
@@ -6145,6 +6002,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
6145
6002
  h: number;
6146
6003
  } | undefined;
6147
6004
  keyFrameMediaKey?: string | undefined;
6005
+ bestMatchScore?: number | undefined;
6006
+ nativeFaceShortSidePx?: number | undefined;
6007
+ suggestedIdentityId?: string | undefined;
6008
+ suggestedMatchScore?: number | undefined;
6148
6009
  }[];
6149
6010
  meta: object;
6150
6011
  }>;
@@ -6170,6 +6031,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
6170
6031
  h: number;
6171
6032
  } | undefined;
6172
6033
  keyFrameMediaKey?: string | undefined;
6034
+ bestMatchScore?: number | undefined;
6035
+ nativeFaceShortSidePx?: number | undefined;
6036
+ suggestedIdentityId?: string | undefined;
6037
+ suggestedMatchScore?: number | undefined;
6173
6038
  } | null;
6174
6039
  meta: object;
6175
6040
  }>;
@@ -9315,81 +9180,730 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9315
9180
  meta: object;
9316
9181
  }>;
9317
9182
  }>>;
9318
- notifier: import("@trpc/server").TRPCBuiltRouter<{
9183
+ notificationRules: import("@trpc/server").TRPCBuiltRouter<{
9319
9184
  ctx: TrpcContext;
9320
9185
  meta: object;
9321
9186
  errorShape: import("@camstack/types").AugmentedErrorShape;
9322
9187
  transformer: true;
9323
9188
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9324
- getStatus: import("@trpc/server").TRPCQueryProcedure<{
9189
+ listRules: import("@trpc/server").TRPCQueryProcedure<{
9325
9190
  input: {
9326
9191
  [x: string]: unknown;
9327
- deviceId: number;
9328
9192
  };
9329
- output: unknown;
9193
+ output: {
9194
+ rules: {
9195
+ name: string;
9196
+ enabled: boolean;
9197
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
9198
+ conditions: {
9199
+ devices?: number[] | undefined;
9200
+ classes?: string[] | undefined;
9201
+ classesExclude?: string[] | undefined;
9202
+ minConfidence?: number | undefined;
9203
+ zones?: {
9204
+ ids: string[];
9205
+ match: "any" | "all";
9206
+ } | undefined;
9207
+ zonesExclude?: string[] | undefined;
9208
+ labelEquals?: string[] | undefined;
9209
+ identities?: string[] | undefined;
9210
+ plates?: {
9211
+ values: string[];
9212
+ maxDistance: number;
9213
+ } | undefined;
9214
+ identitiesExclude?: string[] | undefined;
9215
+ minImportance?: number | undefined;
9216
+ minDwellSeconds?: number | undefined;
9217
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
9218
+ minLabelConfidence?: number | undefined;
9219
+ eventTypeTokens?: string[] | undefined;
9220
+ sensorKinds?: string[] | undefined;
9221
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
9222
+ customZones?: {
9223
+ kind: "polygon";
9224
+ points: {
9225
+ x: number;
9226
+ y: number;
9227
+ }[];
9228
+ }[] | undefined;
9229
+ occupancy?: {
9230
+ op: "<=" | ">=" | "became-occupied" | "became-free";
9231
+ count: number;
9232
+ sustainSeconds: number;
9233
+ zoneId?: string | undefined;
9234
+ className?: string | undefined;
9235
+ } | undefined;
9236
+ };
9237
+ targets: {
9238
+ targetId: string;
9239
+ params?: Record<string, unknown> | undefined;
9240
+ }[];
9241
+ media: {
9242
+ attach: "none" | "best" | "best-matching" | "keyFrame";
9243
+ };
9244
+ throttle: {
9245
+ cooldownSec: number;
9246
+ scope: "rule" | "rule-device";
9247
+ };
9248
+ priority: number;
9249
+ id: string;
9250
+ createdBy: string;
9251
+ createdAt: number;
9252
+ updatedAt: number;
9253
+ disabledTargetIds: string[];
9254
+ schedule?: {
9255
+ windows: {
9256
+ days: number[];
9257
+ startMinute: number;
9258
+ endMinute: number;
9259
+ }[];
9260
+ timezone?: string | undefined;
9261
+ invert?: boolean | undefined;
9262
+ } | undefined;
9263
+ template?: {
9264
+ title?: string | undefined;
9265
+ body?: string | undefined;
9266
+ } | undefined;
9267
+ ownerUserId?: string | undefined;
9268
+ }[];
9269
+ };
9330
9270
  meta: object;
9331
9271
  }>;
9332
- send: import("@trpc/server").TRPCMutationProcedure<{
9272
+ getRule: import("@trpc/server").TRPCQueryProcedure<{
9333
9273
  input: {
9334
9274
  [x: string]: unknown;
9335
- deviceId: number;
9336
- body: string;
9337
- title?: string | undefined;
9338
- image?: string | undefined;
9339
- priority?: "high" | "min" | "low" | "normal" | undefined;
9340
- channel?: string | undefined;
9341
- recipients?: string[] | undefined;
9342
- actions?: {
9343
- id: string;
9344
- title: string;
9345
- uri?: string | undefined;
9346
- destructive?: boolean | undefined;
9347
- }[] | undefined;
9348
- data?: Record<string, unknown> | undefined;
9275
+ ruleId: string;
9349
9276
  };
9350
9277
  output: {
9351
- notificationId: string;
9352
- acceptedAt: number;
9278
+ rule: {
9279
+ name: string;
9280
+ enabled: boolean;
9281
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
9282
+ conditions: {
9283
+ devices?: number[] | undefined;
9284
+ classes?: string[] | undefined;
9285
+ classesExclude?: string[] | undefined;
9286
+ minConfidence?: number | undefined;
9287
+ zones?: {
9288
+ ids: string[];
9289
+ match: "any" | "all";
9290
+ } | undefined;
9291
+ zonesExclude?: string[] | undefined;
9292
+ labelEquals?: string[] | undefined;
9293
+ identities?: string[] | undefined;
9294
+ plates?: {
9295
+ values: string[];
9296
+ maxDistance: number;
9297
+ } | undefined;
9298
+ identitiesExclude?: string[] | undefined;
9299
+ minImportance?: number | undefined;
9300
+ minDwellSeconds?: number | undefined;
9301
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
9302
+ minLabelConfidence?: number | undefined;
9303
+ eventTypeTokens?: string[] | undefined;
9304
+ sensorKinds?: string[] | undefined;
9305
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
9306
+ customZones?: {
9307
+ kind: "polygon";
9308
+ points: {
9309
+ x: number;
9310
+ y: number;
9311
+ }[];
9312
+ }[] | undefined;
9313
+ occupancy?: {
9314
+ op: "<=" | ">=" | "became-occupied" | "became-free";
9315
+ count: number;
9316
+ sustainSeconds: number;
9317
+ zoneId?: string | undefined;
9318
+ className?: string | undefined;
9319
+ } | undefined;
9320
+ };
9321
+ targets: {
9322
+ targetId: string;
9323
+ params?: Record<string, unknown> | undefined;
9324
+ }[];
9325
+ media: {
9326
+ attach: "none" | "best" | "best-matching" | "keyFrame";
9327
+ };
9328
+ throttle: {
9329
+ cooldownSec: number;
9330
+ scope: "rule" | "rule-device";
9331
+ };
9332
+ priority: number;
9333
+ id: string;
9334
+ createdBy: string;
9335
+ createdAt: number;
9336
+ updatedAt: number;
9337
+ disabledTargetIds: string[];
9338
+ schedule?: {
9339
+ windows: {
9340
+ days: number[];
9341
+ startMinute: number;
9342
+ endMinute: number;
9343
+ }[];
9344
+ timezone?: string | undefined;
9345
+ invert?: boolean | undefined;
9346
+ } | undefined;
9347
+ template?: {
9348
+ title?: string | undefined;
9349
+ body?: string | undefined;
9350
+ } | undefined;
9351
+ ownerUserId?: string | undefined;
9352
+ } | null;
9353
9353
  };
9354
9354
  meta: object;
9355
9355
  }>;
9356
- cancel: import("@trpc/server").TRPCMutationProcedure<{
9356
+ createRule: import("@trpc/server").TRPCMutationProcedure<{
9357
9357
  input: {
9358
9358
  [x: string]: unknown;
9359
- deviceId: number;
9360
- notificationId: string;
9359
+ rule: {
9360
+ name: string;
9361
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
9362
+ targets: {
9363
+ targetId: string;
9364
+ params?: Record<string, unknown> | undefined;
9365
+ }[];
9366
+ enabled?: boolean | undefined;
9367
+ conditions?: {
9368
+ devices?: number[] | undefined;
9369
+ classes?: string[] | undefined;
9370
+ classesExclude?: string[] | undefined;
9371
+ minConfidence?: number | undefined;
9372
+ zones?: {
9373
+ ids: string[];
9374
+ match?: "any" | "all" | undefined;
9375
+ } | undefined;
9376
+ zonesExclude?: string[] | undefined;
9377
+ labelEquals?: string[] | undefined;
9378
+ identities?: string[] | undefined;
9379
+ plates?: {
9380
+ values: string[];
9381
+ maxDistance?: number | undefined;
9382
+ } | undefined;
9383
+ identitiesExclude?: string[] | undefined;
9384
+ minImportance?: number | undefined;
9385
+ minDwellSeconds?: number | undefined;
9386
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
9387
+ minLabelConfidence?: number | undefined;
9388
+ eventTypeTokens?: string[] | undefined;
9389
+ sensorKinds?: string[] | undefined;
9390
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
9391
+ customZones?: {
9392
+ kind: "polygon";
9393
+ points: {
9394
+ x: number;
9395
+ y: number;
9396
+ }[];
9397
+ }[] | undefined;
9398
+ occupancy?: {
9399
+ zoneId?: string | undefined;
9400
+ className?: string | undefined;
9401
+ op?: "<=" | ">=" | "became-occupied" | "became-free" | undefined;
9402
+ count?: number | undefined;
9403
+ sustainSeconds?: number | undefined;
9404
+ } | undefined;
9405
+ } | undefined;
9406
+ schedule?: {
9407
+ windows: {
9408
+ days: number[];
9409
+ startMinute: number;
9410
+ endMinute: number;
9411
+ }[];
9412
+ timezone?: string | undefined;
9413
+ invert?: boolean | undefined;
9414
+ } | undefined;
9415
+ media?: {
9416
+ attach?: "none" | "best" | "best-matching" | "keyFrame" | undefined;
9417
+ } | undefined;
9418
+ throttle?: {
9419
+ cooldownSec?: number | undefined;
9420
+ scope?: "rule" | "rule-device" | undefined;
9421
+ } | undefined;
9422
+ template?: {
9423
+ title?: string | undefined;
9424
+ body?: string | undefined;
9425
+ } | undefined;
9426
+ priority?: number | undefined;
9427
+ ownerUserId?: string | undefined;
9428
+ };
9361
9429
  };
9362
- output: void;
9363
- meta: object;
9364
- }>;
9365
- }>>;
9366
- numericSensor: import("@trpc/server").TRPCBuiltRouter<{
9367
- ctx: TrpcContext;
9368
- meta: object;
9369
- errorShape: import("@camstack/types").AugmentedErrorShape;
9370
- transformer: true;
9371
- }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9372
- getStatus: import("@trpc/server").TRPCQueryProcedure<{
9373
- input: {
9374
- [x: string]: unknown;
9375
- deviceId: number;
9430
+ output: {
9431
+ rule: {
9432
+ name: string;
9433
+ enabled: boolean;
9434
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
9435
+ conditions: {
9436
+ devices?: number[] | undefined;
9437
+ classes?: string[] | undefined;
9438
+ classesExclude?: string[] | undefined;
9439
+ minConfidence?: number | undefined;
9440
+ zones?: {
9441
+ ids: string[];
9442
+ match: "any" | "all";
9443
+ } | undefined;
9444
+ zonesExclude?: string[] | undefined;
9445
+ labelEquals?: string[] | undefined;
9446
+ identities?: string[] | undefined;
9447
+ plates?: {
9448
+ values: string[];
9449
+ maxDistance: number;
9450
+ } | undefined;
9451
+ identitiesExclude?: string[] | undefined;
9452
+ minImportance?: number | undefined;
9453
+ minDwellSeconds?: number | undefined;
9454
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
9455
+ minLabelConfidence?: number | undefined;
9456
+ eventTypeTokens?: string[] | undefined;
9457
+ sensorKinds?: string[] | undefined;
9458
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
9459
+ customZones?: {
9460
+ kind: "polygon";
9461
+ points: {
9462
+ x: number;
9463
+ y: number;
9464
+ }[];
9465
+ }[] | undefined;
9466
+ occupancy?: {
9467
+ op: "<=" | ">=" | "became-occupied" | "became-free";
9468
+ count: number;
9469
+ sustainSeconds: number;
9470
+ zoneId?: string | undefined;
9471
+ className?: string | undefined;
9472
+ } | undefined;
9473
+ };
9474
+ targets: {
9475
+ targetId: string;
9476
+ params?: Record<string, unknown> | undefined;
9477
+ }[];
9478
+ media: {
9479
+ attach: "none" | "best" | "best-matching" | "keyFrame";
9480
+ };
9481
+ throttle: {
9482
+ cooldownSec: number;
9483
+ scope: "rule" | "rule-device";
9484
+ };
9485
+ priority: number;
9486
+ id: string;
9487
+ createdBy: string;
9488
+ createdAt: number;
9489
+ updatedAt: number;
9490
+ disabledTargetIds: string[];
9491
+ schedule?: {
9492
+ windows: {
9493
+ days: number[];
9494
+ startMinute: number;
9495
+ endMinute: number;
9496
+ }[];
9497
+ timezone?: string | undefined;
9498
+ invert?: boolean | undefined;
9499
+ } | undefined;
9500
+ template?: {
9501
+ title?: string | undefined;
9502
+ body?: string | undefined;
9503
+ } | undefined;
9504
+ ownerUserId?: string | undefined;
9505
+ };
9376
9506
  };
9377
- output: unknown;
9378
9507
  meta: object;
9379
9508
  }>;
9380
- }>>;
9381
- oauthIntegration: import("@trpc/server").TRPCBuiltRouter<{
9382
- ctx: TrpcContext;
9383
- meta: object;
9384
- errorShape: import("@camstack/types").AugmentedErrorShape;
9385
- transformer: true;
9386
- }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9387
- getDescriptor: import("@trpc/server").TRPCQueryProcedure<{
9509
+ updateRule: import("@trpc/server").TRPCMutationProcedure<{
9388
9510
  input: {
9389
- nodeId?: string | undefined;
9390
- addonId?: string | undefined;
9391
- } | undefined;
9392
- output: {
9511
+ [x: string]: unknown;
9512
+ ruleId: string;
9513
+ patch: {
9514
+ name?: string | undefined;
9515
+ enabled?: boolean | undefined;
9516
+ delivery?: "immediate" | "track-end" | "device-event" | "package-event" | undefined;
9517
+ conditions?: {
9518
+ devices?: number[] | undefined;
9519
+ classes?: string[] | undefined;
9520
+ classesExclude?: string[] | undefined;
9521
+ minConfidence?: number | undefined;
9522
+ zones?: {
9523
+ ids: string[];
9524
+ match?: "any" | "all" | undefined;
9525
+ } | undefined;
9526
+ zonesExclude?: string[] | undefined;
9527
+ labelEquals?: string[] | undefined;
9528
+ identities?: string[] | undefined;
9529
+ plates?: {
9530
+ values: string[];
9531
+ maxDistance?: number | undefined;
9532
+ } | undefined;
9533
+ identitiesExclude?: string[] | undefined;
9534
+ minImportance?: number | undefined;
9535
+ minDwellSeconds?: number | undefined;
9536
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
9537
+ minLabelConfidence?: number | undefined;
9538
+ eventTypeTokens?: string[] | undefined;
9539
+ sensorKinds?: string[] | undefined;
9540
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
9541
+ customZones?: {
9542
+ kind: "polygon";
9543
+ points: {
9544
+ x: number;
9545
+ y: number;
9546
+ }[];
9547
+ }[] | undefined;
9548
+ occupancy?: {
9549
+ zoneId?: string | undefined;
9550
+ className?: string | undefined;
9551
+ op?: "<=" | ">=" | "became-occupied" | "became-free" | undefined;
9552
+ count?: number | undefined;
9553
+ sustainSeconds?: number | undefined;
9554
+ } | undefined;
9555
+ } | undefined;
9556
+ schedule?: {
9557
+ windows: {
9558
+ days: number[];
9559
+ startMinute: number;
9560
+ endMinute: number;
9561
+ }[];
9562
+ timezone?: string | undefined;
9563
+ invert?: boolean | undefined;
9564
+ } | undefined;
9565
+ targets?: {
9566
+ targetId: string;
9567
+ params?: Record<string, unknown> | undefined;
9568
+ }[] | undefined;
9569
+ media?: {
9570
+ attach?: "none" | "best" | "best-matching" | "keyFrame" | undefined;
9571
+ } | undefined;
9572
+ throttle?: {
9573
+ cooldownSec?: number | undefined;
9574
+ scope?: "rule" | "rule-device" | undefined;
9575
+ } | undefined;
9576
+ template?: {
9577
+ title?: string | undefined;
9578
+ body?: string | undefined;
9579
+ } | undefined;
9580
+ priority?: number | undefined;
9581
+ ownerUserId?: string | undefined;
9582
+ disabledTargetIds?: string[] | undefined;
9583
+ };
9584
+ };
9585
+ output: {
9586
+ rule: {
9587
+ name: string;
9588
+ enabled: boolean;
9589
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
9590
+ conditions: {
9591
+ devices?: number[] | undefined;
9592
+ classes?: string[] | undefined;
9593
+ classesExclude?: string[] | undefined;
9594
+ minConfidence?: number | undefined;
9595
+ zones?: {
9596
+ ids: string[];
9597
+ match: "any" | "all";
9598
+ } | undefined;
9599
+ zonesExclude?: string[] | undefined;
9600
+ labelEquals?: string[] | undefined;
9601
+ identities?: string[] | undefined;
9602
+ plates?: {
9603
+ values: string[];
9604
+ maxDistance: number;
9605
+ } | undefined;
9606
+ identitiesExclude?: string[] | undefined;
9607
+ minImportance?: number | undefined;
9608
+ minDwellSeconds?: number | undefined;
9609
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
9610
+ minLabelConfidence?: number | undefined;
9611
+ eventTypeTokens?: string[] | undefined;
9612
+ sensorKinds?: string[] | undefined;
9613
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
9614
+ customZones?: {
9615
+ kind: "polygon";
9616
+ points: {
9617
+ x: number;
9618
+ y: number;
9619
+ }[];
9620
+ }[] | undefined;
9621
+ occupancy?: {
9622
+ op: "<=" | ">=" | "became-occupied" | "became-free";
9623
+ count: number;
9624
+ sustainSeconds: number;
9625
+ zoneId?: string | undefined;
9626
+ className?: string | undefined;
9627
+ } | undefined;
9628
+ };
9629
+ targets: {
9630
+ targetId: string;
9631
+ params?: Record<string, unknown> | undefined;
9632
+ }[];
9633
+ media: {
9634
+ attach: "none" | "best" | "best-matching" | "keyFrame";
9635
+ };
9636
+ throttle: {
9637
+ cooldownSec: number;
9638
+ scope: "rule" | "rule-device";
9639
+ };
9640
+ priority: number;
9641
+ id: string;
9642
+ createdBy: string;
9643
+ createdAt: number;
9644
+ updatedAt: number;
9645
+ disabledTargetIds: string[];
9646
+ schedule?: {
9647
+ windows: {
9648
+ days: number[];
9649
+ startMinute: number;
9650
+ endMinute: number;
9651
+ }[];
9652
+ timezone?: string | undefined;
9653
+ invert?: boolean | undefined;
9654
+ } | undefined;
9655
+ template?: {
9656
+ title?: string | undefined;
9657
+ body?: string | undefined;
9658
+ } | undefined;
9659
+ ownerUserId?: string | undefined;
9660
+ };
9661
+ };
9662
+ meta: object;
9663
+ }>;
9664
+ deleteRule: import("@trpc/server").TRPCMutationProcedure<{
9665
+ input: {
9666
+ [x: string]: unknown;
9667
+ ruleId: string;
9668
+ };
9669
+ output: {
9670
+ success: true;
9671
+ };
9672
+ meta: object;
9673
+ }>;
9674
+ setRuleEnabled: import("@trpc/server").TRPCMutationProcedure<{
9675
+ input: {
9676
+ [x: string]: unknown;
9677
+ ruleId: string;
9678
+ enabled: boolean;
9679
+ };
9680
+ output: {
9681
+ success: true;
9682
+ };
9683
+ meta: object;
9684
+ }>;
9685
+ testRule: import("@trpc/server").TRPCMutationProcedure<{
9686
+ input: {
9687
+ [x: string]: unknown;
9688
+ rule: {
9689
+ name: string;
9690
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
9691
+ targets: {
9692
+ targetId: string;
9693
+ params?: Record<string, unknown> | undefined;
9694
+ }[];
9695
+ enabled?: boolean | undefined;
9696
+ conditions?: {
9697
+ devices?: number[] | undefined;
9698
+ classes?: string[] | undefined;
9699
+ classesExclude?: string[] | undefined;
9700
+ minConfidence?: number | undefined;
9701
+ zones?: {
9702
+ ids: string[];
9703
+ match?: "any" | "all" | undefined;
9704
+ } | undefined;
9705
+ zonesExclude?: string[] | undefined;
9706
+ labelEquals?: string[] | undefined;
9707
+ identities?: string[] | undefined;
9708
+ plates?: {
9709
+ values: string[];
9710
+ maxDistance?: number | undefined;
9711
+ } | undefined;
9712
+ identitiesExclude?: string[] | undefined;
9713
+ minImportance?: number | undefined;
9714
+ minDwellSeconds?: number | undefined;
9715
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
9716
+ minLabelConfidence?: number | undefined;
9717
+ eventTypeTokens?: string[] | undefined;
9718
+ sensorKinds?: string[] | undefined;
9719
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
9720
+ customZones?: {
9721
+ kind: "polygon";
9722
+ points: {
9723
+ x: number;
9724
+ y: number;
9725
+ }[];
9726
+ }[] | undefined;
9727
+ occupancy?: {
9728
+ zoneId?: string | undefined;
9729
+ className?: string | undefined;
9730
+ op?: "<=" | ">=" | "became-occupied" | "became-free" | undefined;
9731
+ count?: number | undefined;
9732
+ sustainSeconds?: number | undefined;
9733
+ } | undefined;
9734
+ } | undefined;
9735
+ schedule?: {
9736
+ windows: {
9737
+ days: number[];
9738
+ startMinute: number;
9739
+ endMinute: number;
9740
+ }[];
9741
+ timezone?: string | undefined;
9742
+ invert?: boolean | undefined;
9743
+ } | undefined;
9744
+ media?: {
9745
+ attach?: "none" | "best" | "best-matching" | "keyFrame" | undefined;
9746
+ } | undefined;
9747
+ throttle?: {
9748
+ cooldownSec?: number | undefined;
9749
+ scope?: "rule" | "rule-device" | undefined;
9750
+ } | undefined;
9751
+ template?: {
9752
+ title?: string | undefined;
9753
+ body?: string | undefined;
9754
+ } | undefined;
9755
+ priority?: number | undefined;
9756
+ ownerUserId?: string | undefined;
9757
+ };
9758
+ lookbackMinutes?: number | undefined;
9759
+ };
9760
+ output: {
9761
+ results: {
9762
+ recordId: string;
9763
+ recordKind: "device-event" | "package-event" | "object-event" | "track";
9764
+ deviceId: number;
9765
+ timestamp: number;
9766
+ wouldFire: boolean;
9767
+ failedCondition?: string | undefined;
9768
+ className?: string | undefined;
9769
+ label?: string | undefined;
9770
+ }[];
9771
+ };
9772
+ meta: object;
9773
+ }>;
9774
+ getConditionCatalog: import("@trpc/server").TRPCQueryProcedure<{
9775
+ input: {
9776
+ [x: string]: unknown;
9777
+ };
9778
+ output: {
9779
+ catalog: {
9780
+ id: string;
9781
+ group: "zones" | "label" | "package" | "class" | "scope" | "schedule" | "occupancy" | "device" | "quality";
9782
+ label: string;
9783
+ valueType: "number" | "schedule" | "packagePhase" | "occupancy" | "deviceIdList" | "stringList" | "number01" | "sourceSelect" | "zoneSelection" | "zoneIdList" | "plateMatcher" | "polygonDraw";
9784
+ operator: "in" | "notIn" | "anyOf" | "allOf" | "gte" | "fuzzyIn" | "withinSchedule";
9785
+ appliesTo: ("immediate" | "track-end" | "device-event" | "package-event")[];
9786
+ phase: string;
9787
+ description?: string | undefined;
9788
+ }[];
9789
+ };
9790
+ meta: object;
9791
+ }>;
9792
+ getHistory: import("@trpc/server").TRPCQueryProcedure<{
9793
+ input: {
9794
+ [x: string]: unknown;
9795
+ filter?: {
9796
+ ruleId?: string | undefined;
9797
+ deviceId?: number | undefined;
9798
+ status?: "pending" | "sent" | "dead" | undefined;
9799
+ since?: number | undefined;
9800
+ until?: number | undefined;
9801
+ limit?: number | undefined;
9802
+ } | undefined;
9803
+ };
9804
+ output: {
9805
+ entries: {
9806
+ id: string;
9807
+ ruleId: string;
9808
+ ruleName: string;
9809
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
9810
+ targetId: string;
9811
+ deviceId: number;
9812
+ recordKind: "track-end" | "device-event" | "package-event" | "object-event";
9813
+ recordId: string;
9814
+ status: "pending" | "sent" | "dead";
9815
+ attempts: number;
9816
+ createdAt: number;
9817
+ updatedAt: number;
9818
+ subject: {
9819
+ className: string;
9820
+ zones: string[];
9821
+ timestamp: number;
9822
+ label?: string | undefined;
9823
+ confidence?: number | undefined;
9824
+ };
9825
+ trackId?: string | undefined;
9826
+ error?: string | undefined;
9827
+ }[];
9828
+ };
9829
+ meta: object;
9830
+ }>;
9831
+ }>>;
9832
+ notifier: import("@trpc/server").TRPCBuiltRouter<{
9833
+ ctx: TrpcContext;
9834
+ meta: object;
9835
+ errorShape: import("@camstack/types").AugmentedErrorShape;
9836
+ transformer: true;
9837
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9838
+ getStatus: import("@trpc/server").TRPCQueryProcedure<{
9839
+ input: {
9840
+ [x: string]: unknown;
9841
+ deviceId: number;
9842
+ };
9843
+ output: unknown;
9844
+ meta: object;
9845
+ }>;
9846
+ send: import("@trpc/server").TRPCMutationProcedure<{
9847
+ input: {
9848
+ [x: string]: unknown;
9849
+ deviceId: number;
9850
+ body: string;
9851
+ title?: string | undefined;
9852
+ image?: string | undefined;
9853
+ priority?: "high" | "min" | "low" | "normal" | undefined;
9854
+ channel?: string | undefined;
9855
+ recipients?: string[] | undefined;
9856
+ actions?: {
9857
+ id: string;
9858
+ title: string;
9859
+ uri?: string | undefined;
9860
+ destructive?: boolean | undefined;
9861
+ }[] | undefined;
9862
+ data?: Record<string, unknown> | undefined;
9863
+ };
9864
+ output: {
9865
+ notificationId: string;
9866
+ acceptedAt: number;
9867
+ };
9868
+ meta: object;
9869
+ }>;
9870
+ cancel: import("@trpc/server").TRPCMutationProcedure<{
9871
+ input: {
9872
+ [x: string]: unknown;
9873
+ deviceId: number;
9874
+ notificationId: string;
9875
+ };
9876
+ output: void;
9877
+ meta: object;
9878
+ }>;
9879
+ }>>;
9880
+ numericSensor: import("@trpc/server").TRPCBuiltRouter<{
9881
+ ctx: TrpcContext;
9882
+ meta: object;
9883
+ errorShape: import("@camstack/types").AugmentedErrorShape;
9884
+ transformer: true;
9885
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9886
+ getStatus: import("@trpc/server").TRPCQueryProcedure<{
9887
+ input: {
9888
+ [x: string]: unknown;
9889
+ deviceId: number;
9890
+ };
9891
+ output: unknown;
9892
+ meta: object;
9893
+ }>;
9894
+ }>>;
9895
+ oauthIntegration: import("@trpc/server").TRPCBuiltRouter<{
9896
+ ctx: TrpcContext;
9897
+ meta: object;
9898
+ errorShape: import("@camstack/types").AugmentedErrorShape;
9899
+ transformer: true;
9900
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9901
+ getDescriptor: import("@trpc/server").TRPCQueryProcedure<{
9902
+ input: {
9903
+ nodeId?: string | undefined;
9904
+ addonId?: string | undefined;
9905
+ } | undefined;
9906
+ output: {
9393
9907
  integrationId: string;
9394
9908
  displayName: string;
9395
9909
  requestedScopes: ({
@@ -9661,7 +10175,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9661
10175
  active: boolean;
9662
10176
  label?: string | undefined;
9663
10177
  producingDeviceName?: string | undefined;
9664
- source?: "pipeline" | "sensor" | undefined;
10178
+ source?: "sensor" | "pipeline" | undefined;
9665
10179
  classes?: readonly string[] | undefined;
9666
10180
  importance?: number | undefined;
9667
10181
  bestEventId?: string | undefined;
@@ -9726,7 +10240,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9726
10240
  active: boolean;
9727
10241
  label?: string | undefined;
9728
10242
  producingDeviceName?: string | undefined;
9729
- source?: "pipeline" | "sensor" | undefined;
10243
+ source?: "sensor" | "pipeline" | undefined;
9730
10244
  classes?: readonly string[] | undefined;
9731
10245
  importance?: number | undefined;
9732
10246
  bestEventId?: string | undefined;
@@ -9807,7 +10321,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9807
10321
  active: boolean;
9808
10322
  label?: string | undefined;
9809
10323
  producingDeviceName?: string | undefined;
9810
- source?: "pipeline" | "sensor" | undefined;
10324
+ source?: "sensor" | "pipeline" | undefined;
9811
10325
  classes?: readonly string[] | undefined;
9812
10326
  importance?: number | undefined;
9813
10327
  bestEventId?: string | undefined;
@@ -9877,7 +10391,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
9877
10391
  active: boolean;
9878
10392
  label?: string | undefined;
9879
10393
  producingDeviceName?: string | undefined;
9880
- source?: "pipeline" | "sensor" | undefined;
10394
+ source?: "sensor" | "pipeline" | undefined;
9881
10395
  classes?: readonly string[] | undefined;
9882
10396
  importance?: number | undefined;
9883
10397
  bestEventId?: string | undefined;
@@ -10156,7 +10670,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
10156
10670
  input: {
10157
10671
  [x: string]: unknown;
10158
10672
  olderThanMs: number;
10159
- reason?: "manual" | "retention" | "quota" | "operator" | undefined;
10673
+ reason?: "manual" | "operator" | "retention" | "quota" | undefined;
10160
10674
  };
10161
10675
  output: {
10162
10676
  motion: number;
@@ -10188,7 +10702,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
10188
10702
  at: number;
10189
10703
  domain: "recording" | "events";
10190
10704
  op: "prune" | "manual-delete" | "rescan" | "retention-run";
10191
- reason: "manual" | "retention" | "quota" | "operator";
10705
+ reason: "manual" | "operator" | "retention" | "quota";
10192
10706
  deviceId: number | null;
10193
10707
  nodeId: string;
10194
10708
  itemsAffected: number;
@@ -10202,11 +10716,11 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
10202
10716
  input: {
10203
10717
  [x: string]: unknown;
10204
10718
  eventId: string;
10205
- kind?: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | "thumbnailSmall" | undefined;
10719
+ kind?: "snapshot" | "crop" | "keyFrame" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrameSmall" | "thumbnailSmall" | undefined;
10206
10720
  };
10207
10721
  output: readonly {
10208
10722
  key: string;
10209
- kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | "thumbnailSmall";
10723
+ kind: "snapshot" | "crop" | "keyFrame" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrameSmall" | "thumbnailSmall";
10210
10724
  base64: string;
10211
10725
  sizeBytes: number;
10212
10726
  timestamp: number;
@@ -10217,11 +10731,11 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
10217
10731
  input: {
10218
10732
  [x: string]: unknown;
10219
10733
  trackId: string;
10220
- kinds?: ("snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | "thumbnailSmall")[] | undefined;
10734
+ kinds?: ("snapshot" | "crop" | "keyFrame" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrameSmall" | "thumbnailSmall")[] | undefined;
10221
10735
  };
10222
10736
  output: readonly {
10223
10737
  key: string;
10224
- kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | "thumbnailSmall";
10738
+ kind: "snapshot" | "crop" | "keyFrame" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrameSmall" | "thumbnailSmall";
10225
10739
  base64: string;
10226
10740
  sizeBytes: number;
10227
10741
  timestamp: number;
@@ -10621,6 +11135,26 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
10621
11135
  sessionId?: string | undefined;
10622
11136
  plane?: "full" | "frame" | undefined;
10623
11137
  deviceKey?: string | undefined;
11138
+ nativeCropRef?: {
11139
+ handle: {
11140
+ shmId: string;
11141
+ slot: number;
11142
+ seq: number;
11143
+ width: number;
11144
+ height: number;
11145
+ format: "rgb" | "jpeg" | "bgr" | "yuv420" | "gray";
11146
+ pts: number;
11147
+ byteLength: number;
11148
+ nodeId: string;
11149
+ slotCount: number;
11150
+ };
11151
+ cropFrameSpace: {
11152
+ x: number;
11153
+ y: number;
11154
+ w: number;
11155
+ h: number;
11156
+ };
11157
+ } | undefined;
10624
11158
  };
10625
11159
  output: import("@camstack/types").FrameResult;
10626
11160
  meta: object;
@@ -11986,6 +12520,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
11986
12520
  embedding?: string | undefined;
11987
12521
  label?: string | undefined;
11988
12522
  alignedCropJpeg?: string | undefined;
12523
+ nativeFaceShortSidePx?: number | undefined;
11989
12524
  }[];
11990
12525
  } | null;
11991
12526
  meta: object;
@@ -13041,7 +13576,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
13041
13576
  input: {
13042
13577
  [x: string]: unknown;
13043
13578
  deviceId: number;
13044
- reason?: "manual" | "retention" | "quota" | "operator" | undefined;
13579
+ reason?: "manual" | "operator" | "retention" | "quota" | undefined;
13045
13580
  };
13046
13581
  output: {
13047
13582
  floorMs: number | null;
@@ -13074,7 +13609,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
13074
13609
  at: number;
13075
13610
  domain: "recording" | "events";
13076
13611
  op: "prune" | "manual-delete" | "rescan" | "retention-run";
13077
- reason: "manual" | "retention" | "quota" | "operator";
13612
+ reason: "manual" | "operator" | "retention" | "quota";
13078
13613
  deviceId: number | null;
13079
13614
  nodeId: string;
13080
13615
  itemsAffected: number;
@@ -18479,156 +19014,13 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
18479
19014
  meta: object;
18480
19015
  }>;
18481
19016
  }>>;
18482
- advancedNotifier: import("@trpc/server").TRPCBuiltRouter<{
19017
+ airQualitySensor: import("@trpc/server").TRPCBuiltRouter<{
18483
19018
  ctx: TrpcContext;
18484
19019
  meta: object;
18485
19020
  errorShape: import("@camstack/types").AugmentedErrorShape;
18486
19021
  transformer: true;
18487
19022
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
18488
- getRules: import("@trpc/server").TRPCQueryProcedure<{
18489
- input: {
18490
- nodeId?: string | undefined;
18491
- } | undefined;
18492
- output: {
18493
- rules: readonly {
18494
- id: string;
18495
- name: string;
18496
- enabled: boolean;
18497
- eventTypes: readonly string[];
18498
- conditions: {
18499
- deviceIds?: readonly number[] | undefined;
18500
- classNames?: readonly string[] | undefined;
18501
- zoneIds?: readonly string[] | undefined;
18502
- minConfidence?: number | undefined;
18503
- source?: "any" | "pipeline" | "onboard" | undefined;
18504
- schedule?: {
18505
- days: readonly number[];
18506
- startHour: number;
18507
- endHour: number;
18508
- } | undefined;
18509
- cooldownSeconds?: number | undefined;
18510
- minDwellSeconds?: number | undefined;
18511
- eventTypeTokens?: readonly string[] | undefined;
18512
- clipDescription?: {
18513
- text: string;
18514
- minSimilarity: number;
18515
- } | undefined;
18516
- labels?: readonly string[] | undefined;
18517
- };
18518
- outputs: readonly string[];
18519
- priority: "high" | "low" | "normal" | "critical";
18520
- template?: {
18521
- title: string;
18522
- body: string;
18523
- imageMode: "none" | "full" | "crop" | "annotated";
18524
- } | undefined;
18525
- }[];
18526
- };
18527
- meta: object;
18528
- }>;
18529
- upsertRule: import("@trpc/server").TRPCMutationProcedure<{
18530
- input: {
18531
- [x: string]: unknown;
18532
- rule: {
18533
- id: string;
18534
- name: string;
18535
- enabled: boolean;
18536
- eventTypes: readonly string[];
18537
- conditions: {
18538
- deviceIds?: readonly number[] | undefined;
18539
- classNames?: readonly string[] | undefined;
18540
- zoneIds?: readonly string[] | undefined;
18541
- minConfidence?: number | undefined;
18542
- source?: "any" | "pipeline" | "onboard" | undefined;
18543
- schedule?: {
18544
- days: readonly number[];
18545
- startHour: number;
18546
- endHour: number;
18547
- } | undefined;
18548
- cooldownSeconds?: number | undefined;
18549
- minDwellSeconds?: number | undefined;
18550
- eventTypeTokens?: readonly string[] | undefined;
18551
- clipDescription?: {
18552
- text: string;
18553
- minSimilarity: number;
18554
- } | undefined;
18555
- labels?: readonly string[] | undefined;
18556
- };
18557
- outputs: readonly string[];
18558
- priority: "high" | "low" | "normal" | "critical";
18559
- template?: {
18560
- title: string;
18561
- body: string;
18562
- imageMode: "none" | "full" | "crop" | "annotated";
18563
- } | undefined;
18564
- };
18565
- };
18566
- output: {
18567
- success: true;
18568
- };
18569
- meta: object;
18570
- }>;
18571
- deleteRule: import("@trpc/server").TRPCMutationProcedure<{
18572
- input: {
18573
- [x: string]: unknown;
18574
- ruleId: string;
18575
- };
18576
- output: {
18577
- success: true;
18578
- };
18579
- meta: object;
18580
- }>;
18581
- testRule: import("@trpc/server").TRPCMutationProcedure<{
18582
- input: {
18583
- [x: string]: unknown;
18584
- ruleId: string;
18585
- lookbackMinutes: number;
18586
- };
18587
- output: {
18588
- results: readonly {
18589
- ruleId: string;
18590
- eventId: string;
18591
- timestamp: number;
18592
- wouldFire: boolean;
18593
- reason?: string | undefined;
18594
- }[];
18595
- };
18596
- meta: object;
18597
- }>;
18598
- getHistory: import("@trpc/server").TRPCQueryProcedure<{
18599
- input: {
18600
- [x: string]: unknown;
18601
- filter?: {
18602
- ruleId?: string | undefined;
18603
- deviceId?: number | undefined;
18604
- from?: number | undefined;
18605
- to?: number | undefined;
18606
- limit?: number | undefined;
18607
- } | undefined;
18608
- };
18609
- output: {
18610
- entries: readonly {
18611
- id: string;
18612
- ruleId: string;
18613
- ruleName: string;
18614
- eventId: string;
18615
- timestamp: number;
18616
- outputs: readonly string[];
18617
- success: boolean;
18618
- error?: string | undefined;
18619
- deviceId?: number | undefined;
18620
- }[];
18621
- };
18622
- meta: object;
18623
- }>;
18624
- }>>;
18625
- airQualitySensor: import("@trpc/server").TRPCBuiltRouter<{
18626
- ctx: TrpcContext;
18627
- meta: object;
18628
- errorShape: import("@camstack/types").AugmentedErrorShape;
18629
- transformer: true;
18630
- }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
18631
- getStatus: import("@trpc/server").TRPCQueryProcedure<{
19023
+ getStatus: import("@trpc/server").TRPCQueryProcedure<{
18632
19024
  input: {
18633
19025
  [x: string]: unknown;
18634
19026
  deviceId: number;
@@ -20280,7 +20672,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
20280
20672
  deviceId: number;
20281
20673
  };
20282
20674
  output: {
20283
- modes: ("auto" | "schedule" | "night" | "day")[];
20675
+ modes: ("auto" | "night" | "day" | "schedule")[];
20284
20676
  supportsSensitivity: boolean;
20285
20677
  supportsSwitchDelay: boolean;
20286
20678
  sensitivity?: {
@@ -20301,7 +20693,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
20301
20693
  [x: string]: unknown;
20302
20694
  deviceId: number;
20303
20695
  settings: {
20304
- mode?: "auto" | "schedule" | "night" | "day" | undefined;
20696
+ mode?: "auto" | "night" | "day" | "schedule" | undefined;
20305
20697
  sensitivity?: number | undefined;
20306
20698
  switchDelaySec?: number | undefined;
20307
20699
  };
@@ -22968,6 +23360,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
22968
23360
  h: number;
22969
23361
  } | undefined;
22970
23362
  keyFrameMediaKey?: string | undefined;
23363
+ bestMatchScore?: number | undefined;
23364
+ nativeFaceShortSidePx?: number | undefined;
23365
+ suggestedIdentityId?: string | undefined;
23366
+ suggestedMatchScore?: number | undefined;
22971
23367
  }[];
22972
23368
  meta: object;
22973
23369
  }>;
@@ -22993,6 +23389,10 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
22993
23389
  h: number;
22994
23390
  } | undefined;
22995
23391
  keyFrameMediaKey?: string | undefined;
23392
+ bestMatchScore?: number | undefined;
23393
+ nativeFaceShortSidePx?: number | undefined;
23394
+ suggestedIdentityId?: string | undefined;
23395
+ suggestedMatchScore?: number | undefined;
22996
23396
  } | null;
22997
23397
  meta: object;
22998
23398
  }>;
@@ -26138,6 +26538,655 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26138
26538
  meta: object;
26139
26539
  }>;
26140
26540
  }>>;
26541
+ notificationRules: import("@trpc/server").TRPCBuiltRouter<{
26542
+ ctx: TrpcContext;
26543
+ meta: object;
26544
+ errorShape: import("@camstack/types").AugmentedErrorShape;
26545
+ transformer: true;
26546
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
26547
+ listRules: import("@trpc/server").TRPCQueryProcedure<{
26548
+ input: {
26549
+ [x: string]: unknown;
26550
+ };
26551
+ output: {
26552
+ rules: {
26553
+ name: string;
26554
+ enabled: boolean;
26555
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
26556
+ conditions: {
26557
+ devices?: number[] | undefined;
26558
+ classes?: string[] | undefined;
26559
+ classesExclude?: string[] | undefined;
26560
+ minConfidence?: number | undefined;
26561
+ zones?: {
26562
+ ids: string[];
26563
+ match: "any" | "all";
26564
+ } | undefined;
26565
+ zonesExclude?: string[] | undefined;
26566
+ labelEquals?: string[] | undefined;
26567
+ identities?: string[] | undefined;
26568
+ plates?: {
26569
+ values: string[];
26570
+ maxDistance: number;
26571
+ } | undefined;
26572
+ identitiesExclude?: string[] | undefined;
26573
+ minImportance?: number | undefined;
26574
+ minDwellSeconds?: number | undefined;
26575
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
26576
+ minLabelConfidence?: number | undefined;
26577
+ eventTypeTokens?: string[] | undefined;
26578
+ sensorKinds?: string[] | undefined;
26579
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
26580
+ customZones?: {
26581
+ kind: "polygon";
26582
+ points: {
26583
+ x: number;
26584
+ y: number;
26585
+ }[];
26586
+ }[] | undefined;
26587
+ occupancy?: {
26588
+ op: "<=" | ">=" | "became-occupied" | "became-free";
26589
+ count: number;
26590
+ sustainSeconds: number;
26591
+ zoneId?: string | undefined;
26592
+ className?: string | undefined;
26593
+ } | undefined;
26594
+ };
26595
+ targets: {
26596
+ targetId: string;
26597
+ params?: Record<string, unknown> | undefined;
26598
+ }[];
26599
+ media: {
26600
+ attach: "none" | "best" | "best-matching" | "keyFrame";
26601
+ };
26602
+ throttle: {
26603
+ cooldownSec: number;
26604
+ scope: "rule" | "rule-device";
26605
+ };
26606
+ priority: number;
26607
+ id: string;
26608
+ createdBy: string;
26609
+ createdAt: number;
26610
+ updatedAt: number;
26611
+ disabledTargetIds: string[];
26612
+ schedule?: {
26613
+ windows: {
26614
+ days: number[];
26615
+ startMinute: number;
26616
+ endMinute: number;
26617
+ }[];
26618
+ timezone?: string | undefined;
26619
+ invert?: boolean | undefined;
26620
+ } | undefined;
26621
+ template?: {
26622
+ title?: string | undefined;
26623
+ body?: string | undefined;
26624
+ } | undefined;
26625
+ ownerUserId?: string | undefined;
26626
+ }[];
26627
+ };
26628
+ meta: object;
26629
+ }>;
26630
+ getRule: import("@trpc/server").TRPCQueryProcedure<{
26631
+ input: {
26632
+ [x: string]: unknown;
26633
+ ruleId: string;
26634
+ };
26635
+ output: {
26636
+ rule: {
26637
+ name: string;
26638
+ enabled: boolean;
26639
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
26640
+ conditions: {
26641
+ devices?: number[] | undefined;
26642
+ classes?: string[] | undefined;
26643
+ classesExclude?: string[] | undefined;
26644
+ minConfidence?: number | undefined;
26645
+ zones?: {
26646
+ ids: string[];
26647
+ match: "any" | "all";
26648
+ } | undefined;
26649
+ zonesExclude?: string[] | undefined;
26650
+ labelEquals?: string[] | undefined;
26651
+ identities?: string[] | undefined;
26652
+ plates?: {
26653
+ values: string[];
26654
+ maxDistance: number;
26655
+ } | undefined;
26656
+ identitiesExclude?: string[] | undefined;
26657
+ minImportance?: number | undefined;
26658
+ minDwellSeconds?: number | undefined;
26659
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
26660
+ minLabelConfidence?: number | undefined;
26661
+ eventTypeTokens?: string[] | undefined;
26662
+ sensorKinds?: string[] | undefined;
26663
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
26664
+ customZones?: {
26665
+ kind: "polygon";
26666
+ points: {
26667
+ x: number;
26668
+ y: number;
26669
+ }[];
26670
+ }[] | undefined;
26671
+ occupancy?: {
26672
+ op: "<=" | ">=" | "became-occupied" | "became-free";
26673
+ count: number;
26674
+ sustainSeconds: number;
26675
+ zoneId?: string | undefined;
26676
+ className?: string | undefined;
26677
+ } | undefined;
26678
+ };
26679
+ targets: {
26680
+ targetId: string;
26681
+ params?: Record<string, unknown> | undefined;
26682
+ }[];
26683
+ media: {
26684
+ attach: "none" | "best" | "best-matching" | "keyFrame";
26685
+ };
26686
+ throttle: {
26687
+ cooldownSec: number;
26688
+ scope: "rule" | "rule-device";
26689
+ };
26690
+ priority: number;
26691
+ id: string;
26692
+ createdBy: string;
26693
+ createdAt: number;
26694
+ updatedAt: number;
26695
+ disabledTargetIds: string[];
26696
+ schedule?: {
26697
+ windows: {
26698
+ days: number[];
26699
+ startMinute: number;
26700
+ endMinute: number;
26701
+ }[];
26702
+ timezone?: string | undefined;
26703
+ invert?: boolean | undefined;
26704
+ } | undefined;
26705
+ template?: {
26706
+ title?: string | undefined;
26707
+ body?: string | undefined;
26708
+ } | undefined;
26709
+ ownerUserId?: string | undefined;
26710
+ } | null;
26711
+ };
26712
+ meta: object;
26713
+ }>;
26714
+ createRule: import("@trpc/server").TRPCMutationProcedure<{
26715
+ input: {
26716
+ [x: string]: unknown;
26717
+ rule: {
26718
+ name: string;
26719
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
26720
+ targets: {
26721
+ targetId: string;
26722
+ params?: Record<string, unknown> | undefined;
26723
+ }[];
26724
+ enabled?: boolean | undefined;
26725
+ conditions?: {
26726
+ devices?: number[] | undefined;
26727
+ classes?: string[] | undefined;
26728
+ classesExclude?: string[] | undefined;
26729
+ minConfidence?: number | undefined;
26730
+ zones?: {
26731
+ ids: string[];
26732
+ match?: "any" | "all" | undefined;
26733
+ } | undefined;
26734
+ zonesExclude?: string[] | undefined;
26735
+ labelEquals?: string[] | undefined;
26736
+ identities?: string[] | undefined;
26737
+ plates?: {
26738
+ values: string[];
26739
+ maxDistance?: number | undefined;
26740
+ } | undefined;
26741
+ identitiesExclude?: string[] | undefined;
26742
+ minImportance?: number | undefined;
26743
+ minDwellSeconds?: number | undefined;
26744
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
26745
+ minLabelConfidence?: number | undefined;
26746
+ eventTypeTokens?: string[] | undefined;
26747
+ sensorKinds?: string[] | undefined;
26748
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
26749
+ customZones?: {
26750
+ kind: "polygon";
26751
+ points: {
26752
+ x: number;
26753
+ y: number;
26754
+ }[];
26755
+ }[] | undefined;
26756
+ occupancy?: {
26757
+ zoneId?: string | undefined;
26758
+ className?: string | undefined;
26759
+ op?: "<=" | ">=" | "became-occupied" | "became-free" | undefined;
26760
+ count?: number | undefined;
26761
+ sustainSeconds?: number | undefined;
26762
+ } | undefined;
26763
+ } | undefined;
26764
+ schedule?: {
26765
+ windows: {
26766
+ days: number[];
26767
+ startMinute: number;
26768
+ endMinute: number;
26769
+ }[];
26770
+ timezone?: string | undefined;
26771
+ invert?: boolean | undefined;
26772
+ } | undefined;
26773
+ media?: {
26774
+ attach?: "none" | "best" | "best-matching" | "keyFrame" | undefined;
26775
+ } | undefined;
26776
+ throttle?: {
26777
+ cooldownSec?: number | undefined;
26778
+ scope?: "rule" | "rule-device" | undefined;
26779
+ } | undefined;
26780
+ template?: {
26781
+ title?: string | undefined;
26782
+ body?: string | undefined;
26783
+ } | undefined;
26784
+ priority?: number | undefined;
26785
+ ownerUserId?: string | undefined;
26786
+ };
26787
+ };
26788
+ output: {
26789
+ rule: {
26790
+ name: string;
26791
+ enabled: boolean;
26792
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
26793
+ conditions: {
26794
+ devices?: number[] | undefined;
26795
+ classes?: string[] | undefined;
26796
+ classesExclude?: string[] | undefined;
26797
+ minConfidence?: number | undefined;
26798
+ zones?: {
26799
+ ids: string[];
26800
+ match: "any" | "all";
26801
+ } | undefined;
26802
+ zonesExclude?: string[] | undefined;
26803
+ labelEquals?: string[] | undefined;
26804
+ identities?: string[] | undefined;
26805
+ plates?: {
26806
+ values: string[];
26807
+ maxDistance: number;
26808
+ } | undefined;
26809
+ identitiesExclude?: string[] | undefined;
26810
+ minImportance?: number | undefined;
26811
+ minDwellSeconds?: number | undefined;
26812
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
26813
+ minLabelConfidence?: number | undefined;
26814
+ eventTypeTokens?: string[] | undefined;
26815
+ sensorKinds?: string[] | undefined;
26816
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
26817
+ customZones?: {
26818
+ kind: "polygon";
26819
+ points: {
26820
+ x: number;
26821
+ y: number;
26822
+ }[];
26823
+ }[] | undefined;
26824
+ occupancy?: {
26825
+ op: "<=" | ">=" | "became-occupied" | "became-free";
26826
+ count: number;
26827
+ sustainSeconds: number;
26828
+ zoneId?: string | undefined;
26829
+ className?: string | undefined;
26830
+ } | undefined;
26831
+ };
26832
+ targets: {
26833
+ targetId: string;
26834
+ params?: Record<string, unknown> | undefined;
26835
+ }[];
26836
+ media: {
26837
+ attach: "none" | "best" | "best-matching" | "keyFrame";
26838
+ };
26839
+ throttle: {
26840
+ cooldownSec: number;
26841
+ scope: "rule" | "rule-device";
26842
+ };
26843
+ priority: number;
26844
+ id: string;
26845
+ createdBy: string;
26846
+ createdAt: number;
26847
+ updatedAt: number;
26848
+ disabledTargetIds: string[];
26849
+ schedule?: {
26850
+ windows: {
26851
+ days: number[];
26852
+ startMinute: number;
26853
+ endMinute: number;
26854
+ }[];
26855
+ timezone?: string | undefined;
26856
+ invert?: boolean | undefined;
26857
+ } | undefined;
26858
+ template?: {
26859
+ title?: string | undefined;
26860
+ body?: string | undefined;
26861
+ } | undefined;
26862
+ ownerUserId?: string | undefined;
26863
+ };
26864
+ };
26865
+ meta: object;
26866
+ }>;
26867
+ updateRule: import("@trpc/server").TRPCMutationProcedure<{
26868
+ input: {
26869
+ [x: string]: unknown;
26870
+ ruleId: string;
26871
+ patch: {
26872
+ name?: string | undefined;
26873
+ enabled?: boolean | undefined;
26874
+ delivery?: "immediate" | "track-end" | "device-event" | "package-event" | undefined;
26875
+ conditions?: {
26876
+ devices?: number[] | undefined;
26877
+ classes?: string[] | undefined;
26878
+ classesExclude?: string[] | undefined;
26879
+ minConfidence?: number | undefined;
26880
+ zones?: {
26881
+ ids: string[];
26882
+ match?: "any" | "all" | undefined;
26883
+ } | undefined;
26884
+ zonesExclude?: string[] | undefined;
26885
+ labelEquals?: string[] | undefined;
26886
+ identities?: string[] | undefined;
26887
+ plates?: {
26888
+ values: string[];
26889
+ maxDistance?: number | undefined;
26890
+ } | undefined;
26891
+ identitiesExclude?: string[] | undefined;
26892
+ minImportance?: number | undefined;
26893
+ minDwellSeconds?: number | undefined;
26894
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
26895
+ minLabelConfidence?: number | undefined;
26896
+ eventTypeTokens?: string[] | undefined;
26897
+ sensorKinds?: string[] | undefined;
26898
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
26899
+ customZones?: {
26900
+ kind: "polygon";
26901
+ points: {
26902
+ x: number;
26903
+ y: number;
26904
+ }[];
26905
+ }[] | undefined;
26906
+ occupancy?: {
26907
+ zoneId?: string | undefined;
26908
+ className?: string | undefined;
26909
+ op?: "<=" | ">=" | "became-occupied" | "became-free" | undefined;
26910
+ count?: number | undefined;
26911
+ sustainSeconds?: number | undefined;
26912
+ } | undefined;
26913
+ } | undefined;
26914
+ schedule?: {
26915
+ windows: {
26916
+ days: number[];
26917
+ startMinute: number;
26918
+ endMinute: number;
26919
+ }[];
26920
+ timezone?: string | undefined;
26921
+ invert?: boolean | undefined;
26922
+ } | undefined;
26923
+ targets?: {
26924
+ targetId: string;
26925
+ params?: Record<string, unknown> | undefined;
26926
+ }[] | undefined;
26927
+ media?: {
26928
+ attach?: "none" | "best" | "best-matching" | "keyFrame" | undefined;
26929
+ } | undefined;
26930
+ throttle?: {
26931
+ cooldownSec?: number | undefined;
26932
+ scope?: "rule" | "rule-device" | undefined;
26933
+ } | undefined;
26934
+ template?: {
26935
+ title?: string | undefined;
26936
+ body?: string | undefined;
26937
+ } | undefined;
26938
+ priority?: number | undefined;
26939
+ ownerUserId?: string | undefined;
26940
+ disabledTargetIds?: string[] | undefined;
26941
+ };
26942
+ };
26943
+ output: {
26944
+ rule: {
26945
+ name: string;
26946
+ enabled: boolean;
26947
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
26948
+ conditions: {
26949
+ devices?: number[] | undefined;
26950
+ classes?: string[] | undefined;
26951
+ classesExclude?: string[] | undefined;
26952
+ minConfidence?: number | undefined;
26953
+ zones?: {
26954
+ ids: string[];
26955
+ match: "any" | "all";
26956
+ } | undefined;
26957
+ zonesExclude?: string[] | undefined;
26958
+ labelEquals?: string[] | undefined;
26959
+ identities?: string[] | undefined;
26960
+ plates?: {
26961
+ values: string[];
26962
+ maxDistance: number;
26963
+ } | undefined;
26964
+ identitiesExclude?: string[] | undefined;
26965
+ minImportance?: number | undefined;
26966
+ minDwellSeconds?: number | undefined;
26967
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
26968
+ minLabelConfidence?: number | undefined;
26969
+ eventTypeTokens?: string[] | undefined;
26970
+ sensorKinds?: string[] | undefined;
26971
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
26972
+ customZones?: {
26973
+ kind: "polygon";
26974
+ points: {
26975
+ x: number;
26976
+ y: number;
26977
+ }[];
26978
+ }[] | undefined;
26979
+ occupancy?: {
26980
+ op: "<=" | ">=" | "became-occupied" | "became-free";
26981
+ count: number;
26982
+ sustainSeconds: number;
26983
+ zoneId?: string | undefined;
26984
+ className?: string | undefined;
26985
+ } | undefined;
26986
+ };
26987
+ targets: {
26988
+ targetId: string;
26989
+ params?: Record<string, unknown> | undefined;
26990
+ }[];
26991
+ media: {
26992
+ attach: "none" | "best" | "best-matching" | "keyFrame";
26993
+ };
26994
+ throttle: {
26995
+ cooldownSec: number;
26996
+ scope: "rule" | "rule-device";
26997
+ };
26998
+ priority: number;
26999
+ id: string;
27000
+ createdBy: string;
27001
+ createdAt: number;
27002
+ updatedAt: number;
27003
+ disabledTargetIds: string[];
27004
+ schedule?: {
27005
+ windows: {
27006
+ days: number[];
27007
+ startMinute: number;
27008
+ endMinute: number;
27009
+ }[];
27010
+ timezone?: string | undefined;
27011
+ invert?: boolean | undefined;
27012
+ } | undefined;
27013
+ template?: {
27014
+ title?: string | undefined;
27015
+ body?: string | undefined;
27016
+ } | undefined;
27017
+ ownerUserId?: string | undefined;
27018
+ };
27019
+ };
27020
+ meta: object;
27021
+ }>;
27022
+ deleteRule: import("@trpc/server").TRPCMutationProcedure<{
27023
+ input: {
27024
+ [x: string]: unknown;
27025
+ ruleId: string;
27026
+ };
27027
+ output: {
27028
+ success: true;
27029
+ };
27030
+ meta: object;
27031
+ }>;
27032
+ setRuleEnabled: import("@trpc/server").TRPCMutationProcedure<{
27033
+ input: {
27034
+ [x: string]: unknown;
27035
+ ruleId: string;
27036
+ enabled: boolean;
27037
+ };
27038
+ output: {
27039
+ success: true;
27040
+ };
27041
+ meta: object;
27042
+ }>;
27043
+ testRule: import("@trpc/server").TRPCMutationProcedure<{
27044
+ input: {
27045
+ [x: string]: unknown;
27046
+ rule: {
27047
+ name: string;
27048
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
27049
+ targets: {
27050
+ targetId: string;
27051
+ params?: Record<string, unknown> | undefined;
27052
+ }[];
27053
+ enabled?: boolean | undefined;
27054
+ conditions?: {
27055
+ devices?: number[] | undefined;
27056
+ classes?: string[] | undefined;
27057
+ classesExclude?: string[] | undefined;
27058
+ minConfidence?: number | undefined;
27059
+ zones?: {
27060
+ ids: string[];
27061
+ match?: "any" | "all" | undefined;
27062
+ } | undefined;
27063
+ zonesExclude?: string[] | undefined;
27064
+ labelEquals?: string[] | undefined;
27065
+ identities?: string[] | undefined;
27066
+ plates?: {
27067
+ values: string[];
27068
+ maxDistance?: number | undefined;
27069
+ } | undefined;
27070
+ identitiesExclude?: string[] | undefined;
27071
+ minImportance?: number | undefined;
27072
+ minDwellSeconds?: number | undefined;
27073
+ source?: "any" | "sensor" | "pipeline" | "onboard" | undefined;
27074
+ minLabelConfidence?: number | undefined;
27075
+ eventTypeTokens?: string[] | undefined;
27076
+ sensorKinds?: string[] | undefined;
27077
+ packagePhase?: "both" | "delivered" | "picked-up" | undefined;
27078
+ customZones?: {
27079
+ kind: "polygon";
27080
+ points: {
27081
+ x: number;
27082
+ y: number;
27083
+ }[];
27084
+ }[] | undefined;
27085
+ occupancy?: {
27086
+ zoneId?: string | undefined;
27087
+ className?: string | undefined;
27088
+ op?: "<=" | ">=" | "became-occupied" | "became-free" | undefined;
27089
+ count?: number | undefined;
27090
+ sustainSeconds?: number | undefined;
27091
+ } | undefined;
27092
+ } | undefined;
27093
+ schedule?: {
27094
+ windows: {
27095
+ days: number[];
27096
+ startMinute: number;
27097
+ endMinute: number;
27098
+ }[];
27099
+ timezone?: string | undefined;
27100
+ invert?: boolean | undefined;
27101
+ } | undefined;
27102
+ media?: {
27103
+ attach?: "none" | "best" | "best-matching" | "keyFrame" | undefined;
27104
+ } | undefined;
27105
+ throttle?: {
27106
+ cooldownSec?: number | undefined;
27107
+ scope?: "rule" | "rule-device" | undefined;
27108
+ } | undefined;
27109
+ template?: {
27110
+ title?: string | undefined;
27111
+ body?: string | undefined;
27112
+ } | undefined;
27113
+ priority?: number | undefined;
27114
+ ownerUserId?: string | undefined;
27115
+ };
27116
+ lookbackMinutes?: number | undefined;
27117
+ };
27118
+ output: {
27119
+ results: {
27120
+ recordId: string;
27121
+ recordKind: "device-event" | "package-event" | "object-event" | "track";
27122
+ deviceId: number;
27123
+ timestamp: number;
27124
+ wouldFire: boolean;
27125
+ failedCondition?: string | undefined;
27126
+ className?: string | undefined;
27127
+ label?: string | undefined;
27128
+ }[];
27129
+ };
27130
+ meta: object;
27131
+ }>;
27132
+ getConditionCatalog: import("@trpc/server").TRPCQueryProcedure<{
27133
+ input: {
27134
+ [x: string]: unknown;
27135
+ };
27136
+ output: {
27137
+ catalog: {
27138
+ id: string;
27139
+ group: "zones" | "label" | "package" | "class" | "scope" | "schedule" | "occupancy" | "device" | "quality";
27140
+ label: string;
27141
+ valueType: "number" | "schedule" | "packagePhase" | "occupancy" | "deviceIdList" | "stringList" | "number01" | "sourceSelect" | "zoneSelection" | "zoneIdList" | "plateMatcher" | "polygonDraw";
27142
+ operator: "in" | "notIn" | "anyOf" | "allOf" | "gte" | "fuzzyIn" | "withinSchedule";
27143
+ appliesTo: ("immediate" | "track-end" | "device-event" | "package-event")[];
27144
+ phase: string;
27145
+ description?: string | undefined;
27146
+ }[];
27147
+ };
27148
+ meta: object;
27149
+ }>;
27150
+ getHistory: import("@trpc/server").TRPCQueryProcedure<{
27151
+ input: {
27152
+ [x: string]: unknown;
27153
+ filter?: {
27154
+ ruleId?: string | undefined;
27155
+ deviceId?: number | undefined;
27156
+ status?: "pending" | "sent" | "dead" | undefined;
27157
+ since?: number | undefined;
27158
+ until?: number | undefined;
27159
+ limit?: number | undefined;
27160
+ } | undefined;
27161
+ };
27162
+ output: {
27163
+ entries: {
27164
+ id: string;
27165
+ ruleId: string;
27166
+ ruleName: string;
27167
+ delivery: "immediate" | "track-end" | "device-event" | "package-event";
27168
+ targetId: string;
27169
+ deviceId: number;
27170
+ recordKind: "track-end" | "device-event" | "package-event" | "object-event";
27171
+ recordId: string;
27172
+ status: "pending" | "sent" | "dead";
27173
+ attempts: number;
27174
+ createdAt: number;
27175
+ updatedAt: number;
27176
+ subject: {
27177
+ className: string;
27178
+ zones: string[];
27179
+ timestamp: number;
27180
+ label?: string | undefined;
27181
+ confidence?: number | undefined;
27182
+ };
27183
+ trackId?: string | undefined;
27184
+ error?: string | undefined;
27185
+ }[];
27186
+ };
27187
+ meta: object;
27188
+ }>;
27189
+ }>>;
26141
27190
  notifier: import("@trpc/server").TRPCBuiltRouter<{
26142
27191
  ctx: TrpcContext;
26143
27192
  meta: object;
@@ -26484,7 +27533,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26484
27533
  active: boolean;
26485
27534
  label?: string | undefined;
26486
27535
  producingDeviceName?: string | undefined;
26487
- source?: "pipeline" | "sensor" | undefined;
27536
+ source?: "sensor" | "pipeline" | undefined;
26488
27537
  classes?: readonly string[] | undefined;
26489
27538
  importance?: number | undefined;
26490
27539
  bestEventId?: string | undefined;
@@ -26549,7 +27598,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26549
27598
  active: boolean;
26550
27599
  label?: string | undefined;
26551
27600
  producingDeviceName?: string | undefined;
26552
- source?: "pipeline" | "sensor" | undefined;
27601
+ source?: "sensor" | "pipeline" | undefined;
26553
27602
  classes?: readonly string[] | undefined;
26554
27603
  importance?: number | undefined;
26555
27604
  bestEventId?: string | undefined;
@@ -26630,7 +27679,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26630
27679
  active: boolean;
26631
27680
  label?: string | undefined;
26632
27681
  producingDeviceName?: string | undefined;
26633
- source?: "pipeline" | "sensor" | undefined;
27682
+ source?: "sensor" | "pipeline" | undefined;
26634
27683
  classes?: readonly string[] | undefined;
26635
27684
  importance?: number | undefined;
26636
27685
  bestEventId?: string | undefined;
@@ -26700,7 +27749,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26700
27749
  active: boolean;
26701
27750
  label?: string | undefined;
26702
27751
  producingDeviceName?: string | undefined;
26703
- source?: "pipeline" | "sensor" | undefined;
27752
+ source?: "sensor" | "pipeline" | undefined;
26704
27753
  classes?: readonly string[] | undefined;
26705
27754
  importance?: number | undefined;
26706
27755
  bestEventId?: string | undefined;
@@ -26979,7 +28028,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
26979
28028
  input: {
26980
28029
  [x: string]: unknown;
26981
28030
  olderThanMs: number;
26982
- reason?: "manual" | "retention" | "quota" | "operator" | undefined;
28031
+ reason?: "manual" | "operator" | "retention" | "quota" | undefined;
26983
28032
  };
26984
28033
  output: {
26985
28034
  motion: number;
@@ -27011,7 +28060,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
27011
28060
  at: number;
27012
28061
  domain: "recording" | "events";
27013
28062
  op: "prune" | "manual-delete" | "rescan" | "retention-run";
27014
- reason: "manual" | "retention" | "quota" | "operator";
28063
+ reason: "manual" | "operator" | "retention" | "quota";
27015
28064
  deviceId: number | null;
27016
28065
  nodeId: string;
27017
28066
  itemsAffected: number;
@@ -27025,11 +28074,11 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
27025
28074
  input: {
27026
28075
  [x: string]: unknown;
27027
28076
  eventId: string;
27028
- kind?: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | "thumbnailSmall" | undefined;
28077
+ kind?: "snapshot" | "crop" | "keyFrame" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrameSmall" | "thumbnailSmall" | undefined;
27029
28078
  };
27030
28079
  output: readonly {
27031
28080
  key: string;
27032
- kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | "thumbnailSmall";
28081
+ kind: "snapshot" | "crop" | "keyFrame" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrameSmall" | "thumbnailSmall";
27033
28082
  base64: string;
27034
28083
  sizeBytes: number;
27035
28084
  timestamp: number;
@@ -27040,11 +28089,11 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
27040
28089
  input: {
27041
28090
  [x: string]: unknown;
27042
28091
  trackId: string;
27043
- kinds?: ("snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | "thumbnailSmall")[] | undefined;
28092
+ kinds?: ("snapshot" | "crop" | "keyFrame" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrameSmall" | "thumbnailSmall")[] | undefined;
27044
28093
  };
27045
28094
  output: readonly {
27046
28095
  key: string;
27047
- kind: "snapshot" | "crop" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrame" | "keyFrameSmall" | "thumbnailSmall";
28096
+ kind: "snapshot" | "crop" | "keyFrame" | "thumbnail" | "firstFrame" | "lastFrame" | "fullFrame" | "fullFrameBoxed" | "faceCrop" | "plateCrop" | "keyFrameSmall" | "thumbnailSmall";
27048
28097
  base64: string;
27049
28098
  sizeBytes: number;
27050
28099
  timestamp: number;
@@ -27444,6 +28493,26 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
27444
28493
  sessionId?: string | undefined;
27445
28494
  plane?: "full" | "frame" | undefined;
27446
28495
  deviceKey?: string | undefined;
28496
+ nativeCropRef?: {
28497
+ handle: {
28498
+ shmId: string;
28499
+ slot: number;
28500
+ seq: number;
28501
+ width: number;
28502
+ height: number;
28503
+ format: "rgb" | "jpeg" | "bgr" | "yuv420" | "gray";
28504
+ pts: number;
28505
+ byteLength: number;
28506
+ nodeId: string;
28507
+ slotCount: number;
28508
+ };
28509
+ cropFrameSpace: {
28510
+ x: number;
28511
+ y: number;
28512
+ w: number;
28513
+ h: number;
28514
+ };
28515
+ } | undefined;
27447
28516
  };
27448
28517
  output: import("@camstack/types").FrameResult;
27449
28518
  meta: object;
@@ -28809,6 +29878,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
28809
29878
  embedding?: string | undefined;
28810
29879
  label?: string | undefined;
28811
29880
  alignedCropJpeg?: string | undefined;
29881
+ nativeFaceShortSidePx?: number | undefined;
28812
29882
  }[];
28813
29883
  } | null;
28814
29884
  meta: object;
@@ -29864,7 +30934,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
29864
30934
  input: {
29865
30935
  [x: string]: unknown;
29866
30936
  deviceId: number;
29867
- reason?: "manual" | "retention" | "quota" | "operator" | undefined;
30937
+ reason?: "manual" | "operator" | "retention" | "quota" | undefined;
29868
30938
  };
29869
30939
  output: {
29870
30940
  floorMs: number | null;
@@ -29897,7 +30967,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
29897
30967
  at: number;
29898
30968
  domain: "recording" | "events";
29899
30969
  op: "prune" | "manual-delete" | "rescan" | "retention-run";
29900
- reason: "manual" | "retention" | "quota" | "operator";
30970
+ reason: "manual" | "operator" | "retention" | "quota";
29901
30971
  deviceId: number | null;
29902
30972
  nodeId: string;
29903
30973
  itemsAffected: number;