@camstack/ui-library 1.1.16 → 1.1.17
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.
- package/dist/composites/cap-settings/CoverageTrack.d.ts +12 -1
- package/dist/contexts/recorded-playback.d.ts +23 -0
- package/dist/index.cjs +514 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.js +502 -9
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/recorded-control-protocol.d.ts +54 -0
- package/dist/lib/scrub-controller.d.ts +115 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ThemeProvider, createTheme, darkColors, defaultTheme, lightColors, themeToCss, useThemeMode } from "./theme/index.js";
|
|
2
2
|
import * as __mfHostReact from "react";
|
|
3
|
-
import React, { Fragment, Suspense, createContext, createElement, forwardRef, lazy, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
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
6
|
import * as __mfHostReactDOM from "react-dom";
|
|
@@ -7686,6 +7686,240 @@ function ensureMfHostInit() {
|
|
|
7686
7686
|
});
|
|
7687
7687
|
}
|
|
7688
7688
|
//#endregion
|
|
7689
|
+
//#region src/lib/recorded-control-protocol.ts
|
|
7690
|
+
/** Serialize a command for `RTCDataChannel.send` (matches the server schema). */
|
|
7691
|
+
function serializeRecordedCommand(cmd) {
|
|
7692
|
+
return JSON.stringify(cmd);
|
|
7693
|
+
}
|
|
7694
|
+
/**
|
|
7695
|
+
* Playback mode reported by the server session. `live` = the shared live feed
|
|
7696
|
+
* owns the track; every other value describes the recorded feeder.
|
|
7697
|
+
*/
|
|
7698
|
+
var RECORDED_PLAYBACK_MODES = [
|
|
7699
|
+
"live",
|
|
7700
|
+
"loading",
|
|
7701
|
+
"playing",
|
|
7702
|
+
"paused",
|
|
7703
|
+
"gap",
|
|
7704
|
+
"ended",
|
|
7705
|
+
"error"
|
|
7706
|
+
];
|
|
7707
|
+
function isRecordedPlaybackMode(value) {
|
|
7708
|
+
return typeof value === "string" && RECORDED_PLAYBACK_MODES.includes(value);
|
|
7709
|
+
}
|
|
7710
|
+
/**
|
|
7711
|
+
* Parse a raw server→client control frame. Returns `null` on any malformed
|
|
7712
|
+
* payload (bad JSON, unknown discriminator, wrong field types).
|
|
7713
|
+
*/
|
|
7714
|
+
function parseRecordedServerMessage(raw) {
|
|
7715
|
+
let parsed;
|
|
7716
|
+
try {
|
|
7717
|
+
parsed = JSON.parse(raw);
|
|
7718
|
+
} catch {
|
|
7719
|
+
return null;
|
|
7720
|
+
}
|
|
7721
|
+
if (typeof parsed !== "object" || parsed === null) return null;
|
|
7722
|
+
const obj = { ...parsed };
|
|
7723
|
+
if (obj.t === "state" && isRecordedPlaybackMode(obj.state)) return {
|
|
7724
|
+
kind: "state",
|
|
7725
|
+
state: obj.state
|
|
7726
|
+
};
|
|
7727
|
+
if (obj.t === "position" && typeof obj.epochMs === "number") return {
|
|
7728
|
+
kind: "position",
|
|
7729
|
+
epochMs: obj.epochMs
|
|
7730
|
+
};
|
|
7731
|
+
return null;
|
|
7732
|
+
}
|
|
7733
|
+
//#endregion
|
|
7734
|
+
//#region src/lib/scrub-controller.ts
|
|
7735
|
+
/**
|
|
7736
|
+
* scrub-controller — shared scrub-position state for timeline surfaces (R9).
|
|
7737
|
+
*
|
|
7738
|
+
* Ported from the proven srcV2 viewer implementation
|
|
7739
|
+
* (camstack/srcV2/recording/scrub-controller.ts): the same throttle,
|
|
7740
|
+
* commit-dedupe, and live→recorded-bypass semantics, now driving the
|
|
7741
|
+
* admin-ui `RecordingTimeline` through the `camstack-control` datachannel.
|
|
7742
|
+
*
|
|
7743
|
+
* Two layers:
|
|
7744
|
+
* 1. Pure reducer + helpers (unit-tested, no React deps):
|
|
7745
|
+
* scrubReducer, shouldEmit, shouldCommit, cursorFractionFor,
|
|
7746
|
+
* makeScrubBridge
|
|
7747
|
+
* 2. useScrubController hook: thin React glue that bridges the reducer
|
|
7748
|
+
* to a PlaybackControlSink (e.g. the recorded-playback datachannel).
|
|
7749
|
+
*/
|
|
7750
|
+
var initialScrubState = {
|
|
7751
|
+
scrubbing: false,
|
|
7752
|
+
scrubEpoch: null,
|
|
7753
|
+
playheadEpoch: null,
|
|
7754
|
+
lastSource: null
|
|
7755
|
+
};
|
|
7756
|
+
function scrubReducer(state, action) {
|
|
7757
|
+
switch (action.type) {
|
|
7758
|
+
case "begin": return {
|
|
7759
|
+
...state,
|
|
7760
|
+
scrubbing: true,
|
|
7761
|
+
scrubEpoch: null,
|
|
7762
|
+
lastSource: action.source
|
|
7763
|
+
};
|
|
7764
|
+
case "update": return {
|
|
7765
|
+
...state,
|
|
7766
|
+
scrubbing: true,
|
|
7767
|
+
scrubEpoch: action.epoch,
|
|
7768
|
+
lastSource: action.source
|
|
7769
|
+
};
|
|
7770
|
+
case "end": return {
|
|
7771
|
+
...state,
|
|
7772
|
+
scrubbing: false,
|
|
7773
|
+
scrubEpoch: null,
|
|
7774
|
+
playheadEpoch: action.epoch,
|
|
7775
|
+
lastSource: action.source
|
|
7776
|
+
};
|
|
7777
|
+
case "seek": return {
|
|
7778
|
+
...state,
|
|
7779
|
+
scrubbing: false,
|
|
7780
|
+
scrubEpoch: null,
|
|
7781
|
+
playheadEpoch: action.epoch,
|
|
7782
|
+
lastSource: action.source
|
|
7783
|
+
};
|
|
7784
|
+
case "playhead":
|
|
7785
|
+
if (state.scrubbing) return state;
|
|
7786
|
+
return {
|
|
7787
|
+
...state,
|
|
7788
|
+
playheadEpoch: action.epoch
|
|
7789
|
+
};
|
|
7790
|
+
case "reset": return initialScrubState;
|
|
7791
|
+
default: return state;
|
|
7792
|
+
}
|
|
7793
|
+
}
|
|
7794
|
+
/**
|
|
7795
|
+
* Throttle decision for continuous `update` emits (default ~70 ms).
|
|
7796
|
+
* Returns true when enough time has elapsed since the last emit.
|
|
7797
|
+
*/
|
|
7798
|
+
function shouldEmit(lastEmitMs, now, throttleMs = 70) {
|
|
7799
|
+
return now - lastEmitMs >= throttleMs;
|
|
7800
|
+
}
|
|
7801
|
+
/** Epochs within this many ms of the last commit count as the SAME target. */
|
|
7802
|
+
var COMMIT_DEDUPE_TOLERANCE_MS = 750;
|
|
7803
|
+
/** Only dedupe against a commit made within this recent window. */
|
|
7804
|
+
var COMMIT_DEDUPE_WINDOW_MS = 2e3;
|
|
7805
|
+
/**
|
|
7806
|
+
* Decide whether a `seek`/`scrubCommit` should actually hit the playback sink.
|
|
7807
|
+
* Each commit reloads the server feeder (loading→playing) and visibly stutters
|
|
7808
|
+
* playback; firing the same (or a near-identical) target twice in quick
|
|
7809
|
+
* succession produces a redundant reload. Drop a commit only when it targets
|
|
7810
|
+
* essentially the SAME epoch as the last commit AND that commit was recent — a
|
|
7811
|
+
* genuinely different target, or a re-seek to the same spot after the window,
|
|
7812
|
+
* always commits.
|
|
7813
|
+
*/
|
|
7814
|
+
function shouldCommit(last, epoch, now, toleranceMs = 750, windowMs = COMMIT_DEDUPE_WINDOW_MS) {
|
|
7815
|
+
if (last === null) return true;
|
|
7816
|
+
const sameTarget = Math.abs(epoch - last.epoch) <= toleranceMs;
|
|
7817
|
+
const recent = now - last.at <= windowMs;
|
|
7818
|
+
return !(sameTarget && recent);
|
|
7819
|
+
}
|
|
7820
|
+
/**
|
|
7821
|
+
* The active cursor position (scrub target while scrubbing, else playhead)
|
|
7822
|
+
* expressed as a 0..1 fraction across the day window.
|
|
7823
|
+
* Returns null when no position is known or the day window is degenerate.
|
|
7824
|
+
*/
|
|
7825
|
+
function cursorFractionFor(state, day) {
|
|
7826
|
+
const epoch = state.scrubbing ? state.scrubEpoch : state.playheadEpoch;
|
|
7827
|
+
if (epoch === null) return null;
|
|
7828
|
+
const span = day.to - day.from;
|
|
7829
|
+
if (span <= 0) return null;
|
|
7830
|
+
return Math.min(1, Math.max(0, (epoch - day.from) / span));
|
|
7831
|
+
}
|
|
7832
|
+
/**
|
|
7833
|
+
* Builds the always-active bridge callbacks from a sink, a dispatch, and the
|
|
7834
|
+
* throttle ref. Pure (no React) so it can be unit-tested directly: the hook
|
|
7835
|
+
* just wraps the result in `useMemo`.
|
|
7836
|
+
*
|
|
7837
|
+
* Every gesture drives the sink immediately — there is no VOD-active gate.
|
|
7838
|
+
*/
|
|
7839
|
+
function makeScrubBridge(sink, dispatch, lastEmitRef, lastCommitRef = { current: null }, isPlayerLive = () => false) {
|
|
7840
|
+
const commit = (epoch, fire) => {
|
|
7841
|
+
const now = Date.now();
|
|
7842
|
+
if (isPlayerLive()) {
|
|
7843
|
+
lastCommitRef.current = {
|
|
7844
|
+
epoch,
|
|
7845
|
+
at: now
|
|
7846
|
+
};
|
|
7847
|
+
fire(epoch);
|
|
7848
|
+
return;
|
|
7849
|
+
}
|
|
7850
|
+
if (!shouldCommit(lastCommitRef.current, epoch, now)) return;
|
|
7851
|
+
lastCommitRef.current = {
|
|
7852
|
+
epoch,
|
|
7853
|
+
at: now
|
|
7854
|
+
};
|
|
7855
|
+
fire(epoch);
|
|
7856
|
+
};
|
|
7857
|
+
return {
|
|
7858
|
+
beginScrub: (source) => {
|
|
7859
|
+
dispatch({
|
|
7860
|
+
type: "begin",
|
|
7861
|
+
source
|
|
7862
|
+
});
|
|
7863
|
+
sink.scrubStart();
|
|
7864
|
+
},
|
|
7865
|
+
updateScrub: (epoch, source) => {
|
|
7866
|
+
dispatch({
|
|
7867
|
+
type: "update",
|
|
7868
|
+
epoch,
|
|
7869
|
+
source
|
|
7870
|
+
});
|
|
7871
|
+
const now = Date.now();
|
|
7872
|
+
if (!shouldEmit(lastEmitRef.current, now)) return;
|
|
7873
|
+
lastEmitRef.current = now;
|
|
7874
|
+
sink.scrubTo(epoch);
|
|
7875
|
+
},
|
|
7876
|
+
endScrub: (epoch, source) => {
|
|
7877
|
+
dispatch({
|
|
7878
|
+
type: "end",
|
|
7879
|
+
epoch,
|
|
7880
|
+
source
|
|
7881
|
+
});
|
|
7882
|
+
commit(epoch, sink.scrubCommit);
|
|
7883
|
+
},
|
|
7884
|
+
seek: (epoch, source) => {
|
|
7885
|
+
dispatch({
|
|
7886
|
+
type: "seek",
|
|
7887
|
+
epoch,
|
|
7888
|
+
source
|
|
7889
|
+
});
|
|
7890
|
+
commit(epoch, sink.seek);
|
|
7891
|
+
},
|
|
7892
|
+
setPlayhead: (epoch) => dispatch({
|
|
7893
|
+
type: "playhead",
|
|
7894
|
+
epoch
|
|
7895
|
+
}),
|
|
7896
|
+
reset: () => dispatch({ type: "reset" })
|
|
7897
|
+
};
|
|
7898
|
+
}
|
|
7899
|
+
/**
|
|
7900
|
+
* Owns the shared scrub position and bridges it to a playback control sink.
|
|
7901
|
+
*
|
|
7902
|
+
* The bridge is always active: any gesture (drag or tap) drives the sink
|
|
7903
|
+
* immediately. There is no VOD-active gate — the timeline always drives
|
|
7904
|
+
* playback while frame-push mode is on.
|
|
7905
|
+
*
|
|
7906
|
+
* @param sink Always-active playback control surface (e.g. the datachannel)
|
|
7907
|
+
* @param isPlayerLive Synchronous getter for "is the player on the live
|
|
7908
|
+
* edge?" — lets a live→recorded commit bypass dedupe so the seek always
|
|
7909
|
+
* reaches the server.
|
|
7910
|
+
*/
|
|
7911
|
+
function useScrubController(sink, isPlayerLive = () => false) {
|
|
7912
|
+
const [state, dispatch] = useReducer(scrubReducer, initialScrubState);
|
|
7913
|
+
const lastEmitRef = useRef(0);
|
|
7914
|
+
const lastCommitRef = useRef(null);
|
|
7915
|
+
const isPlayerLiveRef = useRef(isPlayerLive);
|
|
7916
|
+
isPlayerLiveRef.current = isPlayerLive;
|
|
7917
|
+
return {
|
|
7918
|
+
state,
|
|
7919
|
+
...useMemo(() => makeScrubBridge(sink, dispatch, lastEmitRef, lastCommitRef, () => isPlayerLiveRef.current()), [sink])
|
|
7920
|
+
};
|
|
7921
|
+
}
|
|
7922
|
+
//#endregion
|
|
7689
7923
|
//#region node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
7690
7924
|
/**
|
|
7691
7925
|
* @license lucide-react v0.576.0 - ISC
|
|
@@ -32524,6 +32758,100 @@ function useVodPlayback() {
|
|
|
32524
32758
|
return useContext(VodPlaybackContext);
|
|
32525
32759
|
}
|
|
32526
32760
|
//#endregion
|
|
32761
|
+
//#region src/contexts/recorded-playback.tsx
|
|
32762
|
+
/**
|
|
32763
|
+
* RecordedPlayback — shared context wiring the hero player's
|
|
32764
|
+
* `camstack-control` RTCDataChannel to the Recording timeline (R9).
|
|
32765
|
+
*
|
|
32766
|
+
* The hero `StreamPanel` (host side) BINDS the channel that
|
|
32767
|
+
* `CameraStreamPlayer` opens on the live WebRTC session; the Recording
|
|
32768
|
+
* widget's `RecordingTimeline` (controller side) SENDS frame-push playback
|
|
32769
|
+
* commands over it (seek / scrubCommit / setRate / goLive — the broker's
|
|
32770
|
+
* `TimelineSession` drives the `RecordedFeeder` on the SAME session, so
|
|
32771
|
+
* recorded frames arrive on the same `<video>` element) and OBSERVES the
|
|
32772
|
+
* server's playback state + ~1 Hz position reports.
|
|
32773
|
+
*
|
|
32774
|
+
* This is the admin-ui port of the shipped viewer's default recorded path
|
|
32775
|
+
* (srcV2 → embed → `camstack-control`), replacing "manifest-window HLS only".
|
|
32776
|
+
* The HLS VOD path (VodPlayback context) remains available as a fallback.
|
|
32777
|
+
*
|
|
32778
|
+
* Built on `createSharedContext` (NOT a plain `createContext`) so it crosses
|
|
32779
|
+
* the Module-Federation boundary — same mechanism as `vod-playback`.
|
|
32780
|
+
* Consumers outside a provider get the inert default: `bindControlChannel`
|
|
32781
|
+
* is null (StreamPanel then opens NO datachannel — plain live player) and
|
|
32782
|
+
* `channelOpen` is false (RecordingTimeline stays on the HLS path).
|
|
32783
|
+
*/
|
|
32784
|
+
var RecordedPlaybackContext = createSharedContext("camstack:recorded-playback", {
|
|
32785
|
+
bindControlChannel: null,
|
|
32786
|
+
channelOpen: false,
|
|
32787
|
+
mode: "live",
|
|
32788
|
+
positionMs: null,
|
|
32789
|
+
send: () => false
|
|
32790
|
+
});
|
|
32791
|
+
function RecordedPlaybackProvider({ children }) {
|
|
32792
|
+
const channelRef = useRef(null);
|
|
32793
|
+
const [channelOpen, setChannelOpen] = useState(false);
|
|
32794
|
+
const [mode, setMode] = useState("live");
|
|
32795
|
+
const [positionMs, setPositionMs] = useState(null);
|
|
32796
|
+
const bindControlChannel = useCallback((channel) => {
|
|
32797
|
+
channelRef.current = channel;
|
|
32798
|
+
const markClosed = () => {
|
|
32799
|
+
if (channelRef.current !== channel) return;
|
|
32800
|
+
channelRef.current = null;
|
|
32801
|
+
setChannelOpen(false);
|
|
32802
|
+
setMode("live");
|
|
32803
|
+
setPositionMs(null);
|
|
32804
|
+
};
|
|
32805
|
+
channel.onopen = () => {
|
|
32806
|
+
if (channelRef.current === channel) setChannelOpen(true);
|
|
32807
|
+
};
|
|
32808
|
+
channel.onclose = markClosed;
|
|
32809
|
+
channel.onerror = markClosed;
|
|
32810
|
+
channel.onmessage = (e) => {
|
|
32811
|
+
if (channelRef.current !== channel) return;
|
|
32812
|
+
const data = e.data;
|
|
32813
|
+
if (typeof data !== "string") return;
|
|
32814
|
+
const msg = parseRecordedServerMessage(data);
|
|
32815
|
+
if (!msg) return;
|
|
32816
|
+
if (msg.kind === "position") setPositionMs(msg.epochMs);
|
|
32817
|
+
else {
|
|
32818
|
+
setMode(msg.state);
|
|
32819
|
+
if (msg.state === "live") setPositionMs(null);
|
|
32820
|
+
}
|
|
32821
|
+
};
|
|
32822
|
+
if (channel.readyState === "open") setChannelOpen(true);
|
|
32823
|
+
else if (channel.readyState === "closed" || channel.readyState === "closing") markClosed();
|
|
32824
|
+
else setChannelOpen(false);
|
|
32825
|
+
}, []);
|
|
32826
|
+
const send = useCallback((cmd) => {
|
|
32827
|
+
const channel = channelRef.current;
|
|
32828
|
+
if (!channel || channel.readyState !== "open") return false;
|
|
32829
|
+
channel.send(serializeRecordedCommand(cmd));
|
|
32830
|
+
return true;
|
|
32831
|
+
}, []);
|
|
32832
|
+
const value = useMemo(() => ({
|
|
32833
|
+
bindControlChannel,
|
|
32834
|
+
channelOpen,
|
|
32835
|
+
mode,
|
|
32836
|
+
positionMs,
|
|
32837
|
+
send
|
|
32838
|
+
}), [
|
|
32839
|
+
bindControlChannel,
|
|
32840
|
+
channelOpen,
|
|
32841
|
+
mode,
|
|
32842
|
+
positionMs,
|
|
32843
|
+
send
|
|
32844
|
+
]);
|
|
32845
|
+
return /* @__PURE__ */ jsx(RecordedPlaybackContext.Provider, {
|
|
32846
|
+
value,
|
|
32847
|
+
children
|
|
32848
|
+
});
|
|
32849
|
+
}
|
|
32850
|
+
/** @returns the recorded-playback control surface (inert outside a provider). */
|
|
32851
|
+
function useRecordedPlayback() {
|
|
32852
|
+
return useContext(RecordedPlaybackContext);
|
|
32853
|
+
}
|
|
32854
|
+
//#endregion
|
|
32527
32855
|
//#region src/composites/cap-settings/recording-spans.ts
|
|
32528
32856
|
/**
|
|
32529
32857
|
* Merge availability ranges (across every profile) into the union of distinct
|
|
@@ -32769,8 +33097,12 @@ function axisTicks(fromMs, toMs, count) {
|
|
|
32769
33097
|
}
|
|
32770
33098
|
//#endregion
|
|
32771
33099
|
//#region src/composites/cap-settings/CoverageTrack.tsx
|
|
32772
|
-
function CoverageTrack({ windowFrom, windowTo, spans, playheadMs, onSeek }) {
|
|
33100
|
+
function CoverageTrack({ windowFrom, windowTo, spans, playheadMs, onSeek, onScrubStart, onScrubMove, onScrubEnd }) {
|
|
32773
33101
|
const [hoverInfo, setHoverInfo] = useState(null);
|
|
33102
|
+
const scrubEnabled = Boolean(onScrubEnd);
|
|
33103
|
+
const [dragging, setDragging] = useState(false);
|
|
33104
|
+
/** Last epoch reported during the drag — commit target on cancel/release. */
|
|
33105
|
+
const lastDragMsRef = useRef(null);
|
|
32774
33106
|
const msFromEvent = (e) => {
|
|
32775
33107
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
32776
33108
|
if (rect.width <= 0) return null;
|
|
@@ -32778,10 +33110,43 @@ function CoverageTrack({ windowFrom, windowTo, spans, playheadMs, onSeek }) {
|
|
|
32778
33110
|
return windowFrom + Math.min(1, Math.max(0, ratio)) * (windowTo - windowFrom);
|
|
32779
33111
|
};
|
|
32780
33112
|
const handleClick = (e) => {
|
|
33113
|
+
if (scrubEnabled) return;
|
|
32781
33114
|
const ms = msFromEvent(e);
|
|
32782
33115
|
if (ms === null) return;
|
|
32783
33116
|
onSeek(ms);
|
|
32784
33117
|
};
|
|
33118
|
+
const handlePointerDown = (e) => {
|
|
33119
|
+
if (!scrubEnabled) return;
|
|
33120
|
+
e.currentTarget.setPointerCapture(e.pointerId);
|
|
33121
|
+
setDragging(true);
|
|
33122
|
+
onScrubStart?.();
|
|
33123
|
+
const ms = msFromEvent(e);
|
|
33124
|
+
if (ms !== null) {
|
|
33125
|
+
lastDragMsRef.current = ms;
|
|
33126
|
+
onScrubMove?.(ms);
|
|
33127
|
+
}
|
|
33128
|
+
};
|
|
33129
|
+
const handlePointerMove = (e) => {
|
|
33130
|
+
if (!scrubEnabled || !dragging) return;
|
|
33131
|
+
const ms = msFromEvent(e);
|
|
33132
|
+
if (ms === null) return;
|
|
33133
|
+
lastDragMsRef.current = ms;
|
|
33134
|
+
onScrubMove?.(ms);
|
|
33135
|
+
};
|
|
33136
|
+
const handlePointerUp = (e) => {
|
|
33137
|
+
if (!scrubEnabled || !dragging) return;
|
|
33138
|
+
setDragging(false);
|
|
33139
|
+
const ms = msFromEvent(e) ?? lastDragMsRef.current;
|
|
33140
|
+
lastDragMsRef.current = null;
|
|
33141
|
+
if (ms !== null) onScrubEnd?.(ms);
|
|
33142
|
+
};
|
|
33143
|
+
const handlePointerCancel = () => {
|
|
33144
|
+
if (!dragging) return;
|
|
33145
|
+
setDragging(false);
|
|
33146
|
+
const ms = lastDragMsRef.current;
|
|
33147
|
+
lastDragMsRef.current = null;
|
|
33148
|
+
if (ms !== null) onScrubEnd?.(ms);
|
|
33149
|
+
};
|
|
32785
33150
|
const handleMouseMove = (e) => {
|
|
32786
33151
|
const ms = msFromEvent(e);
|
|
32787
33152
|
if (ms === null) return;
|
|
@@ -32805,10 +33170,15 @@ function CoverageTrack({ windowFrom, windowTo, spans, playheadMs, onSeek }) {
|
|
|
32805
33170
|
className: "relative",
|
|
32806
33171
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
32807
33172
|
"data-testid": "coverage-track",
|
|
33173
|
+
"data-scrubbing": dragging ? "true" : "false",
|
|
32808
33174
|
onClick: handleClick,
|
|
33175
|
+
onPointerDown: handlePointerDown,
|
|
33176
|
+
onPointerMove: handlePointerMove,
|
|
33177
|
+
onPointerUp: handlePointerUp,
|
|
33178
|
+
onPointerCancel: handlePointerCancel,
|
|
32809
33179
|
onMouseMove: handleMouseMove,
|
|
32810
33180
|
onMouseLeave: handleMouseLeave,
|
|
32811
|
-
className:
|
|
33181
|
+
className: `relative h-5 overflow-hidden rounded bg-background/40 ${scrubEnabled ? "cursor-ew-resize touch-none select-none" : "cursor-pointer"}`,
|
|
32812
33182
|
role: "group",
|
|
32813
33183
|
"aria-label": "Recorded coverage timeline",
|
|
32814
33184
|
children: [spans.map((s) => {
|
|
@@ -33107,6 +33477,15 @@ var PAN_MS_PER_PX = 18e3 / 100;
|
|
|
33107
33477
|
var EVENT_PRE_MS = 5e3;
|
|
33108
33478
|
var EVENT_POST_MS = 1e4;
|
|
33109
33479
|
var EMPTY_RANGES = [];
|
|
33480
|
+
var MODE_LABELS = {
|
|
33481
|
+
live: "Live",
|
|
33482
|
+
loading: "Loading…",
|
|
33483
|
+
playing: "Playing",
|
|
33484
|
+
paused: "Paused",
|
|
33485
|
+
gap: "No footage",
|
|
33486
|
+
ended: "Ended",
|
|
33487
|
+
error: "Error"
|
|
33488
|
+
};
|
|
33110
33489
|
function RecordingTimeline({ deviceId }) {
|
|
33111
33490
|
const system = useSystem();
|
|
33112
33491
|
const vod = useVodPlayback();
|
|
@@ -33114,6 +33493,51 @@ function RecordingTimeline({ deviceId }) {
|
|
|
33114
33493
|
const [playheadMs, setPlayheadMs] = useState(null);
|
|
33115
33494
|
const [busyKey, setBusyKey] = useState(null);
|
|
33116
33495
|
const [playbackError, setPlaybackError] = useState(null);
|
|
33496
|
+
const recorded = useRecordedPlayback();
|
|
33497
|
+
const { send: sendControl, mode: recordedMode, positionMs: recordedPositionMs } = recorded;
|
|
33498
|
+
const [forceHls, setForceHls] = useState(false);
|
|
33499
|
+
const framePush = recorded.channelOpen && !forceHls;
|
|
33500
|
+
const framePushRef = useRef(framePush);
|
|
33501
|
+
framePushRef.current = framePush;
|
|
33502
|
+
const sink = useMemo(() => ({
|
|
33503
|
+
scrubStart: () => {},
|
|
33504
|
+
scrubTo: () => {},
|
|
33505
|
+
scrubCommit: (epochMs) => {
|
|
33506
|
+
sendControl({
|
|
33507
|
+
t: "scrubCommit",
|
|
33508
|
+
epoch: epochMs
|
|
33509
|
+
});
|
|
33510
|
+
},
|
|
33511
|
+
seek: (epochMs) => {
|
|
33512
|
+
sendControl({
|
|
33513
|
+
t: "seek",
|
|
33514
|
+
epoch: epochMs
|
|
33515
|
+
});
|
|
33516
|
+
}
|
|
33517
|
+
}), [sendControl]);
|
|
33518
|
+
const recordedModeRef = useRef(recordedMode);
|
|
33519
|
+
recordedModeRef.current = recordedMode;
|
|
33520
|
+
const { state: scrubState, beginScrub, updateScrub, endScrub, seek: scrubSeek, setPlayhead, reset: resetScrub } = useScrubController(sink, useCallback(() => recordedModeRef.current === "live", []));
|
|
33521
|
+
useEffect(() => {
|
|
33522
|
+
if (recordedPositionMs !== null) setPlayhead(recordedPositionMs);
|
|
33523
|
+
}, [recordedPositionMs, setPlayhead]);
|
|
33524
|
+
useEffect(() => {
|
|
33525
|
+
if (!recorded.channelOpen || recordedMode === "live") resetScrub();
|
|
33526
|
+
}, [
|
|
33527
|
+
recorded.channelOpen,
|
|
33528
|
+
recordedMode,
|
|
33529
|
+
resetScrub
|
|
33530
|
+
]);
|
|
33531
|
+
const handleGoLive = useCallback(() => {
|
|
33532
|
+
sendControl({ t: "goLive" });
|
|
33533
|
+
resetScrub();
|
|
33534
|
+
}, [sendControl, resetScrub]);
|
|
33535
|
+
const handleRateToggle = useCallback(() => {
|
|
33536
|
+
sendControl({
|
|
33537
|
+
t: "setRate",
|
|
33538
|
+
rate: recordedModeRef.current === "paused" ? 1 : 0
|
|
33539
|
+
});
|
|
33540
|
+
}, [sendControl]);
|
|
33117
33541
|
const [enabledKinds, setEnabledKinds] = useState(() => new Set(ALL_KINDS));
|
|
33118
33542
|
const toggleKind = useCallback((kind) => {
|
|
33119
33543
|
setEnabledKinds((current) => {
|
|
@@ -33267,6 +33691,10 @@ function RecordingTimeline({ deviceId }) {
|
|
|
33267
33691
|
const handleSeek = useCallback((clickMs) => {
|
|
33268
33692
|
const target = seekTargetForSpans(clickMs, spans);
|
|
33269
33693
|
if (!target) return;
|
|
33694
|
+
if (framePushRef.current) {
|
|
33695
|
+
scrubSeek(target.fromMs, "timeline");
|
|
33696
|
+
return;
|
|
33697
|
+
}
|
|
33270
33698
|
const label = `Recording · ${new Date(target.fromMs).toLocaleString(void 0, {
|
|
33271
33699
|
month: "short",
|
|
33272
33700
|
day: "numeric",
|
|
@@ -33274,14 +33702,31 @@ function RecordingTimeline({ deviceId }) {
|
|
|
33274
33702
|
minute: "2-digit"
|
|
33275
33703
|
})}`;
|
|
33276
33704
|
playWindow(`seek:${target.fromMs}`, target.fromMs, target.toMs, label, target.fromMs);
|
|
33277
|
-
}, [
|
|
33705
|
+
}, [
|
|
33706
|
+
spans,
|
|
33707
|
+
playWindow,
|
|
33708
|
+
scrubSeek
|
|
33709
|
+
]);
|
|
33710
|
+
const handleScrubStart = useCallback(() => {
|
|
33711
|
+
beginScrub("timeline");
|
|
33712
|
+
}, [beginScrub]);
|
|
33713
|
+
const handleScrubMove = useCallback((ms) => {
|
|
33714
|
+
updateScrub(ms, "timeline");
|
|
33715
|
+
}, [updateScrub]);
|
|
33716
|
+
const handleScrubEnd = useCallback((ms) => {
|
|
33717
|
+
endScrub(seekTargetForSpans(ms, spans)?.fromMs ?? ms, "timeline");
|
|
33718
|
+
}, [spans, endScrub]);
|
|
33278
33719
|
const handlePlayClip = useCallback((clip) => {
|
|
33720
|
+
if (framePushRef.current) {
|
|
33721
|
+
scrubSeek(clip.timestamp - EVENT_PRE_MS, "timeline");
|
|
33722
|
+
return;
|
|
33723
|
+
}
|
|
33279
33724
|
const label = `${clip.label} · ${new Date(clip.timestamp).toLocaleTimeString(void 0, {
|
|
33280
33725
|
hour: "2-digit",
|
|
33281
33726
|
minute: "2-digit"
|
|
33282
33727
|
})}`;
|
|
33283
33728
|
playWindow(`event:${clip.id}`, clip.timestamp - EVENT_PRE_MS, clip.timestamp + EVENT_POST_MS, label, clip.timestamp);
|
|
33284
|
-
}, [playWindow]);
|
|
33729
|
+
}, [playWindow, scrubSeek]);
|
|
33285
33730
|
const handleSelectBucket = useCallback((index) => {
|
|
33286
33731
|
setSelectedBucket((cur) => cur === index ? null : index);
|
|
33287
33732
|
}, []);
|
|
@@ -33289,6 +33734,8 @@ function RecordingTimeline({ deviceId }) {
|
|
|
33289
33734
|
const densityLoading = eventDensityQuery.isLoading;
|
|
33290
33735
|
const drillLoading = (objectDrill.isLoading || motionDrill.isLoading || audioDrill.isLoading) && drillEnabled;
|
|
33291
33736
|
const ticks = useMemo(() => axisTicks(view.fromMs, view.toMs, 5), [view.fromMs, view.toMs]);
|
|
33737
|
+
const displayPlayheadMs = framePush ? scrubState.scrubbing ? scrubState.scrubEpoch : scrubState.playheadEpoch : playheadMs;
|
|
33738
|
+
const showRateToggle = framePush && (recordedMode === "playing" || recordedMode === "paused");
|
|
33292
33739
|
return /* @__PURE__ */ jsxs("div", {
|
|
33293
33740
|
className: "space-y-3",
|
|
33294
33741
|
children: [
|
|
@@ -33307,6 +33754,45 @@ function RecordingTimeline({ deviceId }) {
|
|
|
33307
33754
|
dayBounds: computedDayBounds,
|
|
33308
33755
|
onViewChange: handleViewChange
|
|
33309
33756
|
}),
|
|
33757
|
+
recorded.channelOpen ? /* @__PURE__ */ jsxs("div", {
|
|
33758
|
+
"data-testid": "frame-push-status-row",
|
|
33759
|
+
className: "flex flex-wrap items-center gap-2 text-[10px]",
|
|
33760
|
+
children: [
|
|
33761
|
+
/* @__PURE__ */ jsx("span", {
|
|
33762
|
+
"data-testid": "frame-push-mode-chip",
|
|
33763
|
+
className: `inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-semibold uppercase tracking-wider ${framePush && recordedMode !== "live" ? recordedMode === "error" ? "bg-rose-500/15 text-rose-400" : "bg-primary/15 text-primary" : "bg-background/40 text-foreground-subtle"}`,
|
|
33764
|
+
children: framePush ? MODE_LABELS[recordedMode] : "HLS mode"
|
|
33765
|
+
}),
|
|
33766
|
+
framePush && recordedPositionMs !== null && !scrubState.scrubbing ? /* @__PURE__ */ jsx("span", {
|
|
33767
|
+
className: "tabular-nums text-foreground-subtle",
|
|
33768
|
+
children: new Date(recordedPositionMs).toLocaleTimeString()
|
|
33769
|
+
}) : null,
|
|
33770
|
+
showRateToggle ? /* @__PURE__ */ jsxs("button", {
|
|
33771
|
+
type: "button",
|
|
33772
|
+
"data-testid": "frame-push-rate-toggle",
|
|
33773
|
+
onClick: handleRateToggle,
|
|
33774
|
+
className: "inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-medium text-foreground-subtle transition-colors hover:bg-surface-hover hover:text-foreground",
|
|
33775
|
+
title: recordedMode === "paused" ? "Resume playback" : "Pause playback",
|
|
33776
|
+
children: [recordedMode === "paused" ? /* @__PURE__ */ jsx(Play, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx(Pause, { className: "h-3 w-3" }), recordedMode === "paused" ? "Resume" : "Pause"]
|
|
33777
|
+
}) : null,
|
|
33778
|
+
framePush && recordedMode !== "live" ? /* @__PURE__ */ jsxs("button", {
|
|
33779
|
+
type: "button",
|
|
33780
|
+
"data-testid": "frame-push-go-live",
|
|
33781
|
+
onClick: handleGoLive,
|
|
33782
|
+
className: "inline-flex items-center gap-1 rounded bg-danger/10 px-1.5 py-0.5 font-medium text-danger transition-colors hover:bg-danger/20",
|
|
33783
|
+
title: "Return to the live stream",
|
|
33784
|
+
children: [/* @__PURE__ */ jsx(Radio, { className: "h-3 w-3" }), "Go live"]
|
|
33785
|
+
}) : null,
|
|
33786
|
+
/* @__PURE__ */ jsx("button", {
|
|
33787
|
+
type: "button",
|
|
33788
|
+
"data-testid": "frame-push-hls-toggle",
|
|
33789
|
+
onClick: () => setForceHls((v) => !v),
|
|
33790
|
+
className: `ml-auto inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-medium transition-colors ${forceHls ? "bg-primary/15 text-primary" : "text-foreground-subtle hover:bg-surface-hover hover:text-foreground"}`,
|
|
33791
|
+
title: "Play recordings through the HLS player instead of the live WebRTC session",
|
|
33792
|
+
children: "HLS"
|
|
33793
|
+
})
|
|
33794
|
+
]
|
|
33795
|
+
}) : null,
|
|
33310
33796
|
/* @__PURE__ */ jsxs("div", {
|
|
33311
33797
|
ref: trackAreaRef,
|
|
33312
33798
|
onWheel: handleWheel,
|
|
@@ -33324,8 +33810,13 @@ function RecordingTimeline({ deviceId }) {
|
|
|
33324
33810
|
windowFrom: view.fromMs,
|
|
33325
33811
|
windowTo: view.toMs,
|
|
33326
33812
|
spans,
|
|
33327
|
-
playheadMs,
|
|
33328
|
-
onSeek: handleSeek
|
|
33813
|
+
playheadMs: displayPlayheadMs,
|
|
33814
|
+
onSeek: handleSeek,
|
|
33815
|
+
...framePush ? {
|
|
33816
|
+
onScrubStart: handleScrubStart,
|
|
33817
|
+
onScrubMove: handleScrubMove,
|
|
33818
|
+
onScrubEnd: handleScrubEnd
|
|
33819
|
+
} : {}
|
|
33329
33820
|
})]
|
|
33330
33821
|
}),
|
|
33331
33822
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -33362,7 +33853,7 @@ function RecordingTimeline({ deviceId }) {
|
|
|
33362
33853
|
onLoadMore: handleLoadMore
|
|
33363
33854
|
}) : /* @__PURE__ */ jsx("p", {
|
|
33364
33855
|
className: "text-[11px] text-foreground-subtle",
|
|
33365
|
-
children: "Click the coverage bar to play from any point, or a density bar to browse that window
|
|
33856
|
+
children: framePush ? "Click or drag the coverage bar to play from any point (frames play in the main player above), or click a density bar to browse that window’s events." : "Click the coverage bar to play from any point, or a density bar to browse that window’s events."
|
|
33366
33857
|
})
|
|
33367
33858
|
]
|
|
33368
33859
|
});
|
|
@@ -38650,6 +39141,7 @@ function ImageOffIcon({ className }) {
|
|
|
38650
39141
|
}
|
|
38651
39142
|
function StreamPanel({ serverUrl, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, playbackUrl, playbackAuthToken, onExitPlayback, posterUrl, streams, activeStreamId: controlledStreamId, onStreamChange, deviceName, phase, pipelineMetrics, detections, defaultShowDetections = true, defaultShowMotion = false, streamStats, autoPlay = false, showPlayStop = false, snapshotSrc, snapshotLoading = false, onRefreshSnapshot, showStreamStats = false, children, extraOverlay, ptzAvailable = false, ptzShown = false, ptzOverlay, onPtzToggle, intercomAvailable = false, intercomShown = false, onIntercomToggle, chromeless = false, className }) {
|
|
38652
39143
|
const registeredButtons = usePlayerToolbarButtons();
|
|
39144
|
+
const recordedPlayback = useRecordedPlayback();
|
|
38653
39145
|
const [isPlaying, setIsPlaying] = useState(autoPlay);
|
|
38654
39146
|
const [showDetections, setShowDetections] = useState(defaultShowDetections);
|
|
38655
39147
|
const [showMotion, setShowMotion] = useState(defaultShowMotion);
|
|
@@ -38955,6 +39447,7 @@ function StreamPanel({ serverUrl, createSession, sendAnswer, handleOffer, getIce
|
|
|
38955
39447
|
addIceCandidate,
|
|
38956
39448
|
getIceCandidates,
|
|
38957
39449
|
closeSession,
|
|
39450
|
+
...recordedPlayback.bindControlChannel ? { onControlChannel: recordedPlayback.bindControlChannel } : {},
|
|
38958
39451
|
...posterUrl ? { posterUrl } : {},
|
|
38959
39452
|
overlay: anyOverlay || extraOverlay || ptzOverlayVisible ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
38960
39453
|
anyOverlay && /* @__PURE__ */ jsx(DetectionOverlay, {
|
|
@@ -43569,4 +44062,4 @@ var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-NcxxQN8r.js")
|
|
|
43569
44062
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
43570
44063
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-APgPLF7p.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
43571
44064
|
//#endregion
|
|
43572
|
-
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, 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, 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, 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, RIGHT, ROLE_DESCRIPTOR, RadialGauge, 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, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, darkColors, defaultTheme, deriveDeviceKind, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, ensureMfHostInit, findTimezone, formatControlDateTime, formatLastSeen, fuzzyMatch, getClassColor, getPhaseVisual, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextSort, normalizeForSearch, overrideEntityIdFromLink, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolvePrimaryChild, sortRows, statusIcons, 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, 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, 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, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, 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, 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, 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, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDetect, 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, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignDecoder, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDecoderAssignment, usePipelineOrchestratorGetDecoderAssignments, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignDecoder, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerReportMotion, usePlateGalleryCorrectPlateText, usePlateGalleryDeletePlate, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, 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, useRecordingApplyDeviceSettingsPatch, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetStatus, useSnapshotInvalidateCache, useSnapshotProviderGetSnapshot, useSnapshotProviderSupportsDevice, 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 };
|
|
44065
|
+
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, 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, 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, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, ensureMfHostInit, findTimezone, formatControlDateTime, formatLastSeen, 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, resolvePrimaryChild, scrubReducer, serializeRecordedCommand, shouldCommit, shouldEmit, sortRows, statusIcons, 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, 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, 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, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, 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, 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, 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, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDetect, 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, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignDecoder, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDecoderAssignment, usePipelineOrchestratorGetDecoderAssignments, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignDecoder, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerReportMotion, usePlateGalleryCorrectPlateText, usePlateGalleryDeletePlate, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, 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, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetStatus, useSnapshotInvalidateCache, useSnapshotProviderGetSnapshot, useSnapshotProviderSupportsDevice, 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 };
|