@camstack/ui-library 1.1.37 → 1.1.39

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.
@@ -130,6 +130,15 @@ export interface CameraStreamPlayerProps {
130
130
  * tier. Inert (zero behaviour change) unless a callback is passed; wire it
131
131
  * only for adaptive sessions. */
132
132
  onClientNetworkSample?: (sample: ClientNetworkSample) => void;
133
+ /**
134
+ * Cold-start phase breakdown, fired ONCE per connect when ICE reaches
135
+ * connected (the same object the `[WebRTC timing]` console line prints:
136
+ * iceServersMs/offerCreatedMs/localSetMs/signalingRttMs/answerSetMs/
137
+ * iceConnectedMs/firstTrackMs — plus firstFrameMs when the first frame
138
+ * DECODES, reported separately as a patch call). Lets an embedding host
139
+ * (the RN app's WebView) ship the numbers to its own logs instead of them
140
+ * dying in the in-WebView console. Inert unless wired. */
141
+ onConnectTiming?: (timing: Record<string, number>) => void;
133
142
  /** Additional CSS classes for the root container */
134
143
  className?: string;
135
144
  /** Called on connection state change */
@@ -234,5 +243,5 @@ export interface CameraStreamPlayerProps {
234
243
  */
235
244
  onControlChannel?: (channel: RTCDataChannel) => void;
236
245
  }
237
- export declare function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay, muted: initialMuted, showControls, showStats, onPlaybackStats, onClientNetworkSample, className, onStateChange, onError, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel, }: CameraStreamPlayerProps): import("react").JSX.Element;
246
+ export declare function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay, muted: initialMuted, showControls, showStats, onPlaybackStats, onClientNetworkSample, onConnectTiming, className, onStateChange, onError, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel, }: CameraStreamPlayerProps): import("react").JSX.Element;
238
247
  export {};
@@ -1,4 +1,4 @@
1
- import { RecordingRule, RecordingMode, RecordingConfig, RecordingStorageMode, RecordingSchedule, RecordingTriggers, RecordingRetention, CamProfile } from '@camstack/types';
1
+ import { RecordingRule, RecordingMode, RecordingConfig, RecordingStorageMode, RecordingSchedule, RecordingTriggers, RecordingRetention, ScrubThumbnailPreset, CamProfile } from '@camstack/types';
2
2
  export declare function emptyRule(): RecordingRule;
3
3
  export declare function isTriggerMode(mode: RecordingMode): boolean;
4
4
  export declare function withRuleAt(rules: readonly RecordingRule[], index: number, patch: Partial<RecordingRule>): RecordingRule[];
@@ -18,6 +18,8 @@ export interface RecordingFormState {
18
18
  readonly preBufferSec?: number;
19
19
  readonly postBufferSec?: number;
20
20
  readonly retention?: RecordingRetention;
21
+ /** Per-camera scrub-thumbnail fidelity preset (absent = standard). */
22
+ readonly scrubThumbnails?: ScrubThumbnailPreset;
21
23
  }
22
24
  /** Read a persisted/migrated config into the Basic form state. `mode` is read
23
25
  * directly; a legacy mode-less config falls back to continuous/off by `enabled`. */
@@ -435,6 +435,8 @@ export declare const useDeviceManagerListAll: typeof trpc.deviceManager.listAll.
435
435
  export declare const useDeviceManagerGetDevice: typeof trpc.deviceManager.getDevice.useQuery;
436
436
  /** Generated alias around `trpc.deviceManager.getChildren.useQuery`. */
437
437
  export declare const useDeviceManagerGetChildren: typeof trpc.deviceManager.getChildren.useQuery;
438
+ /** Generated alias around `trpc.deviceManager.getLinkedDevices.useQuery`. */
439
+ export declare const useDeviceManagerGetLinkedDevices: typeof trpc.deviceManager.getLinkedDevices.useQuery;
438
440
  /** Generated alias around `trpc.deviceManager.getStreamSources.useQuery`. */
439
441
  export declare const useDeviceManagerGetStreamSources: typeof trpc.deviceManager.getStreamSources.useQuery;
440
442
  /** Generated alias around `trpc.deviceManager.getConfigSchema.useQuery`. */
@@ -515,6 +517,12 @@ export declare const useDeviceManagerProviderDiscoveryParamsSchema: typeof trpc.
515
517
  export declare const useDeviceManagerTestField: typeof trpc.deviceManager.testField.useMutation;
516
518
  /** Generated alias around `trpc.deviceManager.getDeviceStatusAggregate.useQuery`. */
517
519
  export declare const useDeviceManagerGetDeviceStatusAggregate: typeof trpc.deviceManager.getDeviceStatusAggregate.useQuery;
520
+ /** Generated alias around `trpc.deviceManager.getDeviceSettingsContribution.useQuery`. */
521
+ export declare const useDeviceManagerGetDeviceSettingsContribution: typeof trpc.deviceManager.getDeviceSettingsContribution.useQuery;
522
+ /** Generated alias around `trpc.deviceManager.getDeviceLiveContribution.useQuery`. */
523
+ export declare const useDeviceManagerGetDeviceLiveContribution: typeof trpc.deviceManager.getDeviceLiveContribution.useQuery;
524
+ /** Generated alias around `trpc.deviceManager.applyDeviceSettingsPatch.useMutation`. */
525
+ export declare const useDeviceManagerApplyDeviceSettingsPatch: typeof trpc.deviceManager.applyDeviceSettingsPatch.useMutation;
518
526
  /** Generated alias around `trpc.deviceOps.getStreamSources.useQuery`. */
519
527
  export declare const useDeviceOpsGetStreamSources: typeof trpc.deviceOps.getStreamSources.useQuery;
520
528
  /** Generated alias around `trpc.deviceOps.getConfigEntries.useQuery`. */
@@ -567,6 +575,12 @@ export declare const useDeviceStateSetCapSlice: typeof trpc.deviceState.setCapSl
567
575
  export declare const useDeviceStatusGetStatus: typeof trpc.deviceStatus.getStatus.useQuery;
