@camstack/ui-library 1.1.18 → 1.1.20

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/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, RecordingConfigSchema, RecordingStatusSchema, SourceInfoSchema, TIMEZONES, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, findTimezone, tryConvertUnit } from "@camstack/types";
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, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, findTimezone, 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";
@@ -8468,6 +8468,16 @@ var Blinds = createLucideIcon("blinds", [
8468
8468
  * This source code is licensed under the ISC license.
8469
8469
  * See the LICENSE file in the root directory of this source tree.
8470
8470
  */
8471
+ var Bone = createLucideIcon("bone", [["path", {
8472
+ d: "M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z",
8473
+ key: "w610uw"
8474
+ }]]);
8475
+ /**
8476
+ * @license lucide-react v0.576.0 - ISC
8477
+ *
8478
+ * This source code is licensed under the ISC license.
8479
+ * See the LICENSE file in the root directory of this source tree.
8480
+ */
8471
8481
  var Bot = createLucideIcon("bot", [
8472
8482
  ["path", {
8473
8483
  d: "M12 8V4H8",
@@ -10435,6 +10445,36 @@ var Pause = createLucideIcon("pause", [["rect", {
10435
10445
  * This source code is licensed under the ISC license.
10436
10446
  * See the LICENSE file in the root directory of this source tree.
10437
10447
  */
10448
+ var PawPrint = createLucideIcon("paw-print", [
10449
+ ["circle", {
10450
+ cx: "11",
10451
+ cy: "4",
10452
+ r: "2",
10453
+ key: "vol9p0"
10454
+ }],
10455
+ ["circle", {
10456
+ cx: "18",
10457
+ cy: "8",
10458
+ r: "2",
10459
+ key: "17gozi"
10460
+ }],
10461
+ ["circle", {
10462
+ cx: "20",
10463
+ cy: "16",
10464
+ r: "2",
10465
+ key: "1v9bxh"
10466
+ }],
10467
+ ["path", {
10468
+ d: "M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z",
10469
+ key: "1ydw1z"
10470
+ }]
10471
+ ]);
10472
+ /**
10473
+ * @license lucide-react v0.576.0 - ISC
10474
+ *
10475
+ * This source code is licensed under the ISC license.
10476
+ * See the LICENSE file in the root directory of this source tree.
10477
+ */
10438
10478
  var Pencil = createLucideIcon("pencil", [["path", {
10439
10479
  d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
10440
10480
  key: "1a8usu"
@@ -11634,6 +11674,30 @@ var Upload = createLucideIcon("upload", [
11634
11674
  * This source code is licensed under the ISC license.
11635
11675
  * See the LICENSE file in the root directory of this source tree.
11636
11676
  */
11677
+ var UtensilsCrossed = createLucideIcon("utensils-crossed", [
11678
+ ["path", {
11679
+ d: "m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8",
11680
+ key: "n7qcjb"
11681
+ }],
11682
+ ["path", {
11683
+ d: "M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7",
11684
+ key: "d0u48b"
11685
+ }],
11686
+ ["path", {
11687
+ d: "m2.1 21.8 6.4-6.3",
11688
+ key: "yn04lh"
11689
+ }],
11690
+ ["path", {
11691
+ d: "m19 5-7 7",
11692
+ key: "194lzd"
11693
+ }]
11694
+ ]);
11695
+ /**
11696
+ * @license lucide-react v0.576.0 - ISC
11697
+ *
11698
+ * This source code is licensed under the ISC license.
11699
+ * See the LICENSE file in the root directory of this source tree.
11700
+ */
11637
11701
  var Vibrate = createLucideIcon("vibrate", [
11638
11702
  ["path", {
11639
11703
  d: "m2 8 2 2-2 2 2 2-2 2",
@@ -17415,6 +17479,28 @@ var useNumericSensorGetStatus = trpc.numericSensor.getStatus.useQuery;
17415
17479
  var useOsdSetOverlay = trpc.osd.setOverlay.useMutation;
17416
17480
  /** Generated alias around `trpc.osd.getStatus.useQuery`. */
17417
17481
  var useOsdGetStatus = trpc.osd.getStatus.useQuery;
17482
+ /** Generated alias around `trpc.petFeeder.feed.useMutation`. */
17483
+ var usePetFeederFeed = trpc.petFeeder.feed.useMutation;
17484
+ /** Generated alias around `trpc.petFeeder.cancelFeed.useMutation`. */
17485
+ var usePetFeederCancelFeed = trpc.petFeeder.cancelFeed.useMutation;
17486
+ /** Generated alias around `trpc.petFeeder.resetDesiccant.useMutation`. */
17487
+ var usePetFeederResetDesiccant = trpc.petFeeder.resetDesiccant.useMutation;
17488
+ /** Generated alias around `trpc.petFeeder.markFoodReplenished.useMutation`. */
17489
+ var usePetFeederMarkFoodReplenished = trpc.petFeeder.markFoodReplenished.useMutation;
17490
+ /** Generated alias around `trpc.petFeeder.callPet.useMutation`. */
17491
+ var usePetFeederCallPet = trpc.petFeeder.callPet.useMutation;
17492
+ /** Generated alias around `trpc.petFeeder.playSound.useMutation`. */
17493
+ var usePetFeederPlaySound = trpc.petFeeder.playSound.useMutation;
17494
+ /** Generated alias around `trpc.petFeeder.setChildLock.useMutation`. */
17495
+ var usePetFeederSetChildLock = trpc.petFeeder.setChildLock.useMutation;
17496
+ /** Generated alias around `trpc.petFeeder.setIndicatorLight.useMutation`. */
17497
+ var usePetFeederSetIndicatorLight = trpc.petFeeder.setIndicatorLight.useMutation;
17498
+ /** Generated alias around `trpc.petFeeder.setFeedSound.useMutation`. */
17499
+ var usePetFeederSetFeedSound = trpc.petFeeder.setFeedSound.useMutation;
17500
+ /** Generated alias around `trpc.petFeeder.setVolume.useMutation`. */
17501
+ var usePetFeederSetVolume = trpc.petFeeder.setVolume.useMutation;
17502
+ /** Generated alias around `trpc.petFeeder.getStatus.useQuery`. */
17503
+ var usePetFeederGetStatus = trpc.petFeeder.getStatus.useQuery;
17418
17504
  /** Generated alias around `trpc.pipelineAnalytics.getActiveTracks.useQuery`. */
17419
17505
  var usePipelineAnalyticsGetActiveTracks = trpc.pipelineAnalytics.getActiveTracks.useQuery;
17420
17506
  /** Generated alias around `trpc.pipelineAnalytics.getTrack.useQuery`. */
@@ -21357,7 +21443,7 @@ function renderScene(glyph, uid) {
21357
21443
  default: return null;
21358
21444
  }
21359
21445
  }
21360
- function Readout({ icon, label, value }) {
21446
+ function Readout$1({ icon, label, value }) {
21361
21447
  return /* @__PURE__ */ jsxs("div", {
21362
21448
  className: "flex items-center gap-1.5 text-xs text-foreground-subtle",
21363
21449
  title: label,
@@ -21412,12 +21498,12 @@ function WeatherHeroCard({ trpc, deviceId }) {
21412
21498
  }), /* @__PURE__ */ jsxs("div", {
21413
21499
  className: "flex flex-col gap-1.5",
21414
21500
  children: [
21415
- slice.humidity !== null && /* @__PURE__ */ jsx(Readout, {
21501
+ slice.humidity !== null && /* @__PURE__ */ jsx(Readout$1, {
21416
21502
  icon: /* @__PURE__ */ jsx(Droplets, { className: "h-3.5 w-3.5" }),
21417
21503
  label: "Humidity",
21418
21504
  value: `${Math.round(slice.humidity)}%`
21419
21505
  }),
21420
- slice.windSpeed !== null && /* @__PURE__ */ jsx(Readout, {
21506
+ slice.windSpeed !== null && /* @__PURE__ */ jsx(Readout$1, {
21421
21507
  icon: slice.windBearing !== null ? /* @__PURE__ */ jsx(Navigation, {
21422
21508
  className: "h-3.5 w-3.5",
21423
21509
  style: { transform: `rotate(${slice.windBearing}deg)` }
@@ -21425,7 +21511,7 @@ function WeatherHeroCard({ trpc, deviceId }) {
21425
21511
  label: "Wind",
21426
21512
  value: `${Math.round(slice.windSpeed)} ${slice.windSpeedUnit ?? ""}`.trim()
21427
21513
  }),
21428
- slice.pressure !== null && /* @__PURE__ */ jsx(Readout, {
21514
+ slice.pressure !== null && /* @__PURE__ */ jsx(Readout$1, {
21429
21515
  icon: /* @__PURE__ */ jsx(Gauge, { className: "h-3.5 w-3.5" }),
21430
21516
  label: "Pressure",
21431
21517
  value: `${Math.round(slice.pressure)} ${slice.pressureUnit ?? ""}`.trim()
@@ -21638,6 +21724,522 @@ function ImageHeroCard({ trpc, deviceId, deviceName }) {
21638
21724
  });
21639
21725
  }
21640
21726
  //#endregion
21727
+ //#region src/composites/device-controls/pet-feeder-panel.tsx
21728
+ /**
21729
+ * Pet-feeder controls for a `DeviceType.PetFeeder` device.
21730
+ *
21731
+ * Reads the `pet-feeder` cap status slice (foodLevel / food1 / food2 /
21732
+ * lowFood / batteryPower / desiccantLeftDays / feeding / status / error /
21733
+ * errorCode / isDualHopper + the four persisted settings) and renders:
21734
+ * - PetFeederInlineControl (device-list row): a compact food-level +
21735
+ * battery readout with a one-tap Feed button (default portion).
21736
+ * - PetFeederHeroCard (device-detail hero): the food-bowl fill gauge
21737
+ * signature, battery + desiccant readouts, a manual-feed portion
21738
+ * stepper honouring the 4-200 g hardware range (per-hopper on
21739
+ * dual-hopper models), a maintenance action row (Call pet / Reset
21740
+ * desiccant / Mark refilled) and the child-lock / indicator-light /
21741
+ * feed-sound / volume settings.
21742
+ *
21743
+ * Mirrors the AC card's `useDeviceCapability` + inferred-cap pattern so
21744
+ * the row and hero never diverge. Actions are gated on `available`.
21745
+ */
21746
+ /** Default one-tap manual-feed portion (grams) — the low end of the
21747
+ * hardware range, a safe snack-sized dispense. */
21748
+ var DEFAULT_PORTION = 20;
21749
+ var VOLUME_MAX = 9;
21750
+ /** Amber kibble accent for the bowl fill; destructive red when low. */
21751
+ var KIBBLE = "#f59e0b";
21752
+ var KIBBLE_LOW = "#ef4444";
21753
+ function clampPortion(grams) {
21754
+ return Math.min(PET_FEEDER_MANUAL_FEED_MAX, Math.max(PET_FEEDER_MANUAL_FEED_MIN, grams));
21755
+ }
21756
+ var KEYFRAMES$1 = `
21757
+ @keyframes pf-eat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(2px)} }
21758
+ @keyframes pf-pulse { 0%,100%{opacity:.55} 50%{opacity:1} }
21759
+ @media (prefers-reduced-motion: reduce) {
21760
+ .pf-eat, .pf-pulse { animation: none !important; }
21761
+ }
21762
+ `;
21763
+ function PetFeederPanel({ trpc, deviceId, layout, optimistic }) {
21764
+ const { cap, slice, available } = useDeviceCapability({
21765
+ trpc,
21766
+ deviceId,
21767
+ cap: (d) => d.petFeeder,
21768
+ slice: (d) => d.state.petFeeder
21769
+ });
21770
+ const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
21771
+ const [portion, setPortion] = useState(DEFAULT_PORTION);
21772
+ const [hopper1, setHopper1] = useState(DEFAULT_PORTION);
21773
+ const [hopper2, setHopper2] = useState(DEFAULT_PORTION);
21774
+ if (cap === void 0) return null;
21775
+ if (display === void 0) return null;
21776
+ const busy = !available;
21777
+ const faultMsg = display.error && display.error !== "no_error" ? display.error : null;
21778
+ const offline = display.status === "offline";
21779
+ const onBatteries = display.status === "on_batteries";
21780
+ if (layout === "compact") return /* @__PURE__ */ jsxs("div", {
21781
+ className: "inline-flex items-center gap-2",
21782
+ children: [
21783
+ (faultMsg !== null || offline) && /* @__PURE__ */ jsx("span", {
21784
+ className: "inline-flex items-center text-destructive",
21785
+ title: faultMsg ?? "Offline",
21786
+ "aria-label": faultMsg ?? "Offline",
21787
+ children: offline ? /* @__PURE__ */ jsx(WifiOff, {
21788
+ className: "h-3.5 w-3.5",
21789
+ "aria-hidden": true
21790
+ }) : /* @__PURE__ */ jsx(TriangleAlert, {
21791
+ className: "h-3.5 w-3.5",
21792
+ "aria-hidden": true
21793
+ })
21794
+ }),
21795
+ /* @__PURE__ */ jsxs("span", {
21796
+ className: cn("inline-flex items-center gap-1 text-xs tabular-nums font-medium", display.lowFood ? "text-destructive" : "text-foreground"),
21797
+ children: [
21798
+ /* @__PURE__ */ jsx(UtensilsCrossed, {
21799
+ className: "h-3.5 w-3.5",
21800
+ "aria-hidden": true
21801
+ }),
21802
+ display.foodLevel ?? "—",
21803
+ /* @__PURE__ */ jsx("span", {
21804
+ className: "text-foreground-subtle",
21805
+ children: "g"
21806
+ })
21807
+ ]
21808
+ }),
21809
+ display.batteryPower !== null && /* @__PURE__ */ jsxs("span", {
21810
+ className: "inline-flex items-center gap-0.5 text-xs tabular-nums text-foreground-subtle",
21811
+ children: [
21812
+ /* @__PURE__ */ jsx(BatteryMedium, {
21813
+ className: "h-3.5 w-3.5",
21814
+ "aria-hidden": true
21815
+ }),
21816
+ display.batteryPower,
21817
+ "%"
21818
+ ]
21819
+ }),
21820
+ /* @__PURE__ */ jsxs("button", {
21821
+ type: "button",
21822
+ "aria-label": "Feed now",
21823
+ disabled: busy || display.feeding,
21824
+ onClick: (e) => {
21825
+ e.stopPropagation();
21826
+ if (busy || display.feeding) return;
21827
+ applyOptimistic({ feeding: true });
21828
+ cap.feed({ grams: DEFAULT_PORTION });
21829
+ },
21830
+ className: cn("inline-flex items-center gap-1 rounded-md border border-border bg-surface px-2 py-1 text-xs font-medium text-foreground transition-colors hover:bg-surface-hover", (busy || display.feeding) && "opacity-40 cursor-not-allowed"),
21831
+ children: [/* @__PURE__ */ jsx(PawPrint, {
21832
+ className: "h-3.5 w-3.5",
21833
+ "aria-hidden": true
21834
+ }), "Feed"]
21835
+ })
21836
+ ]
21837
+ });
21838
+ const feedSingle = (grams) => {
21839
+ if (busy || display.feeding) return;
21840
+ applyOptimistic({ feeding: true });
21841
+ cap.feed({ grams: clampPortion(grams) });
21842
+ };
21843
+ return /* @__PURE__ */ jsxs("div", {
21844
+ className: "relative flex flex-col items-stretch gap-3 overflow-hidden rounded-lg border border-border bg-surface p-4",
21845
+ children: [
21846
+ /* @__PURE__ */ jsx("style", { children: KEYFRAMES$1 }),
21847
+ /* @__PURE__ */ jsxs("div", {
21848
+ className: "flex items-center gap-4 rounded-lg border border-border/50 bg-surface-subtle/40 p-3",
21849
+ children: [/* @__PURE__ */ jsx(BowlGauge, {
21850
+ grams: display.foodLevel,
21851
+ low: display.lowFood,
21852
+ eating: display.feeding
21853
+ }), /* @__PURE__ */ jsxs("div", {
21854
+ className: "flex min-w-0 flex-1 flex-col gap-1.5",
21855
+ children: [/* @__PURE__ */ jsxs("div", {
21856
+ className: "flex items-baseline gap-1",
21857
+ children: [/* @__PURE__ */ jsx("span", {
21858
+ className: "text-3xl font-bold leading-none tabular-nums",
21859
+ style: { color: display.lowFood ? KIBBLE_LOW : KIBBLE },
21860
+ children: display.foodLevel ?? "—"
21861
+ }), /* @__PURE__ */ jsx("span", {
21862
+ className: "text-sm text-foreground-subtle",
21863
+ children: "g in bowl"
21864
+ })]
21865
+ }), /* @__PURE__ */ jsxs("div", {
21866
+ className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-foreground-subtle",
21867
+ children: [
21868
+ display.batteryPower !== null && /* @__PURE__ */ jsx(Readout, {
21869
+ icon: /* @__PURE__ */ jsx(BatteryMedium, { className: "h-3.5 w-3.5" }),
21870
+ label: `${display.batteryPower}%`
21871
+ }),
21872
+ display.desiccantLeftDays !== null && /* @__PURE__ */ jsx(Readout, {
21873
+ icon: /* @__PURE__ */ jsx(Wind, { className: "h-3.5 w-3.5" }),
21874
+ label: `${display.desiccantLeftDays}d desiccant`
21875
+ }),
21876
+ onBatteries && /* @__PURE__ */ jsxs("span", {
21877
+ className: "inline-flex items-center gap-1 font-medium text-amber-500",
21878
+ children: [/* @__PURE__ */ jsx(BatteryWarning, {
21879
+ className: "h-3.5 w-3.5",
21880
+ "aria-hidden": true
21881
+ }), "On battery"]
21882
+ }),
21883
+ offline ? /* @__PURE__ */ jsxs("span", {
21884
+ className: "inline-flex items-center gap-1 font-medium text-destructive",
21885
+ children: [/* @__PURE__ */ jsx(WifiOff, {
21886
+ className: "h-3.5 w-3.5",
21887
+ "aria-hidden": true
21888
+ }), "Offline"]
21889
+ }) : display.feeding ? /* @__PURE__ */ jsxs("span", {
21890
+ className: "pf-pulse inline-flex items-center gap-1 font-medium text-amber-500",
21891
+ style: { animation: "pf-pulse 1.2s ease-in-out infinite" },
21892
+ children: [/* @__PURE__ */ jsx(PawPrint, {
21893
+ className: "h-3.5 w-3.5",
21894
+ "aria-hidden": true
21895
+ }), "Feeding…"]
21896
+ }) : display.lowFood ? /* @__PURE__ */ jsxs("span", {
21897
+ className: "inline-flex items-center gap-1 font-medium text-destructive",
21898
+ children: [/* @__PURE__ */ jsx(Ban, {
21899
+ className: "h-3.5 w-3.5",
21900
+ "aria-hidden": true
21901
+ }), "Low food"]
21902
+ }) : /* @__PURE__ */ jsxs("span", {
21903
+ className: "inline-flex items-center gap-1 font-medium text-success",
21904
+ children: [/* @__PURE__ */ jsx(CircleCheck, {
21905
+ className: "h-3.5 w-3.5",
21906
+ "aria-hidden": true
21907
+ }), "Ready"]
21908
+ })
21909
+ ]
21910
+ })]
21911
+ })]
21912
+ }),
21913
+ faultMsg !== null && /* @__PURE__ */ jsxs("div", {
21914
+ className: "flex items-start gap-2 rounded-lg border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs font-medium text-destructive",
21915
+ children: [/* @__PURE__ */ jsx(TriangleAlert, {
21916
+ className: "mt-px h-4 w-4 shrink-0",
21917
+ "aria-hidden": true
21918
+ }), /* @__PURE__ */ jsx("span", {
21919
+ className: "min-w-0 break-words",
21920
+ children: faultMsg
21921
+ })]
21922
+ }),
21923
+ display.isDualHopper ? /* @__PURE__ */ jsxs("div", {
21924
+ className: "grid grid-cols-2 gap-2",
21925
+ children: [/* @__PURE__ */ jsx(HopperFeed, {
21926
+ label: "Hopper 1",
21927
+ grams: hopper1,
21928
+ busy: busy || display.feeding,
21929
+ onGrams: setHopper1,
21930
+ onFeed: () => {
21931
+ if (busy || display.feeding) return;
21932
+ applyOptimistic({ feeding: true });
21933
+ cap.feed({ hopper1: clampPortion(hopper1) });
21934
+ }
21935
+ }), /* @__PURE__ */ jsx(HopperFeed, {
21936
+ label: "Hopper 2",
21937
+ grams: hopper2,
21938
+ busy: busy || display.feeding,
21939
+ onGrams: setHopper2,
21940
+ onFeed: () => {
21941
+ if (busy || display.feeding) return;
21942
+ applyOptimistic({ feeding: true });
21943
+ cap.feed({ hopper2: clampPortion(hopper2) });
21944
+ }
21945
+ })]
21946
+ }) : /* @__PURE__ */ jsx(HopperFeed, {
21947
+ label: "Manual feed",
21948
+ grams: portion,
21949
+ busy: busy || display.feeding,
21950
+ onGrams: setPortion,
21951
+ onFeed: () => feedSingle(portion)
21952
+ }),
21953
+ /* @__PURE__ */ jsxs("div", {
21954
+ className: "grid grid-cols-3 gap-2",
21955
+ children: [
21956
+ /* @__PURE__ */ jsx(ActionButton, {
21957
+ icon: /* @__PURE__ */ jsx(PawPrint, { className: "h-4 w-4" }),
21958
+ label: "Call pet",
21959
+ busy,
21960
+ onClick: () => void cap.callPet({})
21961
+ }),
21962
+ /* @__PURE__ */ jsx(ActionButton, {
21963
+ icon: /* @__PURE__ */ jsx(RefreshCw, { className: "h-4 w-4" }),
21964
+ label: "Reset desiccant",
21965
+ busy,
21966
+ onClick: () => void cap.resetDesiccant({})
21967
+ }),
21968
+ /* @__PURE__ */ jsx(ActionButton, {
21969
+ icon: /* @__PURE__ */ jsx(UtensilsCrossed, { className: "h-4 w-4" }),
21970
+ label: "Mark refilled",
21971
+ busy,
21972
+ onClick: () => void cap.markFoodReplenished({})
21973
+ })
21974
+ ]
21975
+ }),
21976
+ display.feeding && /* @__PURE__ */ jsxs("button", {
21977
+ type: "button",
21978
+ disabled: busy,
21979
+ onClick: () => {
21980
+ applyOptimistic({ feeding: false });
21981
+ cap.cancelFeed({});
21982
+ },
21983
+ className: cn("flex items-center justify-center gap-2 rounded-lg border border-destructive/40 bg-destructive/10 px-2 py-1.5 text-xs font-medium text-destructive transition-colors hover:bg-destructive/20", busy && "opacity-40 cursor-not-allowed"),
21984
+ children: [/* @__PURE__ */ jsx(Ban, {
21985
+ className: "h-4 w-4",
21986
+ "aria-hidden": true
21987
+ }), "Cancel feed"]
21988
+ }),
21989
+ /* @__PURE__ */ jsx(Field$1, {
21990
+ label: "Settings",
21991
+ children: /* @__PURE__ */ jsxs("div", {
21992
+ className: "grid grid-cols-3 gap-2",
21993
+ children: [
21994
+ /* @__PURE__ */ jsx(SettingToggle, {
21995
+ icon: /* @__PURE__ */ jsx(Lock, { className: "h-4 w-4" }),
21996
+ label: "Child lock",
21997
+ on: display.childLock,
21998
+ busy,
21999
+ onToggle: (next) => {
22000
+ applyOptimistic({ childLock: next });
22001
+ cap.setChildLock({ on: next });
22002
+ }
22003
+ }),
22004
+ /* @__PURE__ */ jsx(SettingToggle, {
22005
+ icon: /* @__PURE__ */ jsx(Lightbulb, { className: "h-4 w-4" }),
22006
+ label: "Light",
22007
+ on: display.indicatorLight,
22008
+ busy,
22009
+ onToggle: (next) => {
22010
+ applyOptimistic({ indicatorLight: next });
22011
+ cap.setIndicatorLight({ on: next });
22012
+ }
22013
+ }),
22014
+ /* @__PURE__ */ jsx(SettingToggle, {
22015
+ icon: /* @__PURE__ */ jsx(Bell, { className: "h-4 w-4" }),
22016
+ label: "Feed sound",
22017
+ on: display.feedSound,
22018
+ busy,
22019
+ onToggle: (next) => {
22020
+ applyOptimistic({ feedSound: next });
22021
+ cap.setFeedSound({ on: next });
22022
+ }
22023
+ })
22024
+ ]
22025
+ })
22026
+ }),
22027
+ /* @__PURE__ */ jsx(Field$1, {
22028
+ label: "Volume",
22029
+ children: /* @__PURE__ */ jsxs("div", {
22030
+ className: "flex items-center gap-3",
22031
+ children: [
22032
+ /* @__PURE__ */ jsx(Volume2, {
22033
+ className: "h-4 w-4 shrink-0 text-foreground-subtle",
22034
+ "aria-hidden": true
22035
+ }),
22036
+ /* @__PURE__ */ jsx(RoundStep$1, {
22037
+ label: "Decrease volume",
22038
+ symbol: "−",
22039
+ disabled: busy || display.volume <= 0,
22040
+ onClick: () => {
22041
+ const next = Math.max(0, display.volume - 1);
22042
+ applyOptimistic({ volume: next });
22043
+ cap.setVolume({ level: next });
22044
+ }
22045
+ }),
22046
+ /* @__PURE__ */ jsx("span", {
22047
+ className: "w-6 text-center text-lg font-semibold tabular-nums text-foreground",
22048
+ children: display.volume
22049
+ }),
22050
+ /* @__PURE__ */ jsx(RoundStep$1, {
22051
+ label: "Increase volume",
22052
+ symbol: "+",
22053
+ disabled: busy || display.volume >= VOLUME_MAX,
22054
+ onClick: () => {
22055
+ const next = Math.min(VOLUME_MAX, display.volume + 1);
22056
+ applyOptimistic({ volume: next });
22057
+ cap.setVolume({ level: next });
22058
+ }
22059
+ })
22060
+ ]
22061
+ })
22062
+ })
22063
+ ]
22064
+ });
22065
+ }
22066
+ /** Labelled control group — a small uppercase header above its control. */
22067
+ function Field$1({ label, children }) {
22068
+ return /* @__PURE__ */ jsxs("div", {
22069
+ className: "flex flex-col gap-1",
22070
+ children: [/* @__PURE__ */ jsx("span", {
22071
+ className: "text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle",
22072
+ children: label
22073
+ }), children]
22074
+ });
22075
+ }
22076
+ function Readout({ icon, label }) {
22077
+ return /* @__PURE__ */ jsxs("span", {
22078
+ className: "inline-flex items-center gap-1 tabular-nums",
22079
+ children: [/* @__PURE__ */ jsx("span", {
22080
+ className: "text-foreground-subtle",
22081
+ children: icon
22082
+ }), label]
22083
+ });
22084
+ }
22085
+ /**
22086
+ * Signature element — a food bowl whose kibble fills proportionally to the
22087
+ * bowl reading (0–200 g). Amber when stocked, red when the low-food flag is
22088
+ * set; the kibble mound bobs while the pet is eating.
22089
+ */
22090
+ function BowlGauge({ grams, low, eating }) {
22091
+ const frac = Math.min(1, Math.max(0, (grams ?? 0) / PET_FEEDER_MANUAL_FEED_MAX));
22092
+ const fill = low ? KIBBLE_LOW : KIBBLE;
22093
+ const surfaceY = 52 - frac * 24;
22094
+ return /* @__PURE__ */ jsxs("svg", {
22095
+ width: 72,
22096
+ height: 72,
22097
+ viewBox: "0 0 72 72",
22098
+ role: "img",
22099
+ "aria-label": grams === null ? "Food level unknown" : `${grams} grams in bowl`,
22100
+ className: "shrink-0",
22101
+ children: [
22102
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", {
22103
+ id: "pf-bowl-clip",
22104
+ children: /* @__PURE__ */ jsx("path", { d: "M14 26 H58 L52 54 A6 6 0 0 1 46 58 H26 A6 6 0 0 1 20 54 Z" })
22105
+ }) }),
22106
+ /* @__PURE__ */ jsxs("g", {
22107
+ clipPath: "url(#pf-bowl-clip)",
22108
+ className: eating ? "pf-eat" : void 0,
22109
+ style: eating ? { animation: "pf-eat 1.1s ease-in-out infinite" } : void 0,
22110
+ children: [/* @__PURE__ */ jsx("rect", {
22111
+ x: "14",
22112
+ y: surfaceY,
22113
+ width: "44",
22114
+ height: "34",
22115
+ fill,
22116
+ opacity: .9
22117
+ }), /* @__PURE__ */ jsx("ellipse", {
22118
+ cx: "36",
22119
+ cy: surfaceY,
22120
+ rx: "22",
22121
+ ry: "4",
22122
+ fill
22123
+ })]
22124
+ }),
22125
+ /* @__PURE__ */ jsx("path", {
22126
+ d: "M14 26 H58 L52 54 A6 6 0 0 1 46 58 H26 A6 6 0 0 1 20 54 Z",
22127
+ fill: "none",
22128
+ stroke: "currentColor",
22129
+ strokeWidth: "2.5",
22130
+ className: "text-border"
22131
+ }),
22132
+ /* @__PURE__ */ jsx("rect", {
22133
+ x: "11",
22134
+ y: "22",
22135
+ width: "50",
22136
+ height: "6",
22137
+ rx: "3",
22138
+ fill: "currentColor",
22139
+ className: "text-border"
22140
+ })
22141
+ ]
22142
+ });
22143
+ }
22144
+ /** Manual-feed portion stepper + Feed button, honouring the 4-200 g range. */
22145
+ function HopperFeed({ label, grams, busy, onGrams, onFeed }) {
22146
+ return /* @__PURE__ */ jsxs("div", {
22147
+ className: "flex flex-col gap-1",
22148
+ children: [/* @__PURE__ */ jsx("span", {
22149
+ className: "text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle",
22150
+ children: label
22151
+ }), /* @__PURE__ */ jsxs("div", {
22152
+ className: "flex items-center gap-2",
22153
+ children: [/* @__PURE__ */ jsxs("div", {
22154
+ className: "flex items-center gap-1 rounded-lg border border-border/60 bg-surface-subtle px-1 py-1",
22155
+ children: [
22156
+ /* @__PURE__ */ jsx(RoundStep$1, {
22157
+ label: `Decrease ${label} portion`,
22158
+ symbol: "−",
22159
+ disabled: busy || grams <= PET_FEEDER_MANUAL_FEED_MIN,
22160
+ onClick: () => onGrams(clampPortion(grams - 1))
22161
+ }),
22162
+ /* @__PURE__ */ jsxs("span", {
22163
+ className: "w-12 text-center text-sm font-semibold tabular-nums text-foreground",
22164
+ children: [grams, /* @__PURE__ */ jsx("span", {
22165
+ className: "text-xs text-foreground-subtle",
22166
+ children: "g"
22167
+ })]
22168
+ }),
22169
+ /* @__PURE__ */ jsx(RoundStep$1, {
22170
+ label: `Increase ${label} portion`,
22171
+ symbol: "+",
22172
+ disabled: busy || grams >= PET_FEEDER_MANUAL_FEED_MAX,
22173
+ onClick: () => onGrams(clampPortion(grams + 1))
22174
+ })
22175
+ ]
22176
+ }), /* @__PURE__ */ jsxs("button", {
22177
+ type: "button",
22178
+ disabled: busy,
22179
+ onClick: onFeed,
22180
+ className: cn("flex flex-1 items-center justify-center gap-1.5 rounded-lg border border-transparent bg-amber-400 px-2 py-2 text-sm font-semibold text-amber-950 transition-colors hover:bg-amber-300 active:scale-95", busy && "opacity-40 cursor-not-allowed"),
22181
+ children: [/* @__PURE__ */ jsx(PawPrint, {
22182
+ className: "h-4 w-4",
22183
+ "aria-hidden": true
22184
+ }), "Feed"]
22185
+ })]
22186
+ })]
22187
+ });
22188
+ }
22189
+ /** Circular ± button. */
22190
+ function RoundStep$1({ label, symbol, disabled, onClick }) {
22191
+ return /* @__PURE__ */ jsx("button", {
22192
+ type: "button",
22193
+ "aria-label": label,
22194
+ disabled,
22195
+ onClick,
22196
+ className: cn("flex h-7 w-7 shrink-0 items-center justify-center rounded-full border border-border bg-surface text-base leading-none text-foreground-subtle transition-colors hover:bg-surface-hover hover:text-foreground active:scale-95", disabled && "opacity-40 cursor-not-allowed"),
22197
+ children: symbol
22198
+ });
22199
+ }
22200
+ /** Neutral maintenance action button (icon over label). */
22201
+ function ActionButton({ icon, label, busy, onClick }) {
22202
+ return /* @__PURE__ */ jsxs("button", {
22203
+ type: "button",
22204
+ disabled: busy,
22205
+ onClick,
22206
+ className: cn("flex flex-col items-center justify-center gap-1 rounded-lg border border-border/60 bg-surface-subtle px-1 py-2 text-[11px] font-medium text-foreground-subtle transition-colors hover:bg-surface-hover hover:text-foreground", busy && "opacity-40 cursor-not-allowed"),
22207
+ children: [icon, label]
22208
+ });
22209
+ }
22210
+ /** Setting toggle card — reflects the persisted setting; tap to flip. */
22211
+ function SettingToggle({ icon, label, on, busy, onToggle }) {
22212
+ return /* @__PURE__ */ jsxs("button", {
22213
+ type: "button",
22214
+ "aria-label": label,
22215
+ "aria-pressed": on,
22216
+ disabled: busy,
22217
+ onClick: () => {
22218
+ if (!busy) onToggle(!on);
22219
+ },
22220
+ className: cn("flex flex-col items-center justify-center gap-1 rounded-lg border px-1 py-2 text-[11px] font-medium transition-colors", on ? "border-transparent bg-indigo-400 text-indigo-950 shadow-sm" : "border-border/60 bg-surface-subtle text-foreground-subtle hover:bg-surface-hover hover:text-foreground", busy && "opacity-40 cursor-not-allowed"),
22221
+ children: [icon, label]
22222
+ });
22223
+ }
22224
+ function PetFeederInlineControl({ trpc, deviceId, features, optimistic }) {
22225
+ return /* @__PURE__ */ jsx(PetFeederPanel, {
22226
+ trpc,
22227
+ deviceId,
22228
+ features,
22229
+ layout: "compact",
22230
+ optimistic
22231
+ });
22232
+ }
22233
+ function PetFeederHeroCard({ trpc, deviceId, features, optimistic }) {
22234
+ return /* @__PURE__ */ jsx(PetFeederPanel, {
22235
+ trpc,
22236
+ deviceId,
22237
+ features,
22238
+ layout: "full",
22239
+ optimistic
22240
+ });
22241
+ }
22242
+ //#endregion
21641
22243
  //#region src/composites/device-controls/switch-panel.tsx
21642
22244
  function SwitchPanel({ trpc, deviceId, optimistic }) {
21643
22245
  const { cap, slice, available } = useDeviceCapability({
@@ -24823,6 +25425,10 @@ var IMAGE_CONTROL = {
24823
25425
  InlineControl: ImageInlineControl,
24824
25426
  HeroCard: ImageHeroCard
24825
25427
  };
25428
+ var PET_FEEDER_CONTROL = {
25429
+ InlineControl: PetFeederInlineControl,
25430
+ HeroCard: PetFeederHeroCard
25431
+ };
24826
25432
  /**
24827
25433
  * Exhaustive record over DeviceType. Omitting a member causes a
24828
25434
  * TypeScript build error (same pattern as DEVICE_TYPE_ACTIONS).
@@ -24860,7 +25466,8 @@ var DEVICE_TYPE_CONTROL = {
24860
25466
  [DeviceType.Vacuum]: VACUUM_CONTROL,
24861
25467
  [DeviceType.LawnMower]: LAWN_MOWER_CONTROL,
24862
25468
  [DeviceType.Container]: DUMMY_CONTROL,
24863
- [DeviceType.Image]: IMAGE_CONTROL
25469
+ [DeviceType.Image]: IMAGE_CONTROL,
25470
+ [DeviceType.PetFeeder]: PET_FEEDER_CONTROL
24864
25471
  };
24865
25472
  /**
24866
25473
  * Per-type FILL flag.
@@ -24911,7 +25518,8 @@ var CONTROL_FILLS = {
24911
25518
  [DeviceType.Generic]: false,
24912
25519
  [DeviceType.Weather]: false,
24913
25520
  [DeviceType.Container]: false,
24914
- [DeviceType.Image]: false
25521
+ [DeviceType.Image]: false,
25522
+ [DeviceType.PetFeeder]: false
24915
25523
  };
24916
25524
  var DEVICE_TYPE_VALUES$1 = new Set(Object.values(DeviceType));
24917
25525
  /**
@@ -25160,6 +25768,10 @@ var DEVICE_TYPE_META = {
25160
25768
  [DeviceType.Image]: {
25161
25769
  icon: Image,
25162
25770
  label: "Image"
25771
+ },
25772
+ [DeviceType.PetFeeder]: {
25773
+ icon: Bone,
25774
+ label: "Pet feeder"
25163
25775
  }
25164
25776
  };
25165
25777
  var DEVICE_ROLE_META = {
@@ -28987,7 +29599,8 @@ var CONTROL_CAP_NAMES = [
28987
29599
  "fan-control",
28988
29600
  "climate-control",
28989
29601
  "media-player",
28990
- "control"
29602
+ "control",
29603
+ "pet-feeder"
28991
29604
  ];
28992
29605
  //#endregion
28993
29606
  //#region src/composites/device-controls/popover-row-action.tsx
@@ -44226,4 +44839,4 @@ var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-NcxxQN8r.js")
44226
44839
  /** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
44227
44840
  var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-APgPLF7p.js").then((m) => ({ default: m.PrivacyMaskSettings })));
44228
44841
  //#endregion
44229
- 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, 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, 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, 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 };
44842
+ 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, 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, 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, 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, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, 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 };