568
576
  /** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
569
577
  export declare const useDoorbellGetStatus: typeof trpc.doorbell.getStatus.useQuery;
578
+ /** Generated alias around `trpc.doorbell.getDeviceSettingsContribution.useQuery`. */
579
+ export declare const useDoorbellGetDeviceSettingsContribution: typeof trpc.doorbell.getDeviceSettingsContribution.useQuery;
580
+ /** Generated alias around `trpc.doorbell.getDeviceLiveContribution.useQuery`. */
581
+ export declare const useDoorbellGetDeviceLiveContribution: typeof trpc.doorbell.getDeviceLiveContribution.useQuery;
582
+ /** Generated alias around `trpc.doorbell.applyDeviceSettingsPatch.useMutation`. */
583
+ export declare const useDoorbellApplyDeviceSettingsPatch: typeof trpc.doorbell.applyDeviceSettingsPatch.useMutation;
570
584
  /** Generated alias around `trpc.enumSensor.getStatus.useQuery`. */
571
585
  export declare const useEnumSensorGetStatus: typeof trpc.enumSensor.getStatus.useQuery;
572
586
  /** Generated alias around `trpc.eventEmitter.getStatus.useQuery`. */
@@ -949,6 +963,8 @@ export declare const usePipelineAnalyticsGetActiveTracks: typeof trpc.pipelineAn
949
963
  export declare const usePipelineAnalyticsGetTrack: typeof trpc.pipelineAnalytics.getTrack.useQuery;
950
964
  /** Generated alias around `trpc.pipelineAnalytics.listTracks.useQuery`. */
951
965
  export declare const usePipelineAnalyticsListTracks: typeof trpc.pipelineAnalytics.listTracks.useQuery;
966
+ /** Generated alias around `trpc.pipelineAnalytics.listRecentTracks.useQuery`. */
967
+ export declare const usePipelineAnalyticsListRecentTracks: typeof trpc.pipelineAnalytics.listRecentTracks.useQuery;
952
968
  /** Generated alias around `trpc.pipelineAnalytics.clearTracks.useMutation`. */
953
969
  export declare const usePipelineAnalyticsClearTracks: typeof trpc.pipelineAnalytics.clearTracks.useMutation;
954
970
  /** Generated alias around `trpc.pipelineAnalytics.getMotionEvents.useQuery`. */
@@ -957,6 +973,10 @@ export declare const usePipelineAnalyticsGetMotionEvents: typeof trpc.pipelineAn
957
973
  export declare const usePipelineAnalyticsGetObjectEvents: typeof trpc.pipelineAnalytics.getObjectEvents.useQuery;
958
974
  /** Generated alias around `trpc.pipelineAnalytics.getAudioEvents.useQuery`. */
959
975
  export declare const usePipelineAnalyticsGetAudioEvents: typeof trpc.pipelineAnalytics.getAudioEvents.useQuery;
976
+ /** Generated alias around `trpc.pipelineAnalytics.listEventKinds.useQuery`. */
977
+ export declare const usePipelineAnalyticsListEventKinds: typeof trpc.pipelineAnalytics.listEventKinds.useQuery;
978
+ /** Generated alias around `trpc.pipelineAnalytics.getSensorEvents.useQuery`. */
979
+ export declare const usePipelineAnalyticsGetSensorEvents: typeof trpc.pipelineAnalytics.getSensorEvents.useQuery;
960
980
  /** Generated alias around `trpc.pipelineAnalytics.getKeyEvents.useQuery`. */
961
981
  export declare const usePipelineAnalyticsGetKeyEvents: typeof trpc.pipelineAnalytics.getKeyEvents.useQuery;
962
982
  /** Generated alias around `trpc.pipelineAnalytics.getEventDensity.useQuery`. */
package/dist/index.cjs CHANGED
@@ -17527,6 +17527,8 @@ var useDeviceManagerListAll = trpc.deviceManager.listAll.useQuery;
17527
17527
  var useDeviceManagerGetDevice = trpc.deviceManager.getDevice.useQuery;
17528
17528
  /** Generated alias around `trpc.deviceManager.getChildren.useQuery`. */
17529
17529
  var useDeviceManagerGetChildren = trpc.deviceManager.getChildren.useQuery;
17530
+ /** Generated alias around `trpc.deviceManager.getLinkedDevices.useQuery`. */
17531
+ var useDeviceManagerGetLinkedDevices = trpc.deviceManager.getLinkedDevices.useQuery;
17530
17532
  /** Generated alias around `trpc.deviceManager.getStreamSources.useQuery`. */
17531
17533
  var useDeviceManagerGetStreamSources = trpc.deviceManager.getStreamSources.useQuery;
17532
17534
  /** Generated alias around `trpc.deviceManager.getConfigSchema.useQuery`. */
@@ -17607,6 +17609,12 @@ var useDeviceManagerProviderDiscoveryParamsSchema = trpc.deviceManager.providerD
17607
17609
  var useDeviceManagerTestField = trpc.deviceManager.testField.useMutation;
17608
17610
  /** Generated alias around `trpc.deviceManager.getDeviceStatusAggregate.useQuery`. */
17609
17611
  var useDeviceManagerGetDeviceStatusAggregate = trpc.deviceManager.getDeviceStatusAggregate.useQuery;
17612
+ /** Generated alias around `trpc.deviceManager.getDeviceSettingsContribution.useQuery`. */
17613
+ var useDeviceManagerGetDeviceSettingsContribution = trpc.deviceManager.getDeviceSettingsContribution.useQuery;
17614
+ /** Generated alias around `trpc.deviceManager.getDeviceLiveContribution.useQuery`. */
17615
+ var useDeviceManagerGetDeviceLiveContribution = trpc.deviceManager.getDeviceLiveContribution.useQuery;
17616
+ /** Generated alias around `trpc.deviceManager.applyDeviceSettingsPatch.useMutation`. */
17617
+ var useDeviceManagerApplyDeviceSettingsPatch = trpc.deviceManager.applyDeviceSettingsPatch.useMutation;
17610
17618
  /** Generated alias around `trpc.deviceOps.getStreamSources.useQuery`. */
17611
17619
  var useDeviceOpsGetStreamSources = trpc.deviceOps.getStreamSources.useQuery;
17612
17620
  /** Generated alias around `trpc.deviceOps.getConfigEntries.useQuery`. */
@@ -17659,6 +17667,12 @@ var useDeviceStateSetCapSlice = trpc.deviceState.setCapSlice.useMutation;
17659
17667
  var useDeviceStatusGetStatus = trpc.deviceStatus.getStatus.useQuery;
17660
17668
  /** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
17661
17669
  var useDoorbellGetStatus = trpc.doorbell.getStatus.useQuery;
17670
+ /** Generated alias around `trpc.doorbell.getDeviceSettingsContribution.useQuery`. */
17671
+ var useDoorbellGetDeviceSettingsContribution = trpc.doorbell.getDeviceSettingsContribution.useQuery;
17672
+ /** Generated alias around `trpc.doorbell.getDeviceLiveContribution.useQuery`. */
17673
+ var useDoorbellGetDeviceLiveContribution = trpc.doorbell.getDeviceLiveContribution.useQuery;
17674
+ /** Generated alias around `trpc.doorbell.applyDeviceSettingsPatch.useMutation`. */
17675
+ var useDoorbellApplyDeviceSettingsPatch = trpc.doorbell.applyDeviceSettingsPatch.useMutation;
17662
17676
  /** Generated alias around `trpc.enumSensor.getStatus.useQuery`. */
17663
17677
  var useEnumSensorGetStatus = trpc.enumSensor.getStatus.useQuery;
17664
17678
  /** Generated alias around `trpc.eventEmitter.getStatus.useQuery`. */
@@ -18041,6 +18055,8 @@ var usePipelineAnalyticsGetActiveTracks = trpc.pipelineAnalytics.getActiveTracks
18041
18055
  var usePipelineAnalyticsGetTrack = trpc.pipelineAnalytics.getTrack.useQuery;
18042
18056
  /** Generated alias around `trpc.pipelineAnalytics.listTracks.useQuery`. */
18043
18057
  var usePipelineAnalyticsListTracks = trpc.pipelineAnalytics.listTracks.useQuery;
18058
+ /** Generated alias around `trpc.pipelineAnalytics.listRecentTracks.useQuery`. */
18059
+ var usePipelineAnalyticsListRecentTracks = trpc.pipelineAnalytics.listRecentTracks.useQuery;
18044
18060
  /** Generated alias around `trpc.pipelineAnalytics.clearTracks.useMutation`. */
18045
18061
  var usePipelineAnalyticsClearTracks = trpc.pipelineAnalytics.clearTracks.useMutation;
18046
18062
  /** Generated alias around `trpc.pipelineAnalytics.getMotionEvents.useQuery`. */
@@ -18049,6 +18065,10 @@ var usePipelineAnalyticsGetMotionEvents = trpc.pipelineAnalytics.getMotionEvents
18049
18065
  var usePipelineAnalyticsGetObjectEvents = trpc.pipelineAnalytics.getObjectEvents.useQuery;
18050
18066
  /** Generated alias around `trpc.pipelineAnalytics.getAudioEvents.useQuery`. */
18051
18067
  var usePipelineAnalyticsGetAudioEvents = trpc.pipelineAnalytics.getAudioEvents.useQuery;
18068
+ /** Generated alias around `trpc.pipelineAnalytics.listEventKinds.useQuery`. */
18069
+ var usePipelineAnalyticsListEventKinds = trpc.pipelineAnalytics.listEventKinds.useQuery;
18070
+ /** Generated alias around `trpc.pipelineAnalytics.getSensorEvents.useQuery`. */
18071
+ var usePipelineAnalyticsGetSensorEvents = trpc.pipelineAnalytics.getSensorEvents.useQuery;
18052
18072
  /** Generated alias around `trpc.pipelineAnalytics.getKeyEvents.useQuery`. */
18053
18073
  var usePipelineAnalyticsGetKeyEvents = trpc.pipelineAnalytics.getKeyEvents.useQuery;
18054
18074
  /** Generated alias around `trpc.pipelineAnalytics.getEventDensity.useQuery`. */
@@ -33396,7 +33416,8 @@ function formStateFromConfig(cfg) {
33396
33416
  triggers: cfg.triggers ?? {},
33397
33417
  preBufferSec: cfg.preBufferSec,
33398
33418
  postBufferSec: cfg.postBufferSec,
33399
- retention: cfg.retention
33419
+ retention: cfg.retention,
33420
+ scrubThumbnails: cfg.scrubThumbnails
33400
33421
  };
33401
33422
  }
33402
33423
  /** Serialize the Basic form state back to the wire config. `enabled` is derived
@@ -33412,7 +33433,8 @@ function configFromFormState(state) {
33412
33433
  triggers: Object.keys(state.triggers).length > 0 ? state.triggers : void 0,
33413
33434
  preBufferSec: state.preBufferSec,
33414
33435
  postBufferSec: state.postBufferSec,
33415
- retention: state.retention
33436
+ retention: state.retention,
33437
+ scrubThumbnails: state.scrubThumbnails
33416
33438
  };
33417
33439
  }
33418
33440
  /**
@@ -33835,7 +33857,8 @@ function RecordingSettings({ initial, saving, onSave }) {
33835
33857
  const [common, setCommon] = (0, react$1.useState)({
33836
33858
  profiles: initial.profiles,
33837
33859
  segmentSeconds: initial.segmentSeconds,
33838
- retention: initial.retention
33860
+ retention: initial.retention,
33861
+ scrubThumbnails: initial.scrubThumbnails
33839
33862
  });
33840
33863
  const ret = common.retention ?? {};
33841
33864
  const setRet = (patch) => setCommon({
@@ -33846,6 +33869,10 @@ function RecordingSettings({ initial, saving, onSave }) {
33846
33869
  }
33847
33870
  });
33848
33871
  const numOrUndef = (v) => v === "" ? void 0 : Number(v);
33872
+ const parsePreset = (v) => {
33873
+ const parsed = _camstack_types.ScrubThumbnailPresetSchema.safeParse(v);
33874
+ return parsed.success ? parsed.data : _camstack_types.DEFAULT_SCRUB_THUMBNAIL_PRESET;
33875
+ };
33849
33876
  const toggleProfile = (p) => {
33850
33877
  const cur = common.profiles ?? [...PROFILES];
33851
33878
  const next = cur.includes(p) ? cur.filter((x) => x !== p) : [...cur, p];
@@ -33870,14 +33897,16 @@ function RecordingSettings({ initial, saving, onSave }) {
33870
33897
  ...base,
33871
33898
  profiles: common.profiles,
33872
33899
  segmentSeconds: common.segmentSeconds,
33873
- retention: common.retention
33900
+ retention: common.retention,
33901
+ scrubThumbnails: common.scrubThumbnails
33874
33902
  }));
33875
33903
  else onSave({
33876
33904
  enabled: advEnabled,
33877
33905
  rules,
33878
33906
  profiles: common.profiles ? [...common.profiles] : void 0,
33879
33907
  segmentSeconds: common.segmentSeconds,
33880
- retention: common.retention
33908
+ retention: common.retention,
33909
+ scrubThumbnails: common.scrubThumbnails
33881
33910
  });
33882
33911
  };
33883
33912
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -34016,37 +34045,62 @@ function RecordingSettings({ initial, saving, onSave }) {
34016
34045
  }),
34017
34046
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
34018
34047
  className: "flex flex-wrap items-center gap-4 text-xs",
34019
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
34020
- className: "flex items-center gap-2",
34021
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
34022
- className: "text-foreground-subtle",
34023
- children: "Profiles:"
34024
- }), PROFILES.map((p) => {
34025
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
34026
- type: "button",
34027
- onClick: () => toggleProfile(p),
34028
- className: `rounded px-2 py-1 ${common.profiles == null || common.profiles.includes(p) ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
34029
- children: p
34030
- }, p);
34031
- })]
34032
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
34033
- className: "flex items-center gap-1",
34034
- children: [
34035
- "Segment",
34036
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
34037
- type: "number",
34038
- min: 1,
34039
- value: common.segmentSeconds ?? "",
34040
- placeholder: "default",
34048
+ children: [
34049
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
34050
+ className: "flex items-center gap-2",
34051
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
34052
+ className: "text-foreground-subtle",
34053
+ children: "Profiles:"
34054
+ }), PROFILES.map((p) => {
34055
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
34056
+ type: "button",
34057
+ onClick: () => toggleProfile(p),
34058
+ className: `rounded px-2 py-1 ${common.profiles == null || common.profiles.includes(p) ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
34059
+ children: p
34060
+ }, p);
34061
+ })]
34062
+ }),
34063
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
34064
+ className: "flex items-center gap-1",
34065
+ children: [
34066
+ "Segment",
34067
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
34068
+ type: "number",
34069
+ min: 1,
34070
+ value: common.segmentSeconds ?? "",
34071
+ placeholder: "default",
34072
+ onChange: (e) => setCommon({
34073
+ ...common,
34074
+ segmentSeconds: numOrUndef(e.target.value)
34075
+ }),
34076
+ className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
34077
+ }),
34078
+ "s"
34079
+ ]
34080
+ }),
34081
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
34082
+ className: "flex items-center gap-1",
34083
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
34084
+ className: "text-foreground-subtle",
34085
+ children: "Scrub preview quality"
34086
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
34087
+ value: common.scrubThumbnails ?? _camstack_types.DEFAULT_SCRUB_THUMBNAIL_PRESET,
34041
34088
  onChange: (e) => setCommon({
34042
34089
  ...common,
34043
- segmentSeconds: numOrUndef(e.target.value)
34090
+ scrubThumbnails: parsePreset(e.target.value)
34044
34091
  }),
34045
- className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
34046
- }),
34047
- "s"
34048
- ]
34049
- })]
34092
+ className: "rounded-md border border-border bg-background px-1 py-1 text-xs",
34093
+ children: _camstack_types.SCRUB_THUMBNAIL_PRESET_ORDER.map((p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
34094
+ value: p,
34095
+ children: _camstack_types.SCRUB_THUMBNAIL_PRESET_LABELS[p]
34096
+ }, p))
34097
+ })]
34098
+ })
34099
+ ]
34100
+ }),
34101
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
34102
+ className: "text-[11px] text-foreground-subtle",
34103
+ children: "Timeline scrub-preview resolution + quality. Higher = crisper previews but larger sprite sheets. Applies to NEW recordings only — existing preview sheets keep their original resolution."
34050
34104
  }),
34051
34105
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
34052
34106
  className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle",
@@ -38937,7 +38991,7 @@ function computeClientHints(container) {
38937
38991
  var RECONNECT_BASE_DELAY_MS = 1500;
38938
38992
  var RECONNECT_MAX_DELAY_MS = 15e3;
38939
38993
  var MAX_RECONNECT_ATTEMPTS = 40;
38940
- function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, muted: initialMuted = true, showControls = true, showStats = false, onPlaybackStats, onClientNetworkSample, className = "", onStateChange, onError, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel }) {
38994
+ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, muted: initialMuted = true, showControls = true, showStats = false, onPlaybackStats, onClientNetworkSample, onConnectTiming, className = "", onStateChange, onError, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel }) {
38941
38995
  const videoRef = (0, react$1.useRef)(null);
38942
38996
  const containerRef = (0, react$1.useRef)(null);
38943
38997
  const pcRef = (0, react$1.useRef)(null);
@@ -39311,6 +39365,16 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
39311
39365
  streamKey,
39312
39366
  ...timing
39313
39367
  });
39368
+ onConnectTiming?.({ ...timing });
39369
+ const v = videoRef.current;
39370
+ if (v && "requestVideoFrameCallback" in v) v.requestVideoFrameCallback(() => {
39371
+ timing.firstFrameMs = ms();
39372
+ console.info("[WebRTC timing] first decoded frame", {
39373
+ streamKey,
39374
+ firstFrameMs: timing.firstFrameMs
39375
+ });
39376
+ onConnectTiming?.({ ...timing });
39377
+ });
39314
39378
  }
39315
39379
  reconnectAttemptsRef.current = 0;
39316
39380
  if (seamless) swapInOnce();
@@ -46102,6 +46166,7 @@ exports.useDeviceManagerAdoptionRefresh = useDeviceManagerAdoptionRefresh;
46102
46166
  exports.useDeviceManagerAdoptionRelease = useDeviceManagerAdoptionRelease;
46103
46167
  exports.useDeviceManagerAdoptionResync = useDeviceManagerAdoptionResync;
46104
46168
  exports.useDeviceManagerAllocateDeviceId = useDeviceManagerAllocateDeviceId;
46169
+ exports.useDeviceManagerApplyDeviceSettingsPatch = useDeviceManagerApplyDeviceSettingsPatch;
46105
46170
  exports.useDeviceManagerApplyInitialMeta = useDeviceManagerApplyInitialMeta;
46106
46171
  exports.useDeviceManagerCreateDevice = useDeviceManagerCreateDevice;
46107
46172
  exports.useDeviceManagerDisable = useDeviceManagerDisable;
@@ -46117,9 +46182,12 @@ exports.useDeviceManagerGetConfigSchema = useDeviceManagerGetConfigSchema;
46117
46182
  exports.useDeviceManagerGetCreationSchema = useDeviceManagerGetCreationSchema;
46118
46183
  exports.useDeviceManagerGetDevice = useDeviceManagerGetDevice;
46119
46184
  exports.useDeviceManagerGetDeviceAggregate = useDeviceManagerGetDeviceAggregate;
46185
+ exports.useDeviceManagerGetDeviceLiveContribution = useDeviceManagerGetDeviceLiveContribution;
46120
46186
  exports.useDeviceManagerGetDeviceLiveInfoAggregate = useDeviceManagerGetDeviceLiveInfoAggregate;
46121
46187
  exports.useDeviceManagerGetDeviceSettingsAggregate = useDeviceManagerGetDeviceSettingsAggregate;
46188
+ exports.useDeviceManagerGetDeviceSettingsContribution = useDeviceManagerGetDeviceSettingsContribution;
46122
46189
  exports.useDeviceManagerGetDeviceStatusAggregate = useDeviceManagerGetDeviceStatusAggregate;
46190
+ exports.useDeviceManagerGetLinkedDevices = useDeviceManagerGetLinkedDevices;
46123
46191
  exports.useDeviceManagerGetRoleDisplayDefaults = useDeviceManagerGetRoleDisplayDefaults;
46124
46192
  exports.useDeviceManagerGetSettingsSchema = useDeviceManagerGetSettingsSchema;
46125
46193
  exports.useDeviceManagerGetStreamProfileMap = useDeviceManagerGetStreamProfileMap;
@@ -46196,7 +46264,10 @@ exports.useDeviceStateSlice = useDeviceStateSlice;
46196
46264
  exports.useDeviceStatusGetStatus = useDeviceStatusGetStatus;
46197
46265
  exports.useDeviceWebrtc = useDeviceWebrtc;
46198
46266
  exports.useDevices = useDevices;
46267
+ exports.useDoorbellApplyDeviceSettingsPatch = useDoorbellApplyDeviceSettingsPatch;
46199
46268
  exports.useDoorbellEvents = useDoorbellEvents;
46269
+ exports.useDoorbellGetDeviceLiveContribution = useDoorbellGetDeviceLiveContribution;
46270
+ exports.useDoorbellGetDeviceSettingsContribution = useDoorbellGetDeviceSettingsContribution;
46200
46271
  exports.useDoorbellGetStatus = useDoorbellGetStatus;
46201
46272
  exports.useEnumSensorGetStatus = useEnumSensorGetStatus;
46202
46273
  exports.useEventEmitterGetStatus = useEventEmitterGetStatus;
@@ -46409,8 +46480,11 @@ exports.usePipelineAnalyticsGetEventMedia = usePipelineAnalyticsGetEventMedia;
46409
46480
  exports.usePipelineAnalyticsGetKeyEvents = usePipelineAnalyticsGetKeyEvents;
46410
46481
  exports.usePipelineAnalyticsGetMotionEvents = usePipelineAnalyticsGetMotionEvents;
46411
46482
  exports.usePipelineAnalyticsGetObjectEvents = usePipelineAnalyticsGetObjectEvents;
46483
+ exports.usePipelineAnalyticsGetSensorEvents = usePipelineAnalyticsGetSensorEvents;
46412
46484
  exports.usePipelineAnalyticsGetTrack = usePipelineAnalyticsGetTrack;
46413
46485
  exports.usePipelineAnalyticsGetTrackMedia = usePipelineAnalyticsGetTrackMedia;
46486
+ exports.usePipelineAnalyticsListEventKinds = usePipelineAnalyticsListEventKinds;
46487
+ exports.usePipelineAnalyticsListRecentTracks = usePipelineAnalyticsListRecentTracks;
46414
46488
  exports.usePipelineAnalyticsListTracks = usePipelineAnalyticsListTracks;
46415
46489
  exports.usePipelineAnalyticsPruneEventsBefore = usePipelineAnalyticsPruneEventsBefore;
46416
46490
  exports.usePipelineAnalyticsPruneTracksBefore = usePipelineAnalyticsPruneTracksBefore;
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import * as __mfHostReact from "react";
3
3
  import React, { Fragment, Suspense, createContext, createElement, forwardRef, lazy, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
4
4
  import * as __mfHostReactJsxRuntime from "react/jsx-runtime";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
- import { ALL_CAPABILITY_DEFINITIONS, DeviceExportStatusSchema, DeviceFeature, DeviceRole, DeviceType, EventCategory, ExposedDeviceSchema, KNOWN_CAP_NAMES, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, RecordingConfigSchema, RecordingStatusSchema, SourceInfoSchema, TIMEZONES, buildModelVariantGroups, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, describeModelVariant, findTimezone, resolveVariantModelId, tryConvertUnit } from "@camstack/types";
6
+ import { ALL_CAPABILITY_DEFINITIONS, DEFAULT_SCRUB_THUMBNAIL_PRESET, DeviceExportStatusSchema, DeviceFeature, DeviceRole, DeviceType, EventCategory, ExposedDeviceSchema, KNOWN_CAP_NAMES, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, RecordingConfigSchema, RecordingStatusSchema, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, ScrubThumbnailPresetSchema, SourceInfoSchema, TIMEZONES, buildModelVariantGroups, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, describeModelVariant, findTimezone, resolveVariantModelId, tryConvertUnit } from "@camstack/types";
7
7
  import * as __mfHostReactDOM from "react-dom";
8
8
  import { createPortal } from "react-dom";
9
9
  import * as __mfHostReactDOMClient from "react-dom/client";
@@ -17503,6 +17503,8 @@ var useDeviceManagerListAll = trpc.deviceManager.listAll.useQuery;
17503
17503
  var useDeviceManagerGetDevice = trpc.deviceManager.getDevice.useQuery;
17504
17504
  /** Generated alias around `trpc.deviceManager.getChildren.useQuery`. */
17505
17505
  var useDeviceManagerGetChildren = trpc.deviceManager.getChildren.useQuery;
17506
+ /** Generated alias around `trpc.deviceManager.getLinkedDevices.useQuery`. */
17507
+ var useDeviceManagerGetLinkedDevices = trpc.deviceManager.getLinkedDevices.useQuery;
17506
17508
  /** Generated alias around `trpc.deviceManager.getStreamSources.useQuery`. */
17507
17509
  var useDeviceManagerGetStreamSources = trpc.deviceManager.getStreamSources.useQuery;
17508
17510
  /** Generated alias around `trpc.deviceManager.getConfigSchema.useQuery`. */
@@ -17583,6 +17585,12 @@ var useDeviceManagerProviderDiscoveryParamsSchema = trpc.deviceManager.providerD
17583
17585
  var useDeviceManagerTestField = trpc.deviceManager.testField.useMutation;
17584
17586
  /** Generated alias around `trpc.deviceManager.getDeviceStatusAggregate.useQuery`. */
17585
17587
  var useDeviceManagerGetDeviceStatusAggregate = trpc.deviceManager.getDeviceStatusAggregate.useQuery;
17588
+ /** Generated alias around `trpc.deviceManager.getDeviceSettingsContribution.useQuery`. */
17589
+ var useDeviceManagerGetDeviceSettingsContribution = trpc.deviceManager.getDeviceSettingsContribution.useQuery;
17590
+ /** Generated alias around `trpc.deviceManager.getDeviceLiveContribution.useQuery`. */
17591
+ var useDeviceManagerGetDeviceLiveContribution = trpc.deviceManager.getDeviceLiveContribution.useQuery;
17592
+ /** Generated alias around `trpc.deviceManager.applyDeviceSettingsPatch.useMutation`. */
17593
+ var useDeviceManagerApplyDeviceSettingsPatch = trpc.deviceManager.applyDeviceSettingsPatch.useMutation;
17586
17594
  /** Generated alias around `trpc.deviceOps.getStreamSources.useQuery`. */
17587
17595
  var useDeviceOpsGetStreamSources = trpc.deviceOps.getStreamSources.useQuery;
17588
17596
  /** Generated alias around `trpc.deviceOps.getConfigEntries.useQuery`. */
@@ -17635,6 +17643,12 @@ var useDeviceStateSetCapSlice = trpc.deviceState.setCapSlice.useMutation;
17635
17643
  var useDeviceStatusGetStatus = trpc.deviceStatus.getStatus.useQuery;
17636
17644
  /** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
17637
17645
  var useDoorbellGetStatus = trpc.doorbell.getStatus.useQuery;
17646
+ /** Generated alias around `trpc.doorbell.getDeviceSettingsContribution.useQuery`. */
17647
+ var useDoorbellGetDeviceSettingsContribution = trpc.doorbell.getDeviceSettingsContribution.useQuery;
17648
+ /** Generated alias around `trpc.doorbell.getDeviceLiveContribution.useQuery`. */
17649
+ var useDoorbellGetDeviceLiveContribution = trpc.doorbell.getDeviceLiveContribution.useQuery;
17650
+ /** Generated alias around `trpc.doorbell.applyDeviceSettingsPatch.useMutation`. */
17651
+ var useDoorbellApplyDeviceSettingsPatch = trpc.doorbell.applyDeviceSettingsPatch.useMutation;
17638
17652
  /** Generated alias around `trpc.enumSensor.getStatus.useQuery`. */
17639
17653
  var useEnumSensorGetStatus = trpc.enumSensor.getStatus.useQuery;
17640
17654
  /** Generated alias around `trpc.eventEmitter.getStatus.useQuery`. */
@@ -18017,6 +18031,8 @@ var usePipelineAnalyticsGetActiveTracks = trpc.pipelineAnalytics.getActiveTracks
18017
18031
  var usePipelineAnalyticsGetTrack = trpc.pipelineAnalytics.getTrack.useQuery;
18018
18032
  /** Generated alias around `trpc.pipelineAnalytics.listTracks.useQuery`. */
18019
18033
  var usePipelineAnalyticsListTracks = trpc.pipelineAnalytics.listTracks.useQuery;
18034
+ /** Generated alias around `trpc.pipelineAnalytics.listRecentTracks.useQuery`. */
18035
+ var usePipelineAnalyticsListRecentTracks = trpc.pipelineAnalytics.listRecentTracks.useQuery;
18020
18036
  /** Generated alias around `trpc.pipelineAnalytics.clearTracks.useMutation`. */
18021
18037
  var usePipelineAnalyticsClearTracks = trpc.pipelineAnalytics.clearTracks.useMutation;
18022
18038
  /** Generated alias around `trpc.pipelineAnalytics.getMotionEvents.useQuery`. */
@@ -18025,6 +18041,10 @@ var usePipelineAnalyticsGetMotionEvents = trpc.pipelineAnalytics.getMotionEvents
18025
18041
  var usePipelineAnalyticsGetObjectEvents = trpc.pipelineAnalytics.getObjectEvents.useQuery;
18026
18042
  /** Generated alias around `trpc.pipelineAnalytics.getAudioEvents.useQuery`. */
18027
18043
  var usePipelineAnalyticsGetAudioEvents = trpc.pipelineAnalytics.getAudioEvents.useQuery;
18044
+ /** Generated alias around `trpc.pipelineAnalytics.listEventKinds.useQuery`. */
18045
+ var usePipelineAnalyticsListEventKinds = trpc.pipelineAnalytics.listEventKinds.useQuery;
18046
+ /** Generated alias around `trpc.pipelineAnalytics.getSensorEvents.useQuery`. */
18047
+ var usePipelineAnalyticsGetSensorEvents = trpc.pipelineAnalytics.getSensorEvents.useQuery;
18028
18048
  /** Generated alias around `trpc.pipelineAnalytics.getKeyEvents.useQuery`. */
18029
18049
  var usePipelineAnalyticsGetKeyEvents = trpc.pipelineAnalytics.getKeyEvents.useQuery;
18030
18050
  /** Generated alias around `trpc.pipelineAnalytics.getEventDensity.useQuery`. */
@@ -33372,7 +33392,8 @@ function formStateFromConfig(cfg) {
33372
33392
  triggers: cfg.triggers ?? {},
33373
33393
  preBufferSec: cfg.preBufferSec,
33374
33394
  postBufferSec: cfg.postBufferSec,
33375
- retention: cfg.retention
33395
+ retention: cfg.retention,
33396
+ scrubThumbnails: cfg.scrubThumbnails
33376
33397
  };
33377
33398
  }
33378
33399
  /** Serialize the Basic form state back to the wire config. `enabled` is derived
@@ -33388,7 +33409,8 @@ function configFromFormState(state) {
33388
33409
  triggers: Object.keys(state.triggers).length > 0 ? state.triggers : void 0,
33389
33410
  preBufferSec: state.preBufferSec,
33390
33411
  postBufferSec: state.postBufferSec,
33391
- retention: state.retention
33412
+ retention: state.retention,
33413
+ scrubThumbnails: state.scrubThumbnails
33392
33414
  };
33393
33415
  }
33394
33416
  /**
@@ -33811,7 +33833,8 @@ function RecordingSettings({ initial, saving, onSave }) {
33811
33833
  const [common, setCommon] = useState({
33812
33834
  profiles: initial.profiles,
33813
33835
  segmentSeconds: initial.segmentSeconds,
33814
- retention: initial.retention
33836
+ retention: initial.retention,
33837
+ scrubThumbnails: initial.scrubThumbnails
33815
33838
  });
33816
33839
  const ret = common.retention ?? {};
33817
33840
  const setRet = (patch) => setCommon({
@@ -33822,6 +33845,10 @@ function RecordingSettings({ initial, saving, onSave }) {
33822
33845
  }
33823
33846
  });
33824
33847
  const numOrUndef = (v) => v === "" ? void 0 : Number(v);
33848
+ const parsePreset = (v) => {
33849
+ const parsed = ScrubThumbnailPresetSchema.safeParse(v);
33850
+ return parsed.success ? parsed.data : DEFAULT_SCRUB_THUMBNAIL_PRESET;
33851
+ };
33825
33852
  const toggleProfile = (p) => {
33826
33853
  const cur = common.profiles ?? [...PROFILES];
33827
33854
  const next = cur.includes(p) ? cur.filter((x) => x !== p) : [...cur, p];
@@ -33846,14 +33873,16 @@ function RecordingSettings({ initial, saving, onSave }) {
33846
33873
  ...base,
33847
33874
  profiles: common.profiles,
33848
33875
  segmentSeconds: common.segmentSeconds,
33849
- retention: common.retention
33876
+ retention: common.retention,
33877
+ scrubThumbnails: common.scrubThumbnails
33850
33878
  }));
33851
33879
  else onSave({
33852
33880
  enabled: advEnabled,
33853
33881
  rules,
33854
33882
  profiles: common.profiles ? [...common.profiles] : void 0,
33855
33883
  segmentSeconds: common.segmentSeconds,
33856
- retention: common.retention
33884
+ retention: common.retention,
33885
+ scrubThumbnails: common.scrubThumbnails
33857
33886
  });
33858
33887
  };
33859
33888
  return /* @__PURE__ */ jsxs("div", {
@@ -33992,37 +34021,62 @@ function RecordingSettings({ initial, saving, onSave }) {
33992
34021
  }),
33993
34022
  /* @__PURE__ */ jsxs("div", {
33994
34023
  className: "flex flex-wrap items-center gap-4 text-xs",
33995
- children: [/* @__PURE__ */ jsxs("div", {
33996
- className: "flex items-center gap-2",
33997
- children: [/* @__PURE__ */ jsx("span", {
33998
- className: "text-foreground-subtle",
33999
- children: "Profiles:"
34000
- }), PROFILES.map((p) => {
34001
- return /* @__PURE__ */ jsx("button", {
34002
- type: "button",
34003
- onClick: () => toggleProfile(p),
34004
- className: `rounded px-2 py-1 ${common.profiles == null || common.profiles.includes(p) ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
34005
- children: p
34006
- }, p);
34007
- })]
34008
- }), /* @__PURE__ */ jsxs("label", {
34009
- className: "flex items-center gap-1",
34010
- children: [
34011
- "Segment",
34012
- /* @__PURE__ */ jsx("input", {
34013
- type: "number",
34014
- min: 1,
34015
- value: common.segmentSeconds ?? "",
34016
- placeholder: "default",
34024
+ children: [
34025
+ /* @__PURE__ */ jsxs("div", {
34026
+ className: "flex items-center gap-2",
34027
+ children: [/* @__PURE__ */ jsx("span", {
34028
+ className: "text-foreground-subtle",
34029
+ children: "Profiles:"
34030
+ }), PROFILES.map((p) => {
34031
+ return /* @__PURE__ */ jsx("button", {
34032
+ type: "button",
34033
+ onClick: () => toggleProfile(p),
34034
+ className: `rounded px-2 py-1 ${common.profiles == null || common.profiles.includes(p) ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
34035
+ children: p
34036
+ }, p);
34037
+ })]
34038
+ }),
34039
+ /* @__PURE__ */ jsxs("label", {
34040
+ className: "flex items-center gap-1",
34041
+ children: [
34042
+ "Segment",
34043
+ /* @__PURE__ */ jsx("input", {
34044
+ type: "number",
34045
+ min: 1,
34046
+ value: common.segmentSeconds ?? "",
34047
+ placeholder: "default",
34048
+ onChange: (e) => setCommon({
34049
+ ...common,
34050
+ segmentSeconds: numOrUndef(e.target.value)
34051
+ }),
34052
+ className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
34053
+ }),
34054
+ "s"
34055
+ ]
34056
+ }),
34057
+ /* @__PURE__ */ jsxs("label", {
34058
+ className: "flex items-center gap-1",
34059
+ children: [/* @__PURE__ */ jsx("span", {
34060
+ className: "text-foreground-subtle",
34061
+ children: "Scrub preview quality"
34062
+ }), /* @__PURE__ */ jsx("select", {
34063
+ value: common.scrubThumbnails ?? DEFAULT_SCRUB_THUMBNAIL_PRESET,
34017
34064
  onChange: (e) => setCommon({
34018
34065
  ...common,
34019
- segmentSeconds: numOrUndef(e.target.value)
34066
+ scrubThumbnails: parsePreset(e.target.value)
34020
34067
  }),
34021
- className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
34022
- }),
34023
- "s"
34024
- ]
34025
- })]
34068
+ className: "rounded-md border border-border bg-background px-1 py-1 text-xs",
34069
+ children: SCRUB_THUMBNAIL_PRESET_ORDER.map((p) => /* @__PURE__ */ jsx("option", {
34070
+ value: p,
34071
+ children: SCRUB_THUMBNAIL_PRESET_LABELS[p]
34072
+ }, p))
34073
+ })]
34074
+ })
34075
+ ]
34076
+ }),
34077
+ /* @__PURE__ */ jsx("p", {
34078
+ className: "text-[11px] text-foreground-subtle",
34079
+ children: "Timeline scrub-preview resolution + quality. Higher = crisper previews but larger sprite sheets. Applies to NEW recordings only — existing preview sheets keep their original resolution."
34026
34080
  }),
34027
34081
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("div", {
34028
34082
  className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle",
@@ -38913,7 +38967,7 @@ function computeClientHints(container) {
38913
38967
  var RECONNECT_BASE_DELAY_MS = 1500;
38914
38968
  var RECONNECT_MAX_DELAY_MS = 15e3;
38915
38969
  var MAX_RECONNECT_ATTEMPTS = 40;
38916
- function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, muted: initialMuted = true, showControls = true, showStats = false, onPlaybackStats, onClientNetworkSample, className = "", onStateChange, onError, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel }) {
38970
+ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, muted: initialMuted = true, showControls = true, showStats = false, onPlaybackStats, onClientNetworkSample, onConnectTiming, className = "", onStateChange, onError, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel }) {
38917
38971
  const videoRef = useRef(null);
38918
38972
  const containerRef = useRef(null);
38919
38973
  const pcRef = useRef(null);
@@ -39287,6 +39341,16 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
39287
39341
  streamKey,
39288
39342
  ...timing
39289
39343
  });
39344
+ onConnectTiming?.({ ...timing });
39345
+ const v = videoRef.current;
39346
+ if (v && "requestVideoFrameCallback" in v) v.requestVideoFrameCallback(() => {
39347
+ timing.firstFrameMs = ms();
39348
+ console.info("[WebRTC timing] first decoded frame", {
39349
+ streamKey,
39350
+ firstFrameMs: timing.firstFrameMs
39351
+ });
39352
+ onConnectTiming?.({ ...timing });
39353
+ });
39290
39354
  }
39291
39355
  reconnectAttemptsRef.current = 0;
39292
39356
  if (seamless) swapInOnce();
@@ -45558,4 +45622,4 @@ var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-NcxxQN8r.js")
45558
45622
  /** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
45559
45623
  var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-APgPLF7p.js").then((m) => ({ default: m.PrivacyMaskSettings })));
45560
45624
  //#endregion
45561
- export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EmptyState, ErrorBox, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, GroupedModelSelector, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, ensureMfHostInit, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolvePrimaryChild, resolveSensorDisplay, scrubReducer, serializeRecordedCommand, shouldCommit, shouldEmit, sortRows, statusIcons, stripParentNamePrefix, Trash2 as t, tankAlert, themeToCss, trpc, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdateFrameworkPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDeviceLinks, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsWipeAllAnalytics, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
45625
+ export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EmptyState, ErrorBox, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, GroupedModelSelector, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, ensureMfHostInit, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolvePrimaryChild, resolveSensorDisplay, scrubReducer, serializeRecordedCommand, shouldCommit, shouldEmit, sortRows, statusIcons, stripParentNamePrefix, Trash2 as t, tankAlert, themeToCss, trpc, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdateFrameworkPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetLinkedDevices, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDeviceLinks, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsWipeAllAnalytics, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/ui-library",
3
- "version": "1.1.37",
3
+ "version": "1.1.39",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",