@camstack/ui-library 0.1.39 → 0.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/composites/addon-global-settings-form.d.ts +60 -0
  2. package/dist/composites/addon-page-props.d.ts +12 -0
  3. package/dist/composites/agent-step-editor.d.ts +15 -0
  4. package/dist/composites/app-shell/app-shell.d.ts +19 -0
  5. package/dist/composites/app-shell/index.d.ts +3 -0
  6. package/dist/composites/app-shell/sidebar-item.d.ts +10 -0
  7. package/dist/composites/app-shell/sidebar.d.ts +14 -0
  8. package/dist/composites/audio-classification-list.d.ts +20 -0
  9. package/dist/composites/audio-level-waveform.d.ts +35 -0
  10. package/dist/composites/audio-waveform.d.ts +20 -0
  11. package/dist/composites/battery-badge.d.ts +12 -0
  12. package/dist/composites/breadcrumb.d.ts +25 -0
  13. package/dist/composites/camera-stream-player.d.ts +87 -0
  14. package/dist/composites/code-block.d.ts +6 -0
  15. package/dist/composites/config-form-builder.d.ts +18 -0
  16. package/dist/composites/config-form-field.d.ts +70 -0
  17. package/dist/composites/confirm-action-button.d.ts +41 -0
  18. package/dist/composites/confirm-dialog.d.ts +13 -0
  19. package/dist/composites/data-table/data-table-header.d.ts +10 -0
  20. package/dist/composites/data-table/data-table-pagination.d.ts +9 -0
  21. package/dist/composites/data-table/data-table-row.d.ts +10 -0
  22. package/dist/composites/data-table/data-table.d.ts +2 -0
  23. package/dist/composites/data-table/index.d.ts +2 -0
  24. package/dist/composites/data-table/types.d.ts +34 -0
  25. package/dist/composites/data-table.d.ts +37 -0
  26. package/dist/composites/detection-canvas.d.ts +29 -0
  27. package/dist/composites/detection-colors.d.ts +15 -0
  28. package/dist/composites/detection-overlay.d.ts +9 -0
  29. package/dist/composites/detection-result-tree.d.ts +11 -0
  30. package/dist/composites/dev-shell.d.ts +20 -0
  31. package/dist/composites/device-activity-panel.d.ts +29 -0
  32. package/dist/composites/device-card.d.ts +38 -0
  33. package/dist/composites/device-grid.d.ts +12 -0
  34. package/dist/composites/device-item/actions.d.ts +9 -0
  35. package/dist/composites/device-item/children-accordion.d.ts +11 -0
  36. package/dist/composites/device-item/features.d.ts +17 -0
  37. package/dist/composites/device-item/header.d.ts +14 -0
  38. package/dist/composites/device-item/helpers.d.ts +147 -0
  39. package/dist/composites/device-item/index.d.ts +5 -0
  40. package/dist/composites/device-item/preview.d.ts +23 -0
  41. package/dist/composites/device-item/status-dot.d.ts +5 -0
  42. package/dist/composites/device-list/empty-state.d.ts +6 -0
  43. package/dist/composites/device-list/filter-chips.d.ts +19 -0
  44. package/dist/composites/device-list/group.d.ts +6 -0
  45. package/dist/composites/device-list/index.d.ts +31 -0
  46. package/dist/composites/device-list/pagination.d.ts +18 -0
  47. package/dist/composites/device-list/url-state.d.ts +24 -0
  48. package/dist/composites/discovery-panel.d.ts +26 -0
  49. package/dist/composites/doorbell-recent-panel.d.ts +10 -0
  50. package/dist/composites/empty-state.d.ts +10 -0
  51. package/dist/composites/event-stream.d.ts +48 -0
  52. package/dist/composites/filter-bar.d.ts +28 -0
  53. package/dist/composites/form-field.d.ts +11 -0
  54. package/dist/composites/image-selector.d.ts +25 -0
  55. package/dist/composites/index.d.ts +99 -0
  56. package/dist/composites/inference-config-selector.d.ts +44 -0
  57. package/dist/composites/kebab-menu.d.ts +39 -0
  58. package/dist/composites/key-value-list.d.ts +9 -0
  59. package/dist/composites/log-stream.d.ts +61 -0
  60. package/dist/composites/login-form.d.ts +8 -0
  61. package/dist/composites/mount-addon-page.d.ts +16 -0
  62. package/dist/composites/node-picker.d.ts +15 -0
  63. package/dist/composites/page-header.d.ts +8 -0
  64. package/dist/composites/phase-icon.d.ts +5 -0
  65. package/dist/composites/pipeline-builder.d.ts +43 -0
  66. package/dist/composites/pipeline-runtime-selector.d.ts +16 -0
  67. package/dist/composites/pipeline-step.d.ts +65 -0
  68. package/dist/composites/pipeline-tree-matrix.d.ts +31 -0
  69. package/dist/composites/provider-badge.d.ts +7 -0
  70. package/dist/composites/ptz-overlay.d.ts +20 -0
  71. package/dist/composites/response-log.d.ts +9 -0
  72. package/dist/composites/slide-over-panel.d.ts +11 -0
  73. package/dist/composites/snapshot-button.d.ts +25 -0
  74. package/dist/composites/stat-card.d.ts +10 -0
  75. package/dist/composites/state-values-stream.d.ts +30 -0
  76. package/dist/composites/status-badge.d.ts +10 -0
  77. package/dist/composites/step-timings.d.ts +9 -0
  78. package/dist/composites/step-tree-master.d.ts +28 -0
  79. package/dist/composites/stream-panel.d.ts +143 -0
  80. package/dist/composites/version-badge.d.ts +24 -0
  81. package/dist/composites/widget-slot.d.ts +20 -0
  82. package/dist/contexts/custom-field-renderers.d.ts +26 -0
  83. package/dist/contexts/device-context.d.ts +20 -0
  84. package/dist/contexts/player-overlays.d.ts +56 -0
  85. package/dist/contexts/system-context.d.ts +19 -0
  86. package/dist/contexts/widget-registry.d.ts +68 -0
  87. package/dist/contexts/zone-editing.d.ts +59 -0
  88. package/dist/generated/system-hooks.d.ts +933 -0
  89. package/dist/hooks/index.d.ts +27 -0
  90. package/dist/hooks/use-cluster-nodes.d.ts +17 -0
  91. package/dist/hooks/use-debounced-string.d.ts +1 -0
  92. package/dist/hooks/use-device-battery.d.ts +14 -0
  93. package/dist/hooks/use-device-capability.d.ts +17 -0
  94. package/dist/hooks/use-device-detections.d.ts +50 -0
  95. package/dist/hooks/use-device-features.d.ts +25 -0
  96. package/dist/hooks/use-device-proxy.d.ts +106 -0
  97. package/dist/hooks/use-device-snapshot.d.ts +10 -0
  98. package/dist/hooks/use-device-webrtc.d.ts +108 -0
  99. package/dist/hooks/use-devices.d.ts +13 -0
  100. package/dist/hooks/use-doorbell-events.d.ts +20 -0
  101. package/dist/hooks/use-event-invalidation.d.ts +1 -0
  102. package/dist/hooks/use-event-stream.d.ts +5 -0
  103. package/dist/hooks/use-is-mobile.d.ts +8 -0
  104. package/dist/hooks/use-live-buffer.d.ts +8 -0
  105. package/dist/hooks/use-live-event.d.ts +3 -0
  106. package/dist/hooks/use-ptz.d.ts +54 -0
  107. package/dist/hooks/use-system-query.d.ts +12 -0
  108. package/dist/icons/index.d.ts +2 -0
  109. package/dist/icons/provider-icons.d.ts +3 -0
  110. package/dist/icons/status-icons.d.ts +3 -0
  111. package/dist/index.cjs +23484 -14252
  112. package/dist/index.cjs.map +1 -1
  113. package/dist/index.d.ts +14 -3787
  114. package/dist/index.js +22810 -13741
  115. package/dist/index.js.map +1 -1
  116. package/dist/lib/cn.d.ts +2 -0
  117. package/dist/lib/index.d.ts +8 -0
  118. package/dist/lib/mf-runtime-init.d.ts +1 -0
  119. package/dist/lib/phase-config.d.ts +16 -0
  120. package/dist/lib/pipeline-mirror.d.ts +23 -0
  121. package/dist/lib/responsive.d.ts +81 -0
  122. package/dist/lib/shared-context.d.ts +5 -0
  123. package/dist/lib/validate-template.d.ts +2 -0
  124. package/dist/primitives/badge.d.ts +11 -0
  125. package/dist/primitives/bottom-sheet.d.ts +9 -0
  126. package/dist/primitives/button.d.ts +10 -0
  127. package/dist/primitives/card.d.ts +9 -0
  128. package/dist/primitives/checkbox.d.ts +4 -0
  129. package/dist/primitives/collapsible-card.d.ts +15 -0
  130. package/dist/primitives/dialog.d.ts +20 -0
  131. package/dist/primitives/dropdown.d.ts +19 -0
  132. package/dist/primitives/floating-panel.d.ts +22 -0
  133. package/dist/primitives/icon-button.d.ts +13 -0
  134. package/dist/primitives/index.d.ts +21 -0
  135. package/dist/primitives/input.d.ts +11 -0
  136. package/dist/primitives/label.d.ts +4 -0
  137. package/dist/primitives/mobile-drawer.d.ts +10 -0
  138. package/dist/primitives/popover.d.ts +10 -0
  139. package/dist/primitives/scroll-area.d.ts +4 -0
  140. package/dist/primitives/select.d.ts +9 -0
  141. package/dist/primitives/separator.d.ts +9 -0
  142. package/dist/primitives/skeleton.d.ts +4 -0
  143. package/dist/primitives/switch.d.ts +7 -0
  144. package/dist/primitives/tabs.d.ts +17 -0
  145. package/dist/primitives/tooltip.d.ts +6 -0
  146. package/dist/theme/create-theme.d.ts +2 -0
  147. package/dist/theme/defaults.d.ts +4 -0
  148. package/dist/theme/index.cjs +228 -248
  149. package/dist/theme/index.cjs.map +1 -1
  150. package/dist/theme/index.d.ts +6 -128
  151. package/dist/theme/index.js +212 -214
  152. package/dist/theme/index.js.map +1 -1
  153. package/dist/theme/theme-provider.d.ts +10 -0
  154. package/dist/theme/theme-to-css.d.ts +2 -0
  155. package/dist/theme/{index.d.cts → types.d.ts} +5 -27
  156. package/dist/theme/use-theme-mode.d.ts +2 -0
  157. package/dist/trpc-react.d.ts +7 -0
  158. package/package.json +5 -3
  159. package/dist/index.d.cts +0 -3787
package/dist/index.d.ts CHANGED
@@ -1,3787 +1,14 @@
1
- import { UseThemeModeReturn } from './theme/index.js';
2
- export { CamStackColorTokens, CamStackTheme, DeepPartial, ThemeMode, ThemeProvider, createTheme, darkColors, defaultTheme, lightColors, themeToCss, useThemeMode } from './theme/index.js';
3
- import { ClassValue } from 'clsx';
4
- import { AgentAddonConfig, PipelineSchema, CameraStepOverridePatch, CameraPhase, PipelineSlot, PipelineAddonSchema, DeviceBinding, DeviceProxy, ConfigField, PipelineEngineChoice, PipelineTemplate, ObjectDetection, AppRouter, FieldProbeResult, ConfigNodeMultiSelectField, ConfigNodeSelectField, ConfigUISchema, ConfigUISchemaWithValues, SliceHandle, DeviceQueryFilters } from '@camstack/types';
5
- import * as react from 'react';
6
- import react__default, { Context, ButtonHTMLAttributes, HTMLAttributes, ReactNode, LabelHTMLAttributes, InputHTMLAttributes, SelectHTMLAttributes, ComponentType } from 'react';
7
- import * as lucide_react from 'lucide-react';
8
- import { LucideIcon, LucideProps } from 'lucide-react';
9
- import * as class_variance_authority_types from 'class-variance-authority/types';
10
- import { VariantProps } from 'class-variance-authority';
11
- import * as react_jsx_runtime from 'react/jsx-runtime';
12
- import { ColumnDef, SortingState, ColumnFiltersState, PaginationState } from '@tanstack/react-table';
13
- export { ColumnDef, ColumnFiltersState, PaginationState, SortingState } from '@tanstack/react-table';
14
- import { TRPCClient } from '@trpc/client';
15
- import { System, SystemLiveEvent } from '@camstack/sdk';
16
- import { UseMutationOptions, UseMutationResult, QueryKey, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
17
- import { CreateTRPCReact } from '@trpc/react-query';
18
-
19
- declare function cn(...inputs: ClassValue[]): string;
20
-
21
- /**
22
- * Responsive design tokens — three-tier system.
23
- *
24
- * The admin-ui targets three width tiers; every component should pick
25
- * the right token from this file instead of hand-coding breakpoints.
26
- * Adopting the tokens uniformly is what makes the app feel consistent
27
- * across operator devices (mobile / tablet / desktop) and what unlocks
28
- * targeted tuning (e.g. shrink every label by 1px in one place).
29
- *
30
- * Tier definitions (Tailwind breakpoints):
31
- *
32
- * • **L1 — Compact** (`< 640px`, default = mobile portrait)
33
- * Single column, tight padding, smallest text, icon-only buttons
34
- * where labels can be inferred. The operator can still see every
35
- * stat / action — no horizontal scroll, no clipped text. The user
36
- * directive: "molta informazione in poco spazio quando la width è
37
- * bassa."
38
- *
39
- * • **L2 — Standard** (`sm` — `640–1023px`, tablet + small laptop)
40
- * 2-column grids, side panels become visible, button labels return.
41
- * Targets ~768px–1024px viewports — the most common operator sizes.
42
- *
43
- * • **L3 — Spacious** (`lg+` — `≥ 1024px`, desktop)
44
- * 4-column grids, generous padding, full-width header text,
45
- * side-by-side composite layouts. The operator has elbow room.
46
- *
47
- * Conventions:
48
- * - **Always start from L1** — the bare class is always the compact
49
- * variant, then `sm:` adds room at 640px, `lg:` at 1024px. No
50
- * desktop-first breakpoints; no max-width queries.
51
- * - **Token strings are static** — kept as `as const` so callers can
52
- * compose them via `cn()` / template literals without running a
53
- * class generator at runtime.
54
- * - **Pair the token with a comment** — the comment in the file
55
- * names every breakpoint it crosses, so a reader can predict the
56
- * layout without going to Tailwind docs.
57
- */
58
- /** Container padding for a card-style section (header + body). */
59
- declare const SECTION_CARD: "rounded-lg border border-border bg-surface overflow-hidden";
60
- /** Header strip inside a card (between border-b lines). */
61
- declare const SECTION_HEADER: "border-b border-border px-3 sm:px-4 py-1.5 sm:py-2";
62
- /** Body padding for a card-style section. */
63
- declare const SECTION_BODY: "p-2 sm:p-3 lg:p-4";
64
- /** Gap between cards in a vertical stack. */
65
- declare const STACK_GAP: "space-y-3 sm:space-y-4";
66
- /** Gap between cards in a grid (4 cells / row at lg). */
67
- declare const GRID_GAP: "gap-2 sm:gap-3";
68
- /** Row padding inside a divided list (e.g. InfoRow). */
69
- declare const LIST_ROW: "px-3 sm:px-4 py-1.5 sm:py-2";
70
- /** 1-up at L1, 2-up at L2, 4-up at L3 — quick-stat row. */
71
- declare const GRID_QUICK_STATS: "grid grid-cols-2 sm:grid-cols-2 lg:grid-cols-4";
72
- /** 1-up at L1, 2-up at L2+ — paired panels (motion + detection rules). */
73
- declare const GRID_PAIRED: "grid grid-cols-1 lg:grid-cols-2";
74
- /** Side-by-side layout that stacks below md (canvas + side panel). */
75
- declare const SPLIT_PANEL_OUTER: "flex flex-col-reverse md:flex-row";
76
- /** Sidebar narrow lane in a SPLIT_PANEL_OUTER layout. */
77
- declare const SPLIT_PANEL_SIDE: "w-full md:w-44 lg:w-52 md:flex-shrink-0 border-b md:border-b-0 md:border-l border-border";
78
- /** Section header label (uppercase tracking-wider). */
79
- declare const TEXT_SECTION_LABEL: "text-[10px] sm:text-[11px] font-semibold text-foreground uppercase tracking-wider";
80
- /** Field label inside a row. */
81
- declare const TEXT_FIELD_LABEL: "text-[11px] sm:text-xs text-foreground";
82
- /** Sub-label / hint text. */
83
- declare const TEXT_HINT: "text-[10px] text-foreground-subtle";
84
- /** Primary value (a metric, badge, …). */
85
- declare const TEXT_VALUE: "text-[11px] sm:text-xs font-medium text-foreground";
86
- /** Big metric value (StatCard). */
87
- declare const TEXT_METRIC: "text-base sm:text-lg font-semibold leading-tight text-foreground";
88
- /** Default compact button. */
89
- declare const BTN_COMPACT: "inline-flex items-center justify-center gap-1 rounded border border-border bg-surface px-1.5 py-0.5 sm:px-2 sm:py-1 text-[10px] sm:text-[11px] font-medium text-foreground hover:bg-surface-hover transition-colors disabled:opacity-40";
90
- /** Primary compact button. */
91
- declare const BTN_COMPACT_PRIMARY: "inline-flex items-center justify-center gap-1 rounded border border-primary/40 bg-primary/15 px-1.5 py-0.5 sm:px-2 sm:py-1 text-[10px] sm:text-[11px] font-medium text-primary hover:bg-primary/25 transition-colors disabled:opacity-40";
92
- /** Danger compact button. */
93
- declare const BTN_COMPACT_DANGER: "inline-flex items-center justify-center gap-1 rounded border border-danger/40 bg-danger/10 px-1.5 py-0.5 sm:px-2 sm:py-1 text-[10px] sm:text-[11px] font-medium text-danger hover:bg-danger/20 transition-colors disabled:opacity-40";
94
- /** Warning compact button (e.g. cancel-drawing). */
95
- declare const BTN_COMPACT_WARNING: "inline-flex items-center justify-center gap-1 rounded border border-warning/40 bg-warning/10 px-1.5 py-0.5 sm:px-2 sm:py-1 text-[10px] sm:text-[11px] font-medium text-warning hover:bg-warning/20 transition-colors disabled:opacity-40";
96
- /** Compact text/select/number input. */
97
- declare const INPUT_COMPACT: "w-full rounded border border-border bg-background px-1.5 py-0.5 sm:px-2 sm:py-1 text-[11px] sm:text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none";
98
- /** Chip-style toggle (zone / class selectors in ZoneRulesEditor). */
99
- declare const CHIP_BASE: "inline-flex items-center gap-1 rounded-full border px-1.5 py-0.5 text-[10px] font-medium transition-colors";
100
- declare const CHIP_ACTIVE: "border-primary/50 bg-primary/15 text-primary";
101
- declare const CHIP_INACTIVE: "border-border bg-surface text-foreground-subtle hover:bg-surface-hover";
102
-
103
- interface MirrorSource {
104
- readonly nodeId: string;
105
- readonly engine: {
106
- readonly format: string;
107
- };
108
- readonly defaults: Readonly<Record<string, AgentAddonConfig>>;
109
- }
110
- interface MirrorInput {
111
- readonly source: MirrorSource;
112
- readonly target: MirrorSource;
113
- readonly catalog: PipelineSchema;
114
- readonly addonIds: readonly string[];
115
- }
116
- type MirrorOutcome = 'exact' | 'mapped' | 'skip';
117
- interface MirrorResultEntry {
118
- readonly addonId: string;
119
- readonly outcome: MirrorOutcome;
120
- readonly modelId: string | null;
121
- readonly reason?: string;
122
- readonly patch: CameraStepOverridePatch | null;
123
- }
124
- declare function mirror(input: MirrorInput): readonly MirrorResultEntry[];
125
-
126
- /**
127
- * phase-config — canonical visual config for CameraPhase values.
128
- *
129
- * Single source of truth for label, color classes, dot class, and
130
- * lucide icon name. Every UI surface (PhaseBadge, CameraStatusStrip,
131
- * CameraAssignmentsTable, DeviceDetail, OverviewTab, NodeLiveTab)
132
- * imports from here instead of hardcoding phase → style mappings.
133
- *
134
- * Icon components are NOT imported here (would pull lucide-react into
135
- * the config module). Consumers import the icon by name themselves:
136
- * `import { [cfg.icon] } from 'lucide-react'`
137
- * or use the provided `PhaseIcon` component from `./phase-icon.tsx`.
138
- */
139
-
140
- interface PhaseVisual {
141
- /** Human-readable label (e.g. "Active", "Load-Shed"). */
142
- readonly label: string;
143
- /** Tailwind text color class (e.g. "text-success"). */
144
- readonly textColor: string;
145
- /** Tailwind border+bg classes for pill/badge containers. */
146
- readonly badgeClass: string;
147
- /** Tailwind class for the status dot (circle indicator). */
148
- readonly dotClass: string;
149
- /** Lucide icon name to use for this phase. */
150
- readonly icon: 'Activity' | 'Eye' | 'AlertTriangle' | 'PauseCircle' | 'PowerOff';
151
- }
152
- declare const PHASE_CONFIG: Record<CameraPhase, PhaseVisual>;
153
- /** Look up phase config with a safe fallback to `watching` for unknown values. */
154
- declare function getPhaseVisual(phase: string): PhaseVisual;
155
-
156
- /**
157
- * Cross-bundle React Context sharing.
158
- *
159
- * Addon page bundles (benchmark, etc.) ship their own bundled copy of
160
- * `@camstack/ui-library`. Without sharing, each bundle calls
161
- * `createContext()` and gets a fresh Context instance — so when the
162
- * bundle's hook reads from this Context, it doesn't match the host
163
- * admin-ui's <Provider> tree, and `useContext()` returns the default
164
- * value (typically `null`) which often causes a `must be used within
165
- * Provider` throw.
166
- *
167
- * This helper stashes Context instances on `globalThis` keyed by a
168
- * unique name, so the SECOND-evaluated copy reuses the host's
169
- * instance instead of creating a duplicate.
170
- *
171
- * Boot order:
172
- * 1. admin-ui's main.tsx evaluates first → globalThis Map is empty
173
- * → creates Context, stores it under `name`.
174
- * 2. Addon bundle evaluates later → globalThis Map has the entry
175
- * → returns the host's Context.
176
- *
177
- * Critical: pick UNIQUE `name`s. Two distinct contexts with the same
178
- * name will silently collide (and TypeScript can't catch it because
179
- * the Map is typed as `Context<unknown>`).
180
- */
181
-
182
- declare global {
183
- var __camstackSharedContexts: Map<string, Context<unknown>> | undefined;
184
- }
185
- declare function createSharedContext<T>(name: string, defaultValue: T): Context<T>;
186
-
187
- declare function ensureMfHostInit(): void;
188
-
189
- type ProviderType = 'frigate' | 'scrypted' | 'reolink' | 'homeAssistant' | 'rtsp';
190
- declare const providerIcons: Record<ProviderType, LucideIcon>;
191
-
192
- type StatusType = 'online' | 'offline' | 'degraded' | 'unknown';
193
- declare const statusIcons: Record<StatusType, LucideIcon>;
194
-
195
- declare const buttonVariants: (props?: ({
196
- variant?: "primary" | "danger" | "secondary" | "ghost" | "outline" | null | undefined;
197
- size?: "sm" | "md" | "lg" | null | undefined;
198
- } & class_variance_authority_types.ClassProp) | undefined) => string;
199
- interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
200
- }
201
- declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
202
-
203
- declare const iconButtonVariants: (props?: ({
204
- variant?: "primary" | "danger" | "secondary" | "ghost" | "outline" | null | undefined;
205
- size?: "sm" | "md" | "lg" | null | undefined;
206
- } & class_variance_authority_types.ClassProp) | undefined) => string;
207
- interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, VariantProps<typeof iconButtonVariants> {
208
- icon: LucideIcon;
209
- 'aria-label': string;
210
- }
211
- declare const IconButton: react.ForwardRefExoticComponent<IconButtonProps & react.RefAttributes<HTMLButtonElement>>;
212
-
213
- declare const badgeVariants: (props?: ({
214
- variant?: "success" | "warning" | "danger" | "info" | "default" | null | undefined;
215
- styleVariant?: "outline" | "solid" | null | undefined;
216
- } & class_variance_authority_types.ClassProp) | undefined) => string;
217
- interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'style'>, VariantProps<typeof badgeVariants> {
218
- style?: 'solid' | 'outline';
219
- }
220
- declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
221
-
222
- declare const cardVariants: (props?: ({
223
- variant?: "flat" | "bordered" | null | undefined;
224
- } & class_variance_authority_types.ClassProp) | undefined) => string;
225
- interface CardProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
226
- }
227
- declare const Card: react.ForwardRefExoticComponent<CardProps & react.RefAttributes<HTMLDivElement>>;
228
-
229
- interface CollapsibleCardProps {
230
- readonly expanded: boolean;
231
- readonly onExpandedChange: (next: boolean) => void;
232
- /** Rendered inside the clickable header row, to the right of the chevron. */
233
- readonly header: ReactNode;
234
- /** Expanded body — rendered below a subtle divider when `expanded === true`. */
235
- readonly children?: ReactNode;
236
- /** Dims the entire card — for steps flagged as disabled/inactive. */
237
- readonly dimmed?: boolean;
238
- /** Hide the chevron (header still click-toggles). Useful for always-expanded views. */
239
- readonly hideChevron?: boolean;
240
- readonly className?: string;
241
- }
242
- declare function CollapsibleCard({ expanded, onExpandedChange, header, children, dimmed, hideChevron, className, }: CollapsibleCardProps): react_jsx_runtime.JSX.Element;
243
-
244
- interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
245
- }
246
- declare const Label: react.ForwardRefExoticComponent<LabelProps & react.RefAttributes<HTMLLabelElement>>;
247
-
248
- declare const separatorVariants: (props?: ({
249
- orientation?: "horizontal" | "vertical" | null | undefined;
250
- } & class_variance_authority_types.ClassProp) | undefined) => string;
251
- interface SeparatorProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof separatorVariants> {
252
- }
253
- declare const Separator: react.ForwardRefExoticComponent<SeparatorProps & react.RefAttributes<HTMLDivElement>>;
254
-
255
- interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
256
- }
257
- declare const Skeleton: react.ForwardRefExoticComponent<SkeletonProps & react.RefAttributes<HTMLDivElement>>;
258
-
259
- declare const inputVariants: (props?: ({
260
- state?: "default" | "error" | null | undefined;
261
- } & class_variance_authority_types.ClassProp) | undefined) => string;
262
- interface InputProps extends InputHTMLAttributes<HTMLInputElement>, VariantProps<typeof inputVariants> {
263
- leftSlot?: ReactNode;
264
- rightSlot?: ReactNode;
265
- }
266
- declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
267
-
268
- interface SelectOption {
269
- value: string;
270
- label: string;
271
- }
272
- interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
273
- options: SelectOption[];
274
- }
275
- declare const Select: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLSelectElement>>;
276
-
277
- interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
278
- }
279
- declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
280
-
281
- interface SwitchProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {
282
- checked: boolean;
283
- onCheckedChange: (checked: boolean) => void;
284
- label?: string;
285
- }
286
- declare const Switch: react.ForwardRefExoticComponent<SwitchProps & react.RefAttributes<HTMLButtonElement>>;
287
-
288
- interface DialogProps {
289
- children: ReactNode;
290
- open?: boolean;
291
- onOpenChange?: (open: boolean) => void;
292
- }
293
- declare function Dialog({ children, open: controlledOpen, onOpenChange }: DialogProps): react_jsx_runtime.JSX.Element;
294
- declare function DialogTrigger({ children, ...props }: HTMLAttributes<HTMLButtonElement>): react_jsx_runtime.JSX.Element;
295
- declare const contentVariants: (props?: ({
296
- width?: "sm" | "md" | "lg" | null | undefined;
297
- } & class_variance_authority_types.ClassProp) | undefined) => string;
298
- interface DialogContentProps extends HTMLAttributes<HTMLDialogElement>, VariantProps<typeof contentVariants> {
299
- }
300
- declare const DialogContent: react.ForwardRefExoticComponent<DialogContentProps & react.RefAttributes<HTMLDialogElement>>;
301
- declare function DialogHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
302
- declare function DialogFooter({ className, ...props }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
303
- declare function DialogTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>): react_jsx_runtime.JSX.Element;
304
- declare function DialogDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>): react_jsx_runtime.JSX.Element;
305
-
306
- declare function Dropdown({ children }: {
307
- children: ReactNode;
308
- }): react_jsx_runtime.JSX.Element;
309
- declare function DropdownTrigger({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>): react_jsx_runtime.JSX.Element;
310
- interface DropdownContentProps extends HTMLAttributes<HTMLDivElement> {
311
- /** Horizontal alignment relative to the trigger. Default: 'start' (left-aligned). */
312
- align?: 'start' | 'end';
313
- /** Pixel offset between trigger and content. Default: 4. */
314
- offset?: number;
315
- }
316
- declare function DropdownContent({ className, children, align, offset, ...props }: DropdownContentProps): react.ReactPortal | null;
317
- interface DropdownItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
318
- icon?: LucideIcon;
319
- variant?: 'default' | 'danger';
320
- }
321
- declare function DropdownItem({ className, icon: Icon, variant, children, onClick, ...props }: DropdownItemProps): react_jsx_runtime.JSX.Element;
322
-
323
- declare function Tooltip({ children }: {
324
- children: ReactNode;
325
- }): react_jsx_runtime.JSX.Element;
326
- declare function TooltipTrigger({ children, ...props }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
327
- declare function TooltipContent({ className, children, ...props }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
328
-
329
- interface PopoverProps {
330
- children: ReactNode;
331
- open?: boolean;
332
- onOpenChange?: (open: boolean) => void;
333
- }
334
- declare function Popover({ children, open: controlledOpen, onOpenChange }: PopoverProps): react_jsx_runtime.JSX.Element;
335
- declare function PopoverTrigger({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>): react_jsx_runtime.JSX.Element;
336
- declare function PopoverContent({ className, children, ...props }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element | null;
337
-
338
- interface TabsProps extends HTMLAttributes<HTMLDivElement> {
339
- value?: string;
340
- onValueChange?: (value: string) => void;
341
- defaultValue?: string;
342
- }
343
- declare function Tabs({ value: controlledValue, onValueChange, defaultValue, className, ...props }: TabsProps): react_jsx_runtime.JSX.Element;
344
- declare function TabsList({ className, ...props }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
345
- interface TabsTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
346
- value: string;
347
- }
348
- declare function TabsTrigger({ value, className, ...props }: TabsTriggerProps): react_jsx_runtime.JSX.Element;
349
- interface TabsContentProps extends HTMLAttributes<HTMLDivElement> {
350
- value: string;
351
- }
352
- declare function TabsContent({ value, className, ...props }: TabsContentProps): react_jsx_runtime.JSX.Element | null;
353
-
354
- interface ScrollAreaProps extends HTMLAttributes<HTMLDivElement> {
355
- }
356
- declare const ScrollArea: react.ForwardRefExoticComponent<ScrollAreaProps & react.RefAttributes<HTMLDivElement>>;
357
-
358
- interface FloatingPanelProps {
359
- /** Panel title displayed in the title bar */
360
- title: string;
361
- /** Called when the close button is clicked */
362
- onClose: () => void;
363
- /** Panel content */
364
- children: ReactNode;
365
- /** Default width in pixels */
366
- defaultWidth?: number;
367
- /** Default height in pixels */
368
- defaultHeight?: number;
369
- /** Minimum width in pixels */
370
- minWidth?: number;
371
- /** Minimum height in pixels */
372
- minHeight?: number;
373
- /** Offset index to stagger multiple panels (adds 30px offset per index) */
374
- offsetIndex?: number;
375
- /** Additional CSS classes for the panel container */
376
- className?: string;
377
- }
378
- declare function FloatingPanel({ title, onClose, children, defaultWidth, defaultHeight, minWidth, minHeight, offsetIndex, className, }: FloatingPanelProps): react_jsx_runtime.JSX.Element;
379
-
380
- interface MobileDrawerProps {
381
- open: boolean;
382
- onClose: () => void;
383
- children: ReactNode;
384
- className?: string;
385
- /** Width of the drawer panel. Default: 'w-64' */
386
- width?: string;
387
- }
388
- declare function MobileDrawer({ open, onClose, children, className, width }: MobileDrawerProps): react_jsx_runtime.JSX.Element;
389
-
390
- interface BottomSheetProps {
391
- open: boolean;
392
- onClose: () => void;
393
- title?: string;
394
- children: ReactNode;
395
- className?: string;
396
- }
397
- declare function BottomSheet({ open, onClose, title, children, className }: BottomSheetProps): react_jsx_runtime.JSX.Element;
398
-
399
- interface BreadcrumbItem {
400
- /** Display label */
401
- label: string;
402
- /** If provided, renders as a clickable link. Last item is never a link. */
403
- href?: string;
404
- /** Click handler — used instead of href for SPA navigation */
405
- onClick?: () => void;
406
- }
407
- interface BreadcrumbProps {
408
- items: BreadcrumbItem[];
409
- className?: string;
410
- }
411
- /**
412
- * Breadcrumb navigation component.
413
- *
414
- * Usage with react-router:
415
- * ```tsx
416
- * <Breadcrumb items={[
417
- * { label: 'Integrations', onClick: () => navigate('/integrations') },
418
- * { label: 'RTSP Cameras', onClick: () => navigate('/integrations/int_0001') },
419
- * { label: 'Front Door' },
420
- * ]} />
421
- * ```
422
- */
423
- declare function Breadcrumb({ items, className }: BreadcrumbProps): react_jsx_runtime.JSX.Element;
424
-
425
- interface SlideOverPanelProps {
426
- readonly open: boolean;
427
- readonly onClose: () => void;
428
- readonly title: ReactNode;
429
- readonly subtitle?: ReactNode;
430
- readonly footer?: ReactNode;
431
- readonly children: ReactNode;
432
- readonly widthClass?: string;
433
- }
434
- declare function SlideOverPanel({ open, onClose, title, subtitle, footer, children, widthClass, }: SlideOverPanelProps): react_jsx_runtime.JSX.Element | null;
435
-
436
- type StepDotState = 'inherit' | 'on' | 'off' | 'na';
437
- interface StepTreeNode {
438
- readonly addonId: string;
439
- readonly addonName: string;
440
- readonly slot: PipelineSlot;
441
- readonly inputClasses: readonly string[];
442
- readonly outputClasses: readonly string[];
443
- readonly children: readonly StepTreeNode[];
444
- }
445
- interface StepTreeMasterProps {
446
- readonly tree: readonly StepTreeNode[];
447
- readonly selectedAddonId: string | null;
448
- readonly onSelect: (addonId: string) => void;
449
- readonly agentDots?: Readonly<Record<string, readonly {
450
- readonly agentNodeId: string;
451
- readonly state: StepDotState;
452
- }[]>>;
453
- readonly className?: string;
454
- }
455
- declare function StepTreeMaster({ tree, selectedAddonId, onSelect, agentDots, className, }: StepTreeMasterProps): react_jsx_runtime.JSX.Element;
456
- /**
457
- * Helper: build a StepTreeNode[] from a `PipelineSchema` by chaining on
458
- * `inputClasses` ⇔ `outputClasses` compatibility. Mirrors the orchestrator
459
- * resolver's `buildTreeFromAddons` logic but yields names only (display
460
- * layer). Addons in the audio-classifier slot become separate roots.
461
- */
462
- declare function buildStepTreeFromSchema(schema: PipelineSchema): readonly StepTreeNode[];
463
-
464
- type EditorMode = 'agent' | 'device';
465
- interface AgentStepEditorProps {
466
- readonly mode: EditorMode;
467
- readonly addon: PipelineAddonSchema;
468
- /** L1 base — always visible as the "inherited" baseline. */
469
- readonly agentDefault: AgentAddonConfig;
470
- readonly agentNodeId: string;
471
- /** Device mode only — current L2.5 patch for (agent, addon). */
472
- readonly currentPatch?: CameraStepOverridePatch | null;
473
- readonly onChangeAgentConfig?: (next: AgentAddonConfig) => void;
474
- readonly onChangePatch?: (next: CameraStepOverridePatch | null) => void;
475
- readonly engineFormat: string;
476
- }
477
- declare function AgentStepEditor(props: AgentStepEditorProps): react_jsx_runtime.JSX.Element;
478
-
479
- interface AgentColumn {
480
- readonly agentNodeId: string;
481
- readonly engineLabel: string;
482
- }
483
- type CellState = {
484
- readonly kind: 'enabled';
485
- readonly modelId: string;
486
- } | {
487
- readonly kind: 'disabled';
488
- } | {
489
- readonly kind: 'na';
490
- };
491
- interface PipelineTreeMatrixProps {
492
- readonly tree: readonly StepTreeNode[];
493
- readonly agents: readonly AgentColumn[];
494
- readonly getCellState: (addonId: string, agentNodeId: string) => CellState;
495
- readonly onCellClick: (addonId: string, agentNodeId: string) => void;
496
- readonly selectedCell: {
497
- readonly addonId: string;
498
- readonly agentNodeId: string;
499
- } | null;
500
- /**
501
- * Optional inline on/off toggle next to each step name. Only useful
502
- * in single-agent mode (per-node pipeline tab) where the row already
503
- * targets one (agent, addon) pair unambiguously. The matrix renders
504
- * the toggle when this callback is set AND `agents.length === 1`.
505
- */
506
- readonly onToggleEnabled?: (addonId: string, next: boolean) => void;
507
- }
508
- declare function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedCell, onToggleEnabled, }: PipelineTreeMatrixProps): react_jsx_runtime.JSX.Element;
509
-
510
- interface NodePickerProps {
511
- readonly selectedNodeId: string;
512
- readonly onSelect: (nodeId: string) => void;
513
- /** Caption shown before the pill bar. Defaults to `Node`. */
514
- readonly label?: string;
515
- /** Hide the leading `Server` icon (compact toolbars). */
516
- readonly hideIcon?: boolean;
517
- /**
518
- * When true, render even when only the hub is online. Useful when
519
- * the surrounding UI relies on the picker as a layout anchor; the
520
- * default hides the picker since there's nothing to choose.
521
- */
522
- readonly alwaysShow?: boolean;
523
- }
524
- declare function NodePicker({ selectedNodeId, onSelect, label, hideIcon, alwaysShow, }: NodePickerProps): react_jsx_runtime.JSX.Element | null;
525
-
526
- type Status = 'online' | 'offline' | 'degraded' | 'unknown';
527
- interface StatusBadgeProps {
528
- status: Status;
529
- showDot?: boolean;
530
- showLabel?: boolean;
531
- size?: 'sm' | 'md';
532
- className?: string;
533
- }
534
- declare function StatusBadge({ status, showDot, showLabel, size, className, }: StatusBadgeProps): react_jsx_runtime.JSX.Element;
535
-
536
- interface ProviderBadgeProps {
537
- provider: ProviderType;
538
- showLabel?: boolean;
539
- className?: string;
540
- }
541
- declare function ProviderBadge({ provider, showLabel, className, }: ProviderBadgeProps): react_jsx_runtime.JSX.Element;
542
-
543
- type SemanticBadgeVariant = 'success' | 'warning' | 'danger' | 'info' | 'neutral';
544
- interface SemanticBadgeProps {
545
- children: react__default.ReactNode;
546
- variant?: SemanticBadgeVariant;
547
- /** Use monospace font (good for versions, codes) */
548
- mono?: boolean;
549
- className?: string;
550
- }
551
- /**
552
- * General-purpose badge with semantic color variants.
553
- * Solid background with dark text for maximum contrast.
554
- */
555
- declare function SemanticBadge({ children, variant, mono, className }: SemanticBadgeProps): react_jsx_runtime.JSX.Element;
556
- interface VersionBadgeProps {
557
- version: string;
558
- preRelease?: boolean;
559
- className?: string;
560
- }
561
- /**
562
- * Version badge — auto-detects pre-release versions.
563
- * Stable = success (green), Pre-release = warning (amber).
564
- */
565
- declare function VersionBadge({ version, preRelease, className }: VersionBadgeProps): react_jsx_runtime.JSX.Element;
566
-
567
- interface FormFieldProps$1 {
568
- label: string;
569
- description?: string;
570
- error?: string;
571
- required?: boolean;
572
- children: ReactNode;
573
- orientation?: 'vertical' | 'horizontal';
574
- className?: string;
575
- }
576
- declare function FormField$1({ label, description, error, required, children, orientation, className, }: FormFieldProps$1): react_jsx_runtime.JSX.Element;
577
-
578
- interface PageHeaderProps {
579
- title: string;
580
- subtitle?: string;
581
- actions?: ReactNode;
582
- className?: string;
583
- }
584
- declare function PageHeader({ title, subtitle, actions, className }: PageHeaderProps): react_jsx_runtime.JSX.Element;
585
-
586
- interface EmptyStateProps {
587
- icon?: LucideIcon;
588
- title: string;
589
- description?: string;
590
- action?: ReactNode;
591
- className?: string;
592
- }
593
- declare function EmptyState({ icon: Icon, title, description, action, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
594
-
595
- interface ConfirmOptions {
596
- title: string;
597
- message: string;
598
- confirmLabel?: string;
599
- cancelLabel?: string;
600
- variant?: 'danger' | 'warning' | 'default';
601
- }
602
- declare function useConfirm(): (options: ConfirmOptions) => Promise<boolean>;
603
- declare function ConfirmDialogProvider({ children }: {
604
- children: ReactNode;
605
- }): react_jsx_runtime.JSX.Element;
606
-
607
- interface StatCardProps {
608
- value: string | number;
609
- label: string;
610
- trend?: {
611
- value: number;
612
- direction: 'up' | 'down';
613
- };
614
- className?: string;
615
- }
616
- declare function StatCard({ value, label, trend, className }: StatCardProps): react_jsx_runtime.JSX.Element;
617
-
618
- interface KeyValueListProps {
619
- items: {
620
- key: string;
621
- value: ReactNode;
622
- }[];
623
- className?: string;
624
- }
625
- declare function KeyValueList({ items, className }: KeyValueListProps): react_jsx_runtime.JSX.Element;
626
-
627
- interface CodeBlockProps {
628
- children: string;
629
- maxHeight?: number;
630
- className?: string;
631
- }
632
- declare function CodeBlock({ children, maxHeight, className }: CodeBlockProps): react_jsx_runtime.JSX.Element;
633
-
634
- type FilterDef = {
635
- type: 'search';
636
- key: string;
637
- placeholder?: string;
638
- } | {
639
- type: 'select';
640
- key: string;
641
- label: string;
642
- options: {
643
- value: string;
644
- label: string;
645
- }[];
646
- } | {
647
- type: 'badge-toggle';
648
- key: string;
649
- options: {
650
- value: string;
651
- label: string;
652
- }[];
653
- };
654
-
655
- interface FilterBarProps {
656
- filters: FilterDef[];
657
- values: Record<string, unknown>;
658
- onChange: (values: Record<string, unknown>) => void;
659
- className?: string;
660
- }
661
- declare function FilterBar({ filters, values, onChange, className }: FilterBarProps): react_jsx_runtime.JSX.Element;
662
-
663
- interface SidebarItemProps {
664
- label: string;
665
- icon: LucideIcon;
666
- href: string;
667
- badge?: string | number;
668
- active?: boolean;
669
- className?: string;
670
- }
671
- declare function SidebarItem({ label, icon: Icon, href, badge, active, className, }: SidebarItemProps): react_jsx_runtime.JSX.Element;
672
-
673
- interface SidebarSection {
674
- label?: string;
675
- items: SidebarItemProps[];
676
- }
677
- interface SidebarProps {
678
- logo?: ReactNode;
679
- sections: SidebarSection[];
680
- footer?: SidebarItemProps[];
681
- onNavigate?: () => void;
682
- className?: string;
683
- }
684
- declare function Sidebar({ logo, sections, footer, onNavigate, className }: SidebarProps): react_jsx_runtime.JSX.Element;
685
-
686
- interface AppShellProps {
687
- sidebar: SidebarProps;
688
- header?: {
689
- breadcrumbs?: {
690
- label: string;
691
- href?: string;
692
- }[];
693
- actions?: ReactNode;
694
- };
695
- /** Content shown in the center of the mobile top bar (e.g. logo) */
696
- mobileLogo?: ReactNode;
697
- /** Content shown on the right side of the mobile top bar (e.g. avatar menu) */
698
- mobileActions?: ReactNode;
699
- children: ReactNode;
700
- className?: string;
701
- }
702
- declare function AppShell({ sidebar, header, mobileLogo, mobileActions, children, className }: AppShellProps): react_jsx_runtime.JSX.Element;
703
-
704
- interface DataTableAction {
705
- label: string;
706
- icon?: LucideIcon;
707
- onClick: () => void;
708
- variant?: 'danger' | 'default';
709
- }
710
- interface DataTableProps<T> {
711
- data: T[];
712
- columns: ColumnDef<T, unknown>[];
713
- sorting?: SortingState;
714
- onSortingChange?: (sorting: SortingState) => void;
715
- filtering?: ColumnFiltersState;
716
- onFilteringChange?: (filtering: ColumnFiltersState) => void;
717
- pagination?: {
718
- page: number;
719
- pageSize: number;
720
- total: number;
721
- };
722
- onPaginationChange?: (pagination: PaginationState) => void;
723
- loading?: boolean;
724
- emptyState?: ReactNode;
725
- rowActions?: (row: T) => DataTableAction[];
726
- onRowClick?: (row: T) => void;
727
- selectable?: boolean;
728
- compact?: boolean;
729
- stickyHeader?: boolean;
730
- className?: string;
731
- /** How to render on mobile. 'scroll' keeps table with horizontal scroll. 'cards' renders each row as a card. Default: 'scroll' */
732
- mobileMode?: 'scroll' | 'cards';
733
- }
734
-
735
- declare function DataTable<T>({ data, columns: userColumns, sorting, onSortingChange, filtering, onFilteringChange, pagination, onPaginationChange, loading, emptyState, rowActions, onRowClick, selectable, compact, stickyHeader, className, mobileMode, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
736
-
737
- interface DeviceCardBadge {
738
- /** Badge label text */
739
- label: string;
740
- /** Optional icon rendered before the label */
741
- icon?: ReactNode;
742
- /** Click handler — makes the badge interactive */
743
- onClick?: () => void;
744
- }
745
- interface DeviceCardAction {
746
- /** Icon to render */
747
- icon: ReactNode;
748
- /** Tooltip / aria-label */
749
- label: string;
750
- /** Click handler */
751
- onClick: () => void;
752
- }
753
- interface DeviceCardProps {
754
- /** Primary title (e.g., device name) */
755
- title: string;
756
- /** Secondary text (e.g., model, IP) */
757
- subtitle?: string;
758
- /** Status: determines the color of the status dot */
759
- status?: 'online' | 'offline' | 'warning' | 'unknown';
760
- /** Whether this card is currently selected */
761
- selected?: boolean;
762
- /** Click handler for the card body */
763
- onClick?: () => void;
764
- /** Clickable badges (e.g., stream profiles) */
765
- badges?: DeviceCardBadge[];
766
- /** Action icons shown at the bottom (e.g., PTZ, events) */
767
- actions?: DeviceCardAction[];
768
- /** Content rendered at the bottom when status is offline (e.g., Connect button) */
769
- offlineAction?: ReactNode;
770
- /** Additional CSS classes */
771
- className?: string;
772
- }
773
- declare function DeviceCard({ title, subtitle, status, selected, onClick, badges, actions, offlineAction, className, }: DeviceCardProps): react_jsx_runtime.JSX.Element;
774
-
775
- interface DeviceGridProps {
776
- /** Grid items */
777
- children: ReactNode;
778
- /** Minimum card width in pixels (default 220) */
779
- minCardWidth?: number;
780
- /** Gap between cards in Tailwind spacing units (default 3) */
781
- gap?: number;
782
- /** Additional CSS classes */
783
- className?: string;
784
- }
785
- declare function DeviceGrid({ children, minCardWidth, gap, className, }: DeviceGridProps): react_jsx_runtime.JSX.Element;
786
-
787
- /**
788
- * Reactive runtime-state read handle as exposed by the codegen
789
- * `DeviceProxy` factory. Same shape useDeviceStateSlice expects —
790
- * defined here so the combinator's selector parameter has a tight
791
- * type without re-importing the codegen file.
792
- */
793
- interface StateSliceHandle<T> {
794
- readonly value: T | undefined;
795
- subscribe(cb: (slice: T | undefined) => void): () => void;
796
- }
797
- interface QueryFn$2<I, O> {
798
- query(input: I): Promise<O>;
799
- }
800
- interface SubscribeFn<I, T> {
801
- subscribe(input: I, opts: {
802
- onData: (evt: {
803
- data: T;
804
- }) => void;
805
- onError?: (err: unknown) => void;
806
- }): {
807
- unsubscribe: () => void;
808
- };
809
- }
810
- /**
811
- * Minimal vanilla tRPC proxy shape. Same contract `useDeviceWebrtc`,
812
- * `useDeviceBattery` etc. use — both `BackendClient.trpc` and an
813
- * addon page's injected `trpc` satisfy this structurally.
814
- *
815
- * The proxy is also passed (cast) into `createDeviceProxy` as the
816
- * `AddonApi` argument — the cap-method dispatchers structurally
817
- * match `client.<cap>.<method>.{query|mutate|subscribe}`.
818
- */
819
- interface UseDeviceProxyTrpc {
820
- readonly deviceManager: {
821
- readonly getBindings: QueryFn$2<{
822
- deviceId: number;
823
- }, DeviceBinding>;
824
- };
825
- readonly live?: {
826
- readonly onEvent: SubscribeFn<{
827
- category: string;
828
- }, {
829
- category?: string;
830
- data?: unknown;
831
- source?: {
832
- type: string;
833
- id: string | number;
834
- };
835
- }>;
836
- };
837
- }
838
- /**
839
- * @returns the proxy, or `null` while bindings are still loading or
840
- * when `deviceId` is null. Re-rendered when bindings change.
841
- */
842
- declare function useDeviceProxy(trpc: UseDeviceProxyTrpc, deviceId: number | null): DeviceProxy | null;
843
- /**
844
- * Companion hook — reads a `SliceHandle` reactively, returning the
845
- * current value and re-rendering on every push from the kernel
846
- * mirror. Pass `dev?.state.battery` etc. as the handle.
847
- *
848
- * const dev = useDeviceProxy(trpc, deviceId)
849
- * const battery = useDeviceStateSlice(dev?.state.battery)
850
- *
851
- * Why a hook (and not just `dev.state.battery.subscribe(...)` inline)?
852
- * React doesn't observe external mutations on its own — a bare
853
- * subscribe call inside a render would fire on every render (memory
854
- * leak), wouldn't trigger a re-render on slice change, and wouldn't
855
- * clean up at unmount. The hook bridges the imperative
856
- * `(value, subscribe)` pair into React's declarative lifecycle via
857
- * `useSyncExternalStore` (the canonical React 18 primitive for
858
- * external stores — handles tearing in concurrent rendering and
859
- * de-dups identical pushes).
860
- */
861
- declare function useDeviceStateSlice<T>(handle: StateSliceHandle<T> | undefined): T | undefined;
862
- /**
863
- * One-line combinator — collapse the common
864
- * `useDeviceProxy + useDeviceStateSlice(dev?.state.<cap>)` pair into a
865
- * single hook. The selector receives the live `DeviceProxy['state']`
866
- * bag (typed against the codegen, so `s.battery` etc. autocomplete)
867
- * and returns one slice handle. Returns the slice value, undefined
868
- * while the binding resolves OR when the slice has no cached push yet.
869
- *
870
- * Idiomatic call-site:
871
- *
872
- * const battery = useDeviceState(trpc, deviceId, (s) => s.battery)
873
- * const zones = useDeviceState(trpc, deviceId, (s) => s.zones)
874
- *
875
- * vs. the manual pair:
876
- *
877
- * const dev = useDeviceProxy(trpc, deviceId)
878
- * const battery = useDeviceStateSlice(dev?.state.battery)
879
- * const zones = useDeviceStateSlice(dev?.state.zones)
880
- *
881
- * Use the manual pair when:
882
- * - you also need the proxy's cap method bag (`dev.zones?.addZone(...)`)
883
- * - you want to share the proxy across multiple slice reads with a
884
- * single binding fetch (the combinator calls useDeviceProxy
885
- * internally, which dedups bindings via React Query in practice
886
- * but spawns one extra subscription per call site)
887
- *
888
- * Use the combinator when reading just one slice — most common case.
889
- */
890
- declare function useDeviceState<T>(trpc: UseDeviceProxyTrpc, deviceId: number | null, select: (state: DeviceProxy['state']) => StateSliceHandle<T>): T | undefined;
891
-
892
- /**
893
- * Shared types + helpers for the DeviceItem composite. Lives outside
894
- * the orchestrator file so every sub-component can import without
895
- * cycles.
896
- *
897
- * - `DeviceItemDevice` / `DeviceItemParent` / `DeviceItemKind` —
898
- * wire-shape mirrors of the `DeviceInfo` row.
899
- * - `DeviceItemVariant` + `VariantDefaults` + `DEFAULTS` +
900
- * `resolveFlags` — the variant→flags resolution pipeline.
901
- * - `ROLE_ICONS` / `TYPE_ICONS` / `deviceLeadIcon` — icon resolution
902
- * for the row's lead icon.
903
- * - `FEATURE_ICON_MAP` / `FEATURE_LABEL_MAP` — for the features
904
- * popover (NEW in Phase 1).
905
- * - Capability gates: `maySupportSwitch`, `isAccessoryChild`,
906
- * `hasMotionTriggerFeature`.
907
- * - `shortStableId` — display-token for stableId tail.
908
- */
909
-
910
- /**
911
- * Mirror of the canonical `DeviceInfo` wire shape (see
912
- * `packages/types/src/capabilities/device-manager.cap.ts`). Every
913
- * `deviceManager.listAll` / `getDevice` / `getChildren` row is
914
- * already this exact shape — call sites pass the raw row through
915
- * without remapping. Lives here as a structural type (not an
916
- * import) so this composite stays decoupled from `@camstack/types`.
917
- */
918
- interface DeviceItemDevice {
919
- readonly id: number;
920
- readonly stableId: string;
921
- readonly addonId: string;
922
- readonly type: string;
923
- readonly name: string;
924
- readonly online: boolean;
925
- /** Soft-disable flag — `true` dims the row + skips live fetches.
926
- * Matches `DeviceInfo.disabled` so the wire row passes through. */
927
- readonly disabled: boolean;
928
- readonly parentDeviceId: number | null;
929
- /** Optional `DeviceRole` string. Present ⇒ this is an accessory. */
930
- readonly role?: string | null;
931
- /** DeviceFeature strings — gates BatteryBadge etc. */
932
- readonly features?: readonly string[];
933
- /** True for ICameraDevice instances — gates snapshot popover. */
934
- readonly isCamera?: boolean;
935
- }
936
- interface DeviceItemParent {
937
- readonly id: number;
938
- readonly name: string;
939
- /**
940
- * Type of the parent device. Optional — when provided, callers can
941
- * distinguish "adopted under a hub/nvr" (renders with extra indent in
942
- * the table view) from a generic accessory parent.
943
- */
944
- readonly type?: string;
945
- }
946
- type DeviceItemKind = 'top-level' | 'adopted' | 'accessory';
947
- declare function deriveDeviceKind(device: Pick<DeviceItemDevice, 'parentDeviceId' | 'role'>): DeviceItemKind;
948
- type DeviceItemVariant = 'minimal' | 'compact' | 'expanded';
949
- type DeviceItemView = 'card' | 'table';
950
- interface DeviceItemProps {
951
- readonly trpc: UseDeviceProxyTrpc;
952
- readonly device: DeviceItemDevice;
953
- readonly variant?: DeviceItemVariant;
954
- /**
955
- * Render mode. `'card'` (default) = flex row + optional accordion
956
- * below. `'table'` = `<tr>` with one `<td>` per logical column.
957
- * Phase 2's `<DeviceList>` wrapper drives this prop; Phase 1
958
- * scaffolds both branches with no current consumer using table.
959
- */
960
- readonly view?: DeviceItemView;
961
- /**
962
- * When true, the row is rendered as an accessory of a parent (Phase 2
963
- * nested-only mode). Adds a subtle background tint + indent on the
964
- * first cell. Has no effect on `view='card'`. Caller provides `true`
965
- * only for the accessory passes inside <DeviceList>.
966
- */
967
- readonly isAccessoryRow?: boolean;
968
- /**
969
- * Indent level for the `<td>` first cell in `view='table'`. Controls
970
- * `pl-N` on the name cell so adopted-under-hub rows can be visually
971
- * nested below their parent without forcing the accessory tint.
972
- *
973
- * 0 → `pl-2` (top-level, no parent)
974
- * 1 → `pl-6` (adopted under a hub/nvr — visual hierarchy hint)
975
- * 2 → `pl-8` (accessory under any parent — strongest indent)
976
- *
977
- * When omitted, the orchestrator derives `2` from `isAccessoryRow` and
978
- * otherwise defaults to `0`. Caller may override (e.g. <DeviceList>
979
- * promoting "adopted-under-hub" rows from 0 → 1).
980
- */
981
- readonly indentLevel?: 0 | 1 | 2;
982
- /**
983
- * Controlled expand state for the children-accordion chevron. When
984
- * BOTH `expanded` and `onToggleExpand` are passed, DeviceItem becomes
985
- * fully controlled; otherwise it falls back to internal state. Used
986
- * by `<TableRowGroup>` to lift expand state to the parent so the
987
- * accessory `<tr>` rows can render based on the same flag the chevron
988
- * flips.
989
- */
990
- readonly expanded?: boolean;
991
- readonly onToggleExpand?: () => void;
992
- readonly integrationIcon?: ReactNode;
993
- readonly parent?: DeviceItemParent | null;
994
- readonly showIntegrationIcon?: boolean;
995
- readonly showParentBadge?: boolean;
996
- readonly showSnapshot?: boolean;
997
- readonly showBattery?: boolean;
998
- readonly showStableId?: boolean;
999
- readonly showId?: boolean;
1000
- readonly showSwitchToggle?: boolean;
1001
- readonly showChildrenAccordion?: boolean;
1002
- readonly children?: readonly DeviceItemDevice[];
1003
- readonly onNavigate?: (deviceId: number) => void;
1004
- readonly className?: string;
1005
- }
1006
-
1007
- /**
1008
- * <DeviceItem> — orchestrator that composes Header / Preview /
1009
- * Features / Actions / StatusDot in a flex row (`view='card'`) or a
1010
- * `<tr>` with one `<td>` per logical column (`view='table'`).
1011
- *
1012
- * Public API contract: identical to the predecessor `device-item.tsx`
1013
- * file so the 5 existing call sites compile unchanged. The new
1014
- * `view` prop defaults to `'card'`.
1015
- */
1016
-
1017
- declare function DeviceItem(props: DeviceItemProps): ReactNode;
1018
-
1019
- type DeviceListView = 'cards' | 'table';
1020
-
1021
- /**
1022
- * <DeviceList> — paginated, filterable, view-toggleable device list.
1023
- *
1024
- * Composes:
1025
- * - useDeviceListUrlState (URL+LS hybrid)
1026
- * - groupTopLevelAndAccessories (top-level vs accessory split)
1027
- * - <Pagination>, <FilterChips>, <DeviceListEmptyState>
1028
- * - <DeviceItem view={view}> per row
1029
- *
1030
- * Realtime: per-page useEventInvalidation calls remain authoritative for
1031
- * Phase 2. Lifting the sync into ui-library would require a context bridge
1032
- * that's out of scope.
1033
- *
1034
- * Search: debounced 300 ms before pushing to URL state. Auto-expands
1035
- * parent rows when search matches an accessory.
1036
- */
1037
-
1038
- interface DeviceListAddonOption {
1039
- readonly id: string;
1040
- readonly name: string;
1041
- readonly icon?: ReactNode;
1042
- }
1043
- interface DeviceListProps {
1044
- readonly devices: readonly DeviceItemDevice[];
1045
- readonly trpc: UseDeviceProxyTrpc;
1046
- readonly defaultView?: DeviceListView;
1047
- readonly filters?: {
1048
- readonly types?: readonly string[];
1049
- readonly addons?: readonly DeviceListAddonOption[];
1050
- };
1051
- /** Pre-applied addon filter — hides the addon-chip group. */
1052
- readonly forceAddon?: string;
1053
- readonly resolveIntegrationIcon?: (addonId: string) => ReactNode | null;
1054
- readonly resolveParent?: (parentId: number) => DeviceItemParent | null;
1055
- readonly onNavigate?: (deviceId: number) => void;
1056
- readonly pageSize?: {
1057
- readonly cards: number;
1058
- readonly table: number;
1059
- };
1060
- readonly urlScope?: 'root' | 'nested';
1061
- /** LocalStorage key prefix. Default 'devices' for root scope, 'integrations:nested' for nested. */
1062
- readonly lsKey?: string;
1063
- }
1064
- declare function DeviceList(props: DeviceListProps): ReactNode;
1065
-
1066
- interface PipelineStepDisplayConfig {
1067
- readonly addonId: string;
1068
- readonly addonName: string;
1069
- readonly slot: PipelineSlot;
1070
- readonly inputClasses: readonly string[];
1071
- readonly outputClasses: readonly string[];
1072
- readonly enabled: boolean;
1073
- readonly modelId: string;
1074
- readonly children: readonly PipelineStepDisplayConfig[];
1075
- /** Independent engine override — only used by audio-classifier steps */
1076
- readonly engine?: PipelineEngineChoice;
1077
- /** UI grouping — steps with the same group are displayed under one heading */
1078
- readonly group?: string;
1079
- /** Current values for the step's configSchema fields */
1080
- readonly settings?: Record<string, unknown>;
1081
- }
1082
- interface PipelineStepProps {
1083
- readonly step: PipelineStepDisplayConfig;
1084
- readonly schema: PipelineAddonSchema | null;
1085
- /** Full schema map so children can look up their own schema */
1086
- readonly allSchemas: ReadonlyMap<string, PipelineAddonSchema>;
1087
- readonly depth?: number;
1088
- readonly onChange: (updated: PipelineStepDisplayConfig) => void;
1089
- readonly onDelete?: (addonId: string) => void;
1090
- readonly readOnly?: boolean;
1091
- /**
1092
- * Toggle mode:
1093
- * - `'simple'` (default) — header shows a single on/off switch that drives
1094
- * `step.enabled` directly. Used on the agent page (`NodePipelineTab`)
1095
- * where toggling IS the final state.
1096
- * - `'threeState'` — header shows a 3-button segmented control
1097
- * `[Inherit | On | Off]`. `overrideState` is the current override value
1098
- * (`true` / `false` / `null` for inherit). When the override changes,
1099
- * `onOverrideChange` fires. `step.enabled` still renders the effective
1100
- * state (inherited agent default OR override). Used on the camera page
1101
- * where the user edits a SPARSE override over the agent baseline.
1102
- */
1103
- readonly toggleMode?: 'simple' | 'threeState';
1104
- /**
1105
- * 3-state override value when `toggleMode === 'threeState'`. `null` or
1106
- * `undefined` means "inherit" (no override active). Ignored in `'simple'` mode.
1107
- */
1108
- readonly overrideState?: boolean | null;
1109
- /** Fired when the user flips the 3-state toggle in `'threeState'` mode. */
1110
- readonly onOverrideChange?: (next: boolean | null) => void;
1111
- /** Agent's default enabled value, shown as an annotation in `'threeState'` mode. */
1112
- readonly inheritedEnabled?: boolean;
1113
- /**
1114
- * Hide the Model dropdown + dynamic configSchema controls inside the
1115
- * expanded config panel. Used on the camera page where the step's
1116
- * model + settings are agent-level — a camera can land on any agent,
1117
- * so exposing agent-level knobs here would be misleading. Agent I/O
1118
- * tags, engine selector (audio), and the step name stay visible.
1119
- */
1120
- readonly hideModelAndSettings?: boolean;
1121
- }
1122
- declare function PipelineStep({ step, schema, allSchemas: _allSchemas, depth: _depth, onChange, onDelete: _onDelete, readOnly, toggleMode, overrideState, onOverrideChange, inheritedEnabled, hideModelAndSettings, }: PipelineStepProps): react_jsx_runtime.JSX.Element;
1123
- declare function ConfigSchemaField({ field, allFields, step, disabled, onChange }: {
1124
- field: ConfigField;
1125
- allFields: readonly ConfigField[];
1126
- step: PipelineStepDisplayConfig;
1127
- disabled: boolean;
1128
- onChange: (updated: PipelineStepDisplayConfig) => void;
1129
- }): react_jsx_runtime.JSX.Element | null;
1130
-
1131
- interface PipelineRuntimeOption {
1132
- readonly id: string;
1133
- readonly label: string;
1134
- readonly available: boolean;
1135
- /** Platform score for this backend (higher = better) */
1136
- readonly platformScore?: number;
1137
- /** Whether this is the best-scored backend */
1138
- readonly isBest?: boolean;
1139
- }
1140
- interface PipelineRuntimeSelectorProps {
1141
- readonly options: readonly PipelineRuntimeOption[];
1142
- readonly value: string;
1143
- readonly onChange: (value: string) => void;
1144
- }
1145
- declare function PipelineRuntimeSelector({ options, value, onChange }: PipelineRuntimeSelectorProps): react_jsx_runtime.JSX.Element;
1146
-
1147
- interface PipelineBuilderProps {
1148
- readonly schema: PipelineSchema;
1149
- readonly steps: readonly PipelineStepDisplayConfig[];
1150
- readonly onChange: (steps: readonly PipelineStepDisplayConfig[]) => void;
1151
- readonly templates: readonly PipelineTemplate[];
1152
- readonly selectedTemplateId: string | null;
1153
- readonly onSelectTemplate: (id: string | null) => void;
1154
- readonly onSaveTemplate: (name: string, steps: readonly PipelineStepDisplayConfig[]) => void;
1155
- readonly onUpdateTemplate: (id: string, steps: readonly PipelineStepDisplayConfig[]) => void;
1156
- readonly onDeleteTemplate: (id: string) => void;
1157
- readonly readOnly?: boolean;
1158
- /** Addon IDs to exclude from the pipeline (e.g. 'motion-detection' for benchmark) */
1159
- readonly excludeAddons?: readonly string[];
1160
- /** Hide the template bar (save/load/delete) */
1161
- readonly hideTemplates?: boolean;
1162
- /** Only show enabled steps (hide disabled addons and placeholders) */
1163
- readonly showOnlyEnabled?: boolean;
1164
- /** Show "Slot: ..." labels above step groups (default: false) */
1165
- readonly showSlotLabels?: boolean;
1166
- /**
1167
- * Toggle mode passed through to every `PipelineStep`:
1168
- * - `'simple'` (default) — single on/off switch, edits `step.enabled` directly.
1169
- * - `'threeState'` — segmented `[Inherit | On | Off]` control that emits
1170
- * override changes via `onOverrideChange` (per addonId). `step.enabled`
1171
- * still reflects the effective state (agent default OR override).
1172
- */
1173
- readonly toggleMode?: 'simple' | 'threeState';
1174
- /** Current override map keyed on `addonId` when `toggleMode === 'threeState'`. */
1175
- readonly overrides?: Readonly<Record<string, boolean>>;
1176
- /** Fires when the user flips a per-addon 3-state toggle. `null` = inherit. */
1177
- readonly onOverrideChange?: (addonId: string, next: boolean | null) => void;
1178
- /** Agent default enabled state per addonId, shown as annotation in `'threeState'` mode. */
1179
- readonly inheritedEnabledByAddon?: Readonly<Record<string, boolean>>;
1180
- /**
1181
- * Hide the Model dropdown + dynamic configSchema controls on every
1182
- * step (passes through to `PipelineStep.hideModelAndSettings`). Used
1183
- * on the camera page where these knobs are agent-level.
1184
- */
1185
- readonly hideModelAndSettings?: boolean;
1186
- }
1187
- declare function PipelineBuilder({ schema, steps, onChange, templates, selectedTemplateId, onSelectTemplate, onSaveTemplate, onUpdateTemplate, onDeleteTemplate, readOnly, excludeAddons, hideTemplates, showOnlyEnabled, showSlotLabels, toggleMode, overrides, onOverrideChange, inheritedEnabledByAddon, hideModelAndSettings, }: PipelineBuilderProps): react_jsx_runtime.JSX.Element;
1188
-
1189
- /**
1190
- * Detection class colors — single source of truth.
1191
- *
1192
- * Used by: DetectionCanvas (UI), result-annotator (server-side SVG),
1193
- * admin-ui event viewer, and any other place that visualizes detections.
1194
- */
1195
- /** Fixed colors for known detection classes */
1196
- declare const CLASS_COLORS: Readonly<Record<string, string>>;
1197
- /** Primary/default color when nothing else matches */
1198
- declare const DEFAULT_COLOR = "#f59e42";
1199
- /**
1200
- * Get the color for a detection class name.
1201
- * Returns a fixed color for known classes, or a deterministic hash-based color for unknown ones.
1202
- */
1203
- declare function getClassColor(className: string, customColors?: Readonly<Record<string, string>>): string;
1204
-
1205
- /** Legacy alias kept so pre-rework consumers don't need a coordinated rename. */
1206
- type Detection = ObjectDetection;
1207
- interface DetectionCanvasProps {
1208
- /** Image source (data URL or regular URL) */
1209
- readonly src: string | null;
1210
- /** Image dimensions (used for bbox coordinate mapping) */
1211
- readonly imageWidth: number;
1212
- readonly imageHeight: number;
1213
- /** Detections to overlay — flat list (first-level + details). */
1214
- readonly detections?: readonly ObjectDetection[];
1215
- /** Custom class → hex color mapping (merged with defaults) */
1216
- readonly classColors?: Readonly<Record<string, string>>;
1217
- /** Aspect ratio CSS value (default: auto based on image dimensions) */
1218
- readonly aspectRatio?: string;
1219
- /** Additional CSS classes on the container */
1220
- readonly className?: string;
1221
- /** Placeholder content when no image is loaded */
1222
- readonly placeholder?: ReactNode;
1223
- /** Show confidence percentage in bbox labels */
1224
- readonly showConfidence?: boolean;
1225
- /** Minimum confidence to display (0-1, default: 0) */
1226
- readonly minConfidence?: number;
1227
- /** Border width for bboxes in px (default: 2) */
1228
- readonly borderWidth?: number;
1229
- }
1230
- declare function DetectionCanvas({ src, imageWidth, imageHeight, detections, classColors, aspectRatio, className, placeholder, showConfidence, minConfidence, borderWidth, }: DetectionCanvasProps): react_jsx_runtime.JSX.Element;
1231
-
1232
- interface DetectionResultTreeProps {
1233
- readonly detections: readonly ObjectDetection[];
1234
- readonly classColors?: Readonly<Record<string, string>>;
1235
- readonly className?: string;
1236
- /** Set of detection ids that are hidden */
1237
- readonly hiddenKeys?: ReadonlySet<string>;
1238
- /** Callback when a detection's visibility is toggled */
1239
- readonly onToggleVisibility?: (key: string, visible: boolean) => void;
1240
- }
1241
- declare function DetectionResultTree({ detections, classColors, className, hiddenKeys, onToggleVisibility, }: DetectionResultTreeProps): react_jsx_runtime.JSX.Element;
1242
-
1243
- /**
1244
- * StepTimings — displays pipeline execution timings per step.
1245
- */
1246
- interface StepTimingsProps {
1247
- readonly timings: Readonly<Record<string, number>>;
1248
- readonly totalMs?: number;
1249
- readonly className?: string;
1250
- }
1251
- declare function StepTimings({ timings, totalMs, className }: StepTimingsProps): react_jsx_runtime.JSX.Element | null;
1252
-
1253
- /**
1254
- * ImageSelector — chip-style picker for reference media + upload button.
1255
- * Despite the historical name it's media-agnostic: pass `accept` to
1256
- * filter the file picker (defaults to `image/*`). Used by both the
1257
- * Image Tester and the Audio Tester so the two tabs share the exact
1258
- * same selection UI.
1259
- */
1260
- interface ReferenceImage {
1261
- readonly id?: string;
1262
- readonly filename: string;
1263
- readonly sizeKB?: number;
1264
- }
1265
- interface ImageSelectorProps {
1266
- readonly images: readonly ReferenceImage[];
1267
- readonly selectedFilename: string;
1268
- readonly uploadedName?: string;
1269
- readonly onSelect: (filename: string) => void;
1270
- readonly onUpload: (base64: string, filename: string, dataUrl: string) => void;
1271
- readonly className?: string;
1272
- /** File picker `accept` value. Default: `image/*`. */
1273
- readonly accept?: string;
1274
- /** Override the upload button label. Default: `Upload...`. */
1275
- readonly uploadLabel?: string;
1276
- }
1277
- declare function ImageSelector({ images, selectedFilename, uploadedName, onSelect, onUpload, className, accept, uploadLabel, }: ImageSelectorProps): react_jsx_runtime.JSX.Element;
1278
-
1279
- /**
1280
- * InferenceConfigSelector — cascading selectors for runtime/backend/model.
1281
- *
1282
- * Used by benchmark Engine tab, Image Tester pipeline steps, and admin-ui
1283
- * pipeline configuration. Shows only valid combinations based on capabilities.
1284
- */
1285
- interface InferenceBackendOption {
1286
- readonly id: string;
1287
- readonly label: string;
1288
- readonly available: boolean;
1289
- }
1290
- interface InferenceModelOption {
1291
- readonly id: string;
1292
- readonly name: string;
1293
- readonly downloaded?: boolean;
1294
- }
1295
- interface InferenceAgentOption {
1296
- readonly id: string;
1297
- readonly name: string;
1298
- readonly status: 'online' | 'offline' | 'busy';
1299
- }
1300
- interface InferenceConfigSelectorProps {
1301
- readonly runtime: 'node' | 'python';
1302
- readonly backend: string;
1303
- readonly modelId: string;
1304
- readonly agentId?: string;
1305
- readonly runtimes: readonly {
1306
- value: string;
1307
- label: string;
1308
- available: boolean;
1309
- }[];
1310
- readonly backends: readonly InferenceBackendOption[];
1311
- readonly models: readonly InferenceModelOption[];
1312
- readonly agents?: readonly InferenceAgentOption[];
1313
- readonly onRuntimeChange: (rt: 'node' | 'python') => void;
1314
- readonly onBackendChange: (id: string) => void;
1315
- readonly onModelChange: (id: string) => void;
1316
- readonly onAgentChange?: (id: string) => void;
1317
- readonly layout?: 'horizontal' | 'vertical' | 'grid';
1318
- readonly className?: string;
1319
- /** Show agent selector (default: false) */
1320
- readonly showAgent?: boolean;
1321
- }
1322
- declare function InferenceConfigSelector({ runtime, backend, modelId, agentId, runtimes, backends, models, agents, onRuntimeChange, onBackendChange, onModelChange, onAgentChange, layout, className, showAgent, }: InferenceConfigSelectorProps): react_jsx_runtime.JSX.Element;
1323
-
1324
- /**
1325
- * Standard props for addon page components.
1326
- *
1327
- * Every addon page receives these props from the AddonPageLoader in admin-ui.
1328
- * Use this type for your page's default export:
1329
- *
1330
- * ```tsx
1331
- * import type { AddonPageProps } from '@camstack/ui'
1332
- * import { trpc } from '@camstack/ui-library'
1333
- *
1334
- * export default function MyAddonPage({ theme }: AddonPageProps) {
1335
- * // Typed React-Query hooks via the shared proxy.
1336
- * const { data } = trpc.system.health.useQuery()
1337
- * return <pre>{JSON.stringify(data)}</pre>
1338
- * }
1339
- * ```
1340
- *
1341
- * The `trpc` prop is the vanilla SDK client (BackendClient.trpc) and
1342
- * remains available for non-React contexts. Inside React components
1343
- * prefer the typed `trpc.X.useQuery / useMutation / useSubscription`
1344
- * hooks imported from `@camstack/ui-library` — they share the same
1345
- * QueryClient + WS client as the host admin-ui and therefore play nice
1346
- * with cache invalidation, suspense, and the rest of React Query.
1347
- */
1348
-
1349
- interface AddonPageProps {
1350
- /** Vanilla tRPC client — fully typed access for non-React call sites. */
1351
- readonly trpc: TRPCClient<AppRouter>;
1352
- /** Current theme state */
1353
- readonly theme: {
1354
- readonly isDark: boolean;
1355
- };
1356
- /** Navigate to a route within the admin UI */
1357
- readonly navigate: (path: string) => void;
1358
- }
1359
-
1360
- interface MountAddonPageOptions {
1361
- /** Backend server URL (default: 'https://localhost:4443') */
1362
- serverUrl?: string;
1363
- /** Title shown in the dev toolbar */
1364
- title?: string;
1365
- /** Root element ID (default: 'root') */
1366
- rootId?: string;
1367
- }
1368
- /**
1369
- * Mount an addon page component with the full dev shell.
1370
- *
1371
- * @param PageComponent - The addon page component (must accept AddonPageProps)
1372
- * @param options - Configuration options
1373
- */
1374
- declare function mountAddonPage(PageComponent: (props: AddonPageProps) => React.ReactNode, options?: MountAddonPageOptions): void;
1375
-
1376
- /** Probe state for a single field — exported for callers that need to track probe lifecycle externally. */
1377
- interface ProbeState {
1378
- status: 'probing' | 'ok' | 'error';
1379
- result?: FieldProbeResult;
1380
- }
1381
- interface FormFieldProps {
1382
- field: ConfigField;
1383
- values: Record<string, unknown>;
1384
- onChange: (key: string, value: unknown) => void;
1385
- disabled?: boolean;
1386
- translationFn?: TranslationFn;
1387
- /**
1388
- * Dedicated probe callback — used by the device-creation dialog where
1389
- * the device doesn't exist yet so the generic `onAction` routing
1390
- * cannot resolve an addon owner. For existing-device forms prefer
1391
- * `onAction` with action `'test-probe'`: the probe field falls back
1392
- * to it when `onTestField` is absent, so the two paths converge.
1393
- */
1394
- onTestField?: (key: string, value: unknown) => Promise<FieldProbeResult>;
1395
- /** External probe result (from "Test All" button) */
1396
- externalProbe?: {
1397
- status: 'probing' | 'ok' | 'error';
1398
- result?: FieldProbeResult;
1399
- };
1400
- /**
1401
- * Inline-action callback. Fired by icon buttons on any field
1402
- * (copy-value, regenerate-rtsp-token, …) and by the probe field's
1403
- * Test button when `onTestField` is not provided — in that case the
1404
- * action name is `'test-probe'` and the current field value flows
1405
- * through the third arg so the handler can probe it.
1406
- *
1407
- * Returns `Promise<unknown>` (not `void`) because some actions yield
1408
- * a result the caller wants (the probe returns a `FieldProbeResult`).
1409
- */
1410
- onAction?: (action: string, key: string, value?: unknown) => Promise<unknown>;
1411
- /** All fields in the section — used to resolve defaults for showWhen conditions */
1412
- allFields?: readonly ConfigField[];
1413
- }
1414
- declare function NodeSelectField({ field, value, onChange, disabled, translationFn, }: {
1415
- field: ConfigNodeSelectField;
1416
- value: unknown;
1417
- onChange: (v: unknown) => void;
1418
- disabled?: boolean;
1419
- translationFn?: TranslationFn;
1420
- }): react_jsx_runtime.JSX.Element;
1421
- declare function NodeMultiSelectField({ field, value, onChange, disabled, translationFn, }: {
1422
- field: ConfigNodeMultiSelectField;
1423
- value: unknown;
1424
- onChange: (v: unknown) => void;
1425
- disabled?: boolean;
1426
- translationFn?: TranslationFn;
1427
- }): react_jsx_runtime.JSX.Element;
1428
- /**
1429
- * Resolve a `ConfigCondition` against the form's flat values bag and the
1430
- * sibling-field list (used to recover schema defaults when the
1431
- * referenced field hasn't been touched yet). Returns `true` for fields
1432
- * with no `showWhen` — i.e. always visible — and for fields whose
1433
- * condition is missing a recognised operator (forward-compat: a future
1434
- * operator added to `ConfigCondition` won't accidentally hide every
1435
- * field on older clients).
1436
- *
1437
- * Exported so callers (FormBuilder section renderer, future
1438
- * sub-tab visibility checks, …) can pre-evaluate which fields would be
1439
- * rendered without instantiating a React subtree.
1440
- */
1441
- declare function isFieldVisible(field: ConfigField, values: Record<string, unknown>, allFields?: readonly ConfigField[]): boolean;
1442
- declare function FormField({ field, values, onChange, disabled, translationFn, onTestField, externalProbe, allFields, onAction }: FormFieldProps): react_jsx_runtime.JSX.Element | null;
1443
-
1444
- type TranslationFn = (key: string) => string;
1445
- interface FormBuilderProps {
1446
- schema: ConfigUISchema;
1447
- values: Record<string, unknown>;
1448
- onChange: (values: Record<string, unknown>) => void;
1449
- disabled?: boolean;
1450
- translationFn?: TranslationFn;
1451
- onTestField?: (key: string, value: unknown) => Promise<FieldProbeResult>;
1452
- /** External probe results from useProbeAll hook */
1453
- probeResults?: Record<string, ProbeState>;
1454
- /** Callback to clear a probe result when a field value changes */
1455
- onClearProbe?: (key: string) => void;
1456
- }
1457
- declare function ConfigFormBuilder({ schema, values, onChange, disabled, translationFn, onTestField, probeResults, onClearProbe }: FormBuilderProps): react_jsx_runtime.JSX.Element;
1458
-
1459
- interface AddonGlobalSettingsFormTrpc {
1460
- addonSettings: {
1461
- getGlobalSettings: {
1462
- query: (input: {
1463
- addonId: string;
1464
- nodeId?: string;
1465
- overlay?: Record<string, unknown>;
1466
- }) => Promise<ConfigUISchemaWithValues | null>;
1467
- };
1468
- updateGlobalSettings: {
1469
- mutate: (input: {
1470
- addonId: string;
1471
- nodeId?: string;
1472
- patch: Record<string, unknown>;
1473
- }) => Promise<unknown>;
1474
- };
1475
- };
1476
- }
1477
- interface AddonGlobalSettingsFormProps {
1478
- readonly trpc: AddonGlobalSettingsFormTrpc;
1479
- readonly addonId: string;
1480
- readonly nodeId: string;
1481
- readonly title?: string;
1482
- readonly disabled?: boolean;
1483
- readonly onAfterChange?: () => void;
1484
- /** Bump to force refetch (e.g. after an external mutation). */
1485
- readonly refreshToken?: number;
1486
- /**
1487
- * Render as collapsible. When true, the form body is hidden until
1488
- * the operator expands the header (click). Defaults to open so
1489
- * callers that always want the form visible don't have to opt out.
1490
- */
1491
- readonly collapsible?: boolean;
1492
- /** When `collapsible`, start expanded (true) or collapsed (false). Defaults to false. */
1493
- readonly defaultOpen?: boolean;
1494
- /**
1495
- * - `'persist'` (default): edits call `updateGlobalSettings` and
1496
- * re-fetch — the live store is mutated. Use in settings editors
1497
- * (NodePipelineTab, device details).
1498
- * - `'override'`: edits stay local (never touch the store).
1499
- * `onOverrideChange` receives the current override values on
1500
- * every edit so the caller can pass them to a per-run action.
1501
- * Use in the benchmark tabs — operator tweaks for a single
1502
- * bench run without mutating the addon's saved settings.
1503
- */
1504
- readonly mode?: 'persist' | 'override';
1505
- /**
1506
- * Called on every edit when `mode: 'override'`. `patch` is the sparse
1507
- * diff vs the persisted baseline (only the fields the operator touched).
1508
- * `effective` is the baseline merged with the patch — every field a
1509
- * downstream action might need, with the operator's override applied.
1510
- * Callers that need to emit a full engine triple (runtime+backend+format)
1511
- * should read from `effective`, not `patch`, so partial edits (e.g.
1512
- * operator tweaks only `device`) still produce a complete payload.
1513
- */
1514
- readonly onOverrideChange?: (patch: Record<string, unknown>, effective: Record<string, unknown>) => void;
1515
- }
1516
- declare function AddonGlobalSettingsForm({ trpc, addonId, nodeId, title, disabled, onAfterChange, refreshToken, collapsible, defaultOpen, mode, onOverrideChange, }: AddonGlobalSettingsFormProps): react_jsx_runtime.JSX.Element;
1517
-
1518
- interface MotionZone {
1519
- readonly x: number;
1520
- readonly y: number;
1521
- readonly w: number;
1522
- readonly h: number;
1523
- readonly intensity: number;
1524
- }
1525
- interface MotionState {
1526
- readonly zones: readonly MotionZone[];
1527
- readonly frameWidth: number;
1528
- readonly frameHeight: number;
1529
- }
1530
- interface DetectionState {
1531
- readonly detections: readonly ObjectDetection[];
1532
- readonly frameWidth: number;
1533
- readonly frameHeight: number;
1534
- }
1535
- interface MotionRawBox {
1536
- readonly bbox: readonly [number, number, number, number];
1537
- readonly changeScore: number;
1538
- }
1539
- interface MotionRawState {
1540
- readonly boxes: readonly MotionRawBox[];
1541
- readonly frameWidth: number;
1542
- readonly frameHeight: number;
1543
- readonly motionScore: number;
1544
- }
1545
- interface DeviceDetections {
1546
- readonly motion: MotionState | null;
1547
- readonly motionRaw: MotionRawState | null;
1548
- readonly detection: DetectionState | null;
1549
- readonly phase: string;
1550
- }
1551
- interface LiveOnEvent {
1552
- subscribe: (input: {
1553
- category: string;
1554
- }, opts: {
1555
- onData: (event: unknown) => void;
1556
- }) => {
1557
- unsubscribe: () => void;
1558
- };
1559
- }
1560
- interface UseDetectionsTrpc {
1561
- live?: {
1562
- onEvent?: LiveOnEvent;
1563
- };
1564
- }
1565
- declare function useDeviceDetections(trpc: UseDetectionsTrpc, deviceId: number | null): DeviceDetections;
1566
-
1567
- interface DetectionOverlayProps {
1568
- readonly detections: DeviceDetections;
1569
- readonly showMotionZones?: boolean;
1570
- readonly showMotionRaw?: boolean;
1571
- readonly showDetections?: boolean;
1572
- readonly showPhaseIndicator?: boolean;
1573
- }
1574
- declare function DetectionOverlay({ detections: { motion, motionRaw, detection, phase }, showMotionZones, showMotionRaw, showDetections, showPhaseIndicator, }: DetectionOverlayProps): react_jsx_runtime.JSX.Element | null;
1575
-
1576
- type PlayerConnectionState = 'connecting' | 'playing' | 'error' | 'disconnected' | 'idle';
1577
- /**
1578
- * Signaling function for WebRTC connection.
1579
- * Called by the player to establish the WebRTC session.
1580
- * Must return an RTCSessionDescription (the server's offer or answer depending on mode).
1581
- *
1582
- * Server-offer mode (default):
1583
- * 1. signalingFn is called with streamId → returns { sessionId, sdpOffer }
1584
- * 2. Player sets remote description (server offer), creates answer
1585
- * 3. Player calls answerFn(sessionId, sdpAnswer) to complete
1586
- *
1587
- * WHEP mode (legacy):
1588
- * 1. Player creates offer, gathers ICE
1589
- * 2. signalingFn is called with the client SDP offer → returns sdpAnswer
1590
- * 3. Player sets remote description (answer)
1591
- */
1592
- interface SignalingResult {
1593
- /** Server-offer mode: session ID + SDP offer from server */
1594
- sessionId: string;
1595
- sdpOffer: string;
1596
- }
1597
- /**
1598
- * Client-side capabilities sent to the server at session creation.
1599
- * The server uses these to pick the best native source for adaptive
1600
- * streams (e.g. a 320×180 thumbnail player on a slow link gets the
1601
- * camera's low stream rather than ffmpeg-transcoded 4K).
1602
- *
1603
- * All fields are optional — when omitted the server defaults to its
1604
- * highest-quality registered source.
1605
- */
1606
- interface ClientStreamHints {
1607
- viewportWidth?: number;
1608
- viewportHeight?: number;
1609
- devicePixelRatio?: number;
1610
- downlinkMbps?: number;
1611
- prefersTier?: string;
1612
- }
1613
- interface CameraStreamPlayerProps {
1614
- /** Server base URL (e.g. window.location.origin) */
1615
- serverUrl: string;
1616
- /**
1617
- * Stable key used for React reconciliation (the player remounts when
1618
- * this changes), the snapshot filename, and WHEP fallback URL. The
1619
- * value is opaque to the player — no parsing, no semantic meaning.
1620
- * Typical values: a `StreamChoice.id` (`'profile:high'`, `'stream:native:main'`).
1621
- */
1622
- streamKey: string;
1623
- /** Human-readable label shown in overlay */
1624
- label?: string;
1625
- /** Auto-play on mount (default: true) */
1626
- autoPlay?: boolean;
1627
- /** Start muted (default: true) */
1628
- muted?: boolean;
1629
- /** Show toolbar controls (default: true) */
1630
- showControls?: boolean;
1631
- /** Additional CSS classes for the root container */
1632
- className?: string;
1633
- /** Called on connection state change */
1634
- onStateChange?: (state: PlayerConnectionState) => void;
1635
- /** Called on error */
1636
- onError?: (error: string) => void;
1637
- /** Custom overlay rendered on top of the video */
1638
- overlay?: ReactNode;
1639
- /**
1640
- * Create a WebRTC session (server-offer signaling). When provided,
1641
- * uses server-offer mode instead of WHEP. The caller closes over the
1642
- * target (profile / cam-stream / adaptive) and any device context;
1643
- * the player just hands it the auto-derived `hints` (viewport,
1644
- * downlink) so the server can score adaptive selections.
1645
- */
1646
- createSession?: (hints?: ClientStreamHints) => Promise<SignalingResult>;
1647
- /**
1648
- * Send the client's SDP answer (server-offer signaling).
1649
- * Required when createSession is provided.
1650
- */
1651
- sendAnswer?: (sessionId: string, sdpAnswer: string) => Promise<void>;
1652
- /** Explicitly close the WebRTC session on server (cleanup on unmount). */
1653
- closeSession?: (sessionId: string) => Promise<void>;
1654
- /**
1655
- * Override client hints sent to the server at session creation.
1656
- * Values provided here replace the auto-computed browser values.
1657
- * Use for network simulation (benchmark) or manual tier forcing.
1658
- */
1659
- hintsOverride?: Partial<ClientStreamHints>;
1660
- }
1661
- declare function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay, muted: initialMuted, showControls, className, onStateChange, onError, overlay, createSession, sendAnswer, closeSession, hintsOverride, }: CameraStreamPlayerProps): react_jsx_runtime.JSX.Element;
1662
-
1663
- /**
1664
- * Discriminated WebRTC target — same shape as the backend cap. Kept
1665
- * locally on the StreamChoice so consumers don't need to import from
1666
- * `@camstack/types` to render a panel.
1667
- */
1668
- type StreamChoiceTarget = {
1669
- readonly kind: 'adaptive';
1670
- } | {
1671
- readonly kind: 'profile';
1672
- readonly profile: 'high' | 'mid' | 'low';
1673
- } | {
1674
- readonly kind: 'cam-stream';
1675
- readonly camStreamId: string;
1676
- };
1677
- interface StreamChoice {
1678
- /**
1679
- * Stable identifier for React keys, dropdown values, and the
1680
- * player's `streamKey` prop. Opaque to the panel — typical values:
1681
- * `'adaptive'`, `'profile:high'`, `'stream:native:main'`.
1682
- */
1683
- readonly id: string;
1684
- /** Display label (e.g. "Adaptive", "HIGH (3840×2160)", "Native main"). */
1685
- readonly label: string;
1686
- /** Structured WebRTC target — passed verbatim to `createSession`. */
1687
- readonly target: StreamChoiceTarget;
1688
- /** Live broker status (null if unavailable). */
1689
- readonly status?: string | null;
1690
- /** Input FPS from camera (null if unavailable). */
1691
- readonly inputFps?: number | null;
1692
- /** Decoded FPS (null if unavailable). */
1693
- readonly decodeFps?: number | null;
1694
- /** Bitrate in kbps (null if unavailable). */
1695
- readonly bitrateKbps?: number | null;
1696
- }
1697
- interface StreamStats {
1698
- readonly status: string;
1699
- readonly inputFps: number;
1700
- readonly decodeFps: number;
1701
- readonly uptimeMs: number;
1702
- }
1703
- interface StreamPanelProps {
1704
- readonly serverUrl: string;
1705
- readonly createSession: (target: StreamChoiceTarget, hints?: ClientStreamHints) => Promise<SignalingResult>;
1706
- readonly sendAnswer: (sessionId: string, sdpAnswer: string) => Promise<void>;
1707
- readonly closeSession?: (sessionId: string) => Promise<void>;
1708
- /** Available streams. If omitted or single entry, no dropdown shown. */
1709
- readonly streams?: readonly StreamChoice[];
1710
- /** Currently active StreamChoice id. Defaults to first stream. */
1711
- readonly activeStreamId?: string;
1712
- /** Called when user selects a different stream (StreamChoice id). */
1713
- readonly onStreamChange?: (id: string) => void;
1714
- readonly deviceName?: string;
1715
- /** Pipeline phase from useDeviceDetections (e.g. "active", "watching") */
1716
- readonly phase?: string;
1717
- /** Pipeline metrics from useDeviceWebrtc. If provided, overrides phase and adds detection fps. */
1718
- readonly pipelineMetrics?: {
1719
- phase: string;
1720
- detectionFps: number;
1721
- avgInferenceMs: number;
1722
- } | null;
1723
- /** Detection data from useDeviceDetections hook. If omitted, no overlays. */
1724
- readonly detections?: DeviceDetections;
1725
- /** Initial state for detection overlay (default: true) */
1726
- readonly defaultShowDetections?: boolean;
1727
- /** Initial state for motion overlay (default: false) */
1728
- readonly defaultShowMotion?: boolean;
1729
- readonly streamStats?: StreamStats;
1730
- /** Auto-play on mount (default: true) */
1731
- readonly autoPlay?: boolean;
1732
- /** Show play/stop toggle + snapshot preview when stopped (default: false) */
1733
- readonly showPlayStop?: boolean;
1734
- /** Snapshot source URL (data: URI). Only used when showPlayStop=true. */
1735
- readonly snapshotSrc?: string | null;
1736
- /** Whether snapshot is currently loading */
1737
- readonly snapshotLoading?: boolean;
1738
- /** Callback to refresh snapshot */
1739
- readonly onRefreshSnapshot?: () => void;
1740
- /** Show stream stats in header (fps, uptime) (default: false) */
1741
- readonly showStreamStats?: boolean;
1742
- readonly children?: ReactNode;
1743
- /**
1744
- * Extra overlay node composited on top of the video, alongside the
1745
- * built-in detection overlay. Used by callers to layer device-scoped
1746
- * controls (PTZOverlay, AudioPTT, ...) without forking the panel.
1747
- */
1748
- readonly extraOverlay?: ReactNode;
1749
- /**
1750
- * Whether the device supports PTZ. When true, the header shows a
1751
- * "PTZ" toggle next to detect/motion.
1752
- */
1753
- readonly ptzAvailable?: boolean;
1754
- /**
1755
- * Controlled visibility of the PTZ overlay. Drives both the
1756
- * header button highlight and (combined with `ptzOverlay`) overlay
1757
- * rendering. Caller computes the final value (e.g. OR with an
1758
- * external "force on" surface like a floating PTZ panel) and
1759
- * passes it down here.
1760
- */
1761
- readonly ptzShown?: boolean;
1762
- /**
1763
- * Overlay rendered ON the live video when `ptzShown` is true.
1764
- * Typically a `<PTZOverlay controls={...} mode="overlay" />` from
1765
- * ui-library. Combined with `extraOverlay` in the player overlay
1766
- * slot — both render together when active.
1767
- */
1768
- readonly ptzOverlay?: ReactNode;
1769
- /**
1770
- * Notified when the user clicks the in-header PTZ toggle. The
1771
- * caller updates its source of truth for `ptzShown`. No-op if
1772
- * omitted (button stays inert).
1773
- */
1774
- readonly onPtzToggle?: () => void;
1775
- /**
1776
- * Whether the device supports two-way audio (intercom). When true,
1777
- * the header shows an "Intercom" toggle next to detect/motion that
1778
- * lets the operator open the floating intercom panel without leaving
1779
- * the stream view.
1780
- */
1781
- readonly intercomAvailable?: boolean;
1782
- /**
1783
- * Controlled visibility of the intercom panel — drives the button's
1784
- * highlight state. The caller (which owns the floating-panel state)
1785
- * passes `true` while its intercom panel is open.
1786
- */
1787
- readonly intercomShown?: boolean;
1788
- /**
1789
- * Notified when the user clicks the in-header intercom toggle. The
1790
- * caller flips its panel state. No-op if omitted (button inert).
1791
- */
1792
- readonly onIntercomToggle?: () => void;
1793
- /**
1794
- * When true, drops the panel's outer rounded card chrome (border,
1795
- * rounded corners, background). Use when embedding into another
1796
- * surface that already provides framing — e.g. the device-detail
1797
- * left-column hero where the panel is one row of a larger card.
1798
- */
1799
- readonly chromeless?: boolean;
1800
- readonly className?: string;
1801
- }
1802
- declare function StreamPanel({ serverUrl, createSession, sendAnswer, closeSession, streams, activeStreamId: controlledStreamId, onStreamChange, deviceName, phase, pipelineMetrics, detections, defaultShowDetections, defaultShowMotion, streamStats, autoPlay, showPlayStop, snapshotSrc, snapshotLoading, onRefreshSnapshot, showStreamStats, children, extraOverlay, ptzAvailable, ptzShown, ptzOverlay, onPtzToggle, intercomAvailable, intercomShown, onIntercomToggle, chromeless, className, }: StreamPanelProps): react_jsx_runtime.JSX.Element;
1803
-
1804
- interface LoginFormProps {
1805
- onLogin: (username: string, password: string) => Promise<void>;
1806
- serverUrl?: string;
1807
- logoSrc?: string;
1808
- error?: string;
1809
- className?: string;
1810
- }
1811
- declare function LoginForm({ onLogin, serverUrl, logoSrc, error: externalError, className, }: LoginFormProps): react_jsx_runtime.JSX.Element;
1812
-
1813
- interface DevShellProps {
1814
- children: (props: {
1815
- trpc: TRPCClient<AppRouter>;
1816
- theme: UseThemeModeReturn;
1817
- }) => ReactNode;
1818
- serverUrl?: string;
1819
- title?: string;
1820
- }
1821
- interface DevShellContextValue {
1822
- trpc: TRPCClient<AppRouter>;
1823
- token: string;
1824
- logout: () => void;
1825
- }
1826
- declare function useDevShell(): DevShellContextValue;
1827
- declare function DevShell({ children, serverUrl, title, }: DevShellProps): react_jsx_runtime.JSX.Element;
1828
-
1829
- interface AudioWaveformProps {
1830
- /** Raw audio samples (mono Float32Array, -1..1 range) */
1831
- readonly samples: Float32Array | null;
1832
- /** Sample rate in Hz (for time axis labels) */
1833
- readonly sampleRate?: number;
1834
- /** Height in pixels */
1835
- readonly height?: number;
1836
- /** CSS class for the container */
1837
- readonly className?: string;
1838
- /** Waveform color (CSS color string) */
1839
- readonly color?: string;
1840
- /** Background color */
1841
- readonly bgColor?: string;
1842
- }
1843
- /**
1844
- * Canvas-based audio waveform visualization.
1845
- * Renders a waveform from Float32Array audio samples.
1846
- * Downsamples to pixel resolution for performance.
1847
- */
1848
- declare function AudioWaveform({ samples, sampleRate, height, className, color, bgColor, }: AudioWaveformProps): react_jsx_runtime.JSX.Element;
1849
-
1850
- interface AudioLevelWaveformProps {
1851
- /** Current dBFS level — push a new value to append to the internal ring buffer. */
1852
- readonly currentDbfs: number | null;
1853
- /** How many seconds of history to display (default 30) */
1854
- readonly durationSec?: number;
1855
- /** Max samples to keep in memory (default 120 ≈ 60s at 2 samples/s) */
1856
- readonly maxSamples?: number;
1857
- /** Height in pixels (default 64) */
1858
- readonly height?: number;
1859
- /** CSS class for the container */
1860
- readonly className?: string;
1861
- /** Bar color (CSS) */
1862
- readonly color?: string;
1863
- /** Clipping color when dBFS > threshold (default red) */
1864
- readonly clipColor?: string;
1865
- /** dBFS threshold for clipping color (default -6) */
1866
- readonly clipThreshold?: number;
1867
- /** Min dBFS to display (default -96) */
1868
- readonly minDbfs?: number;
1869
- }
1870
- /**
1871
- * Canvas-based live audio level waveform with internal state.
1872
- *
1873
- * Receives `currentDbfs` — each time it changes, a new sample is appended
1874
- * to an internal ring buffer and the canvas is redrawn. The component
1875
- * manages its own history, so callers just push the latest dBFS value.
1876
- *
1877
- * Designed to be fed from the `pipeline.audio-inference-result` event
1878
- * (each chunk, ~0.5s, produces one sample via `frame.level.dbfs`).
1879
- */
1880
- declare function AudioLevelWaveform({ currentDbfs, durationSec, maxSamples, height, className, color, clipColor, clipThreshold, minDbfs, }: AudioLevelWaveformProps): react_jsx_runtime.JSX.Element;
1881
-
1882
- interface AudioClassification {
1883
- readonly className: string;
1884
- readonly score: number;
1885
- }
1886
- interface AudioClassificationListProps {
1887
- /** Sorted classifications (highest score first) */
1888
- readonly classifications: readonly AudioClassification[];
1889
- /** Processing state indicator */
1890
- readonly processing?: boolean;
1891
- /** Inference time in ms */
1892
- readonly inferenceMs?: number;
1893
- /** Max items to show (default: 10) */
1894
- readonly maxItems?: number;
1895
- /** Optional className */
1896
- readonly className?: string;
1897
- }
1898
- /**
1899
- * Displays audio classification results as a ranked list with score bars.
1900
- */
1901
- declare function AudioClassificationList({ classifications, processing, inferenceMs, maxItems, className, }: AudioClassificationListProps): react_jsx_runtime.JSX.Element;
1902
-
1903
- interface ResponseLogProps {
1904
- readonly data: unknown;
1905
- readonly label?: string;
1906
- readonly className?: string;
1907
- }
1908
- /**
1909
- * Expandable log box showing the raw JSON response from a pipeline run.
1910
- */
1911
- declare function ResponseLog({ data, label, className }: ResponseLogProps): react_jsx_runtime.JSX.Element | null;
1912
-
1913
- interface PhaseIconProps extends LucideProps {
1914
- readonly phase: string;
1915
- }
1916
- declare function PhaseIcon({ phase, ...props }: PhaseIconProps): react_jsx_runtime.JSX.Element;
1917
-
1918
- interface LiveBuffer<T> {
1919
- readonly entries: readonly T[];
1920
- /** Append one entry; oldest is evicted past `max`. */
1921
- readonly append: (entry: T) => void;
1922
- /** Replace all entries — used by Clear / scope-change resets. */
1923
- readonly reset: () => void;
1924
- }
1925
- declare function useLiveBuffer<T>(max: number): LiveBuffer<T>;
1926
-
1927
- interface LogEntry {
1928
- readonly timestamp: string;
1929
- readonly level: string;
1930
- readonly message: string;
1931
- readonly scope?: string;
1932
- readonly tags?: Record<string, string | undefined>;
1933
- readonly meta?: Record<string, unknown>;
1934
- }
1935
- interface LogStreamProps {
1936
- /** Lock to a specific agent. When set, the agent selector is hidden. */
1937
- readonly agentId?: string;
1938
- /** Lock to a specific addon. When set, the addon selector is hidden. */
1939
- readonly addonId?: string;
1940
- /** Lock to a specific device. When set, the device selector is hidden. */
1941
- readonly deviceId?: number;
1942
- /**
1943
- * Lock to a specific integration. Filter is ALWAYS applied when
1944
- * provided — current providers don't yet tag loggers with
1945
- * `integrationId`, so the result will be empty until they do, but
1946
- * the filter lets us light up integration-scoped logs incrementally
1947
- * without changing the call sites here.
1948
- */
1949
- readonly integrationId?: string;
1950
- /**
1951
- * Correlation id for short-lived operations that have no `deviceId`
1952
- * yet (e.g. a creation-field probe). The matching surface (the
1953
- * Add-Device modal) generates the id once per dialog open and the
1954
- * provider plumbs it into its own scoped logger so the user sees
1955
- * live socket / handshake lines streaming during the test.
1956
- */
1957
- readonly requestId?: string;
1958
- /** Initial log level filter. */
1959
- readonly level?: 'debug' | 'info' | 'warn' | 'error';
1960
- /** Max height CSS class (default: 'max-h-96'). */
1961
- readonly maxHeight?: string;
1962
- /** Show the scope column. */
1963
- readonly showScope?: boolean;
1964
- /** Show the filter bar with selectors. Set false for compact inline use. */
1965
- readonly showFilters?: boolean;
1966
- /** Initial number of historical entries to fetch (default: 100). */
1967
- readonly limit?: number;
1968
- /**
1969
- * Optional controlled live buffer. When provided, the stream reads
1970
- * + appends to this external store rather than its own `useState`,
1971
- * so visible logs survive an unmount/remount of the component
1972
- * (used by `DeviceActivityPanel` to preserve content across tab
1973
- * switches without keeping subscriptions open in inactive tabs).
1974
- */
1975
- readonly liveBuffer?: LiveBuffer<LogEntry>;
1976
- /** Close button handler — when provided, renders a close button. */
1977
- readonly onClose?: () => void;
1978
- readonly className?: string;
1979
- }
1980
- declare function LogStream({ agentId: propsAgentId, addonId: propsAddonId, deviceId: propsDeviceId, integrationId: propsIntegrationId, requestId: propsRequestId, level: initialLevel, maxHeight, showScope, showFilters, limit, liveBuffer: externalBuffer, onClose, className, }: LogStreamProps): react_jsx_runtime.JSX.Element;
1981
- interface FloatingLogStreamProps extends LogStreamProps {
1982
- /** Position: 'bottom' anchors to parent bottom, 'overlay' is absolute positioned. */
1983
- readonly position?: 'bottom' | 'overlay';
1984
- }
1985
- declare function FloatingLogStream({ position, className, ...props }: FloatingLogStreamProps): react_jsx_runtime.JSX.Element;
1986
-
1987
- interface EventEntry {
1988
- readonly id: string;
1989
- readonly timestamp: string;
1990
- readonly source: {
1991
- readonly type: string;
1992
- readonly id: string | number;
1993
- readonly nodeId?: string;
1994
- readonly addonId?: string;
1995
- readonly deviceId?: number;
1996
- };
1997
- readonly category: string;
1998
- readonly data: Record<string, unknown>;
1999
- }
2000
- interface EventStreamProps {
2001
- readonly agentId?: string;
2002
- readonly addonId?: string;
2003
- readonly deviceId?: number;
2004
- /** Initial whitelist — the user can mutate through the multiselect popover.
2005
- * Defaults to ALL EventCategory values when both this and `categories`
2006
- * are omitted. */
2007
- readonly defaultCategories?: readonly string[];
2008
- /** Legacy alias for `defaultCategories`. Kept for back-compat. */
2009
- readonly categories?: readonly string[];
2010
- /** Category glob/pattern passed to the backend subscription (e.g. 'addon.*'). */
2011
- readonly category?: string;
2012
- readonly maxHeight?: string;
2013
- readonly limit?: number;
2014
- /** Show the multiselect filter button in the toolbar (default true). */
2015
- readonly showCategoryFilter?: boolean;
2016
- readonly showFilters?: boolean;
2017
- /**
2018
- * Optional controlled live buffer. When provided, the stream reads
2019
- * + appends to this external store rather than its own `useState`,
2020
- * so the visible list survives an unmount/remount of the component
2021
- * (used by `DeviceActivityPanel` to keep tab content alive across
2022
- * tab switches without keeping subscriptions open in inactive tabs).
2023
- */
2024
- readonly liveBuffer?: LiveBuffer<EventEntry>;
2025
- readonly onClose?: () => void;
2026
- readonly className?: string;
2027
- }
2028
- declare function EventStream({ agentId, addonId, deviceId, defaultCategories, categories: legacyCategories, category: propsCategory, maxHeight, limit, showCategoryFilter, showFilters: _showFilters, liveBuffer: externalBuffer, onClose, className, }: EventStreamProps): react_jsx_runtime.JSX.Element;
2029
- interface FloatingEventStreamProps extends EventStreamProps {
2030
- readonly position?: 'bottom' | 'overlay';
2031
- }
2032
- declare function FloatingEventStream({ position, className, ...props }: FloatingEventStreamProps): react_jsx_runtime.JSX.Element;
2033
-
2034
- /**
2035
- * Shared discovery panel — renders the `device-discovery` cap surface
2036
- * for any parent device that registers it (Reolink Hub, future ONVIF
2037
- * gateway, NVR-style integrations). Keeps the integration's UI
2038
- * surface zero-effort: as long as the cap is mounted, the panel
2039
- * renders the channel list with status badges, refresh, adopt, and
2040
- * release controls.
2041
- *
2042
- * Mirrors the Scrypted device-discovery affordance pattern: a single
2043
- * generic UI used by every plugin that exposes children behind a
2044
- * gateway. Keeps the operator UX consistent across integrations.
2045
- */
2046
- interface DiscoveryPanelProps {
2047
- readonly deviceId: number;
2048
- readonly className?: string;
2049
- /**
2050
- * Optional navigation callback fired when the operator clicks the
2051
- * "Open" link on an adopted child row. ui-library deliberately
2052
- * stays free of `react-router-dom` so it works in agent UIs +
2053
- * embedded admin shells alike — host wires the actual navigation.
2054
- * When omitted, the link is hidden.
2055
- */
2056
- readonly onOpenChild?: (childDeviceId: number) => void;
2057
- }
2058
- declare function DiscoveryPanel({ deviceId, className, onOpenChild }: DiscoveryPanelProps): React.ReactElement;
2059
-
2060
- interface StateChangeEntry {
2061
- readonly id: string;
2062
- readonly timestamp: string;
2063
- readonly capName: string;
2064
- readonly slice: Record<string, unknown>;
2065
- }
2066
- interface StateValuesStreamProps {
2067
- /** Device whose runtime-state changes we want to track. Required. */
2068
- readonly deviceId: number;
2069
- /** Initial cap-name filter — empty = all caps visible. */
2070
- readonly defaultCaps?: readonly string[];
2071
- /** Max height CSS class. */
2072
- readonly maxHeight?: string;
2073
- /** Initial number of historical entries to fetch. */
2074
- readonly limit?: number;
2075
- /**
2076
- * Optional controlled live buffer. When provided the stream appends
2077
- * to this external store instead of its own internal `useState`,
2078
- * so the entries survive an unmount/remount of the component (used
2079
- * by `DeviceActivityPanel` to keep tab content visible across
2080
- * tab switches without leaving subscriptions alive in inactive
2081
- * tabs).
2082
- */
2083
- readonly liveBuffer?: LiveBuffer<StateChangeEntry>;
2084
- readonly onClose?: () => void;
2085
- readonly className?: string;
2086
- }
2087
- declare function StateValuesStream({ deviceId, defaultCaps, maxHeight, limit, liveBuffer: externalBuffer, onClose, className, }: StateValuesStreamProps): react_jsx_runtime.JSX.Element;
2088
-
2089
- interface DeviceActivityPanelProps {
2090
- readonly deviceId: number;
2091
- /** Initial event categories the user wants tracked. Defaults to "all". */
2092
- readonly defaultEventCategories?: readonly string[];
2093
- /** Initial state-cap whitelist. Empty = show every cap that fires. */
2094
- readonly defaultStateCaps?: readonly string[];
2095
- /** Tab to show first. */
2096
- readonly initialTab?: ActivityTabId;
2097
- /** CSS class for the panel root. */
2098
- readonly className?: string;
2099
- /** Max content height (passed to the active stream). */
2100
- readonly maxHeight?: string;
2101
- }
2102
- declare const TABS: readonly [{
2103
- readonly id: "logs";
2104
- readonly label: "Logs";
2105
- readonly icon: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
2106
- }, {
2107
- readonly id: "events";
2108
- readonly label: "Events";
2109
- readonly icon: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
2110
- }, {
2111
- readonly id: "state";
2112
- readonly label: "State";
2113
- readonly icon: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
2114
- }];
2115
- type ActivityTabId = (typeof TABS)[number]['id'];
2116
- declare function DeviceActivityPanel({ deviceId, defaultEventCategories, defaultStateCaps, initialTab, className, maxHeight, }: DeviceActivityPanelProps): react_jsx_runtime.JSX.Element;
2117
-
2118
- interface ConfirmActionButtonProps<TResult> {
2119
- /** Visible label on the trigger button. */
2120
- readonly label: string;
2121
- /** Icon component (lucide-react) rendered inside the trigger. */
2122
- readonly icon?: ComponentType<{
2123
- className?: string;
2124
- }>;
2125
- /** Dialog title. Defaults to "Confirm action". */
2126
- readonly title?: string;
2127
- /**
2128
- * Dialog body — accepts either a string (rendered as DialogDescription)
2129
- * or arbitrary ReactNode for callers that need lists, code blocks, etc.
2130
- */
2131
- readonly description?: ReactNode;
2132
- /** Label on the confirm button inside the dialog. Defaults to `label`. */
2133
- readonly confirmLabel?: string;
2134
- /** Visual variant for the trigger button (defaults to `outline`). */
2135
- readonly triggerVariant?: ButtonProps['variant'];
2136
- /**
2137
- * Visual variant for the confirm button inside the dialog. Defaults to
2138
- * `danger` since this component is meant for destructive actions.
2139
- */
2140
- readonly confirmVariant?: ButtonProps['variant'];
2141
- /** Trigger button size — propagated to the underlying Button. */
2142
- readonly size?: ButtonProps['size'];
2143
- /** Disable the trigger entirely (gates rendering instead of UX state). */
2144
- readonly disabled?: boolean;
2145
- /** Optional extra class name on the trigger. */
2146
- readonly className?: string;
2147
- /**
2148
- * The async action to run on confirm. Must throw on failure so this
2149
- * component can surface the error inline. The result is returned to
2150
- * `onSuccess` for callers that need it (e.g. to invalidate queries).
2151
- */
2152
- readonly action: () => Promise<TResult>;
2153
- /** Called after `action` resolves, with the result. */
2154
- readonly onSuccess?: (result: TResult) => void;
2155
- }
2156
- declare function ConfirmActionButton<TResult>({ label, icon: Icon, title, description, confirmLabel, triggerVariant, confirmVariant, size, disabled, className, action, onSuccess, }: ConfirmActionButtonProps<TResult>): react_jsx_runtime.JSX.Element;
2157
-
2158
- /**
2159
- * Cardinal + intercardinal direction tokens. The hook translates them
2160
- * into normalised `(pan, tilt)` vectors before calling the underlying
2161
- * cap so the cap surface stays speed-vector-shaped.
2162
- */
2163
- type PTZDirection = 'up' | 'down' | 'left' | 'right' | 'up-left' | 'up-right' | 'down-left' | 'down-right';
2164
- interface PTZPreset {
2165
- readonly id: string;
2166
- readonly name: string;
2167
- }
2168
- /**
2169
- * Backwards-compatible alias for the trpc shape — historically the
2170
- * hook took its own narrow contract; the proxy generalisation
2171
- * supersedes that.
2172
- */
2173
- type PTZTrpcProxy = UseDeviceProxyTrpc;
2174
- interface UsePTZOptions {
2175
- /** Default speed (0..1) for moves when the caller omits one. */
2176
- readonly defaultSpeed?: number;
2177
- /** Pulse duration (ms) for one-shot `move` calls. */
2178
- readonly pulseMs?: number;
2179
- /**
2180
- * Gate the hook's network calls. When `false`, the initial preset
2181
- * refresh is skipped and every method becomes a no-op. Use to avoid
2182
- * "provider not available" errors on devices that don't advertise
2183
- * the `ptz` capability.
2184
- */
2185
- readonly enabled?: boolean;
2186
- }
2187
- interface UsePTZResult {
2188
- /** One-shot directional pulse. Stops itself after `pulseMs`. */
2189
- readonly move: (direction: PTZDirection, speed?: number) => Promise<void>;
2190
- /** Begin continuous motion in `direction` until `stopContinuous` is called. */
2191
- readonly startContinuous: (direction: PTZDirection, speed?: number) => Promise<void>;
2192
- /** Stop any ongoing continuous motion. Idempotent. */
2193
- readonly stopContinuous: () => Promise<void>;
2194
- /** Discrete zoom step (in or out). */
2195
- readonly zoom: (direction: 'in' | 'out', speed?: number) => Promise<void>;
2196
- /** Jump to the home preset (0 on most cameras). */
2197
- readonly goHome: () => Promise<void>;
2198
- /** Jump to a named preset. */
2199
- readonly goToPreset: (presetId: string) => Promise<void>;
2200
- /** List of presets reported by the camera. Empty until first refresh. */
2201
- readonly presets: readonly PTZPreset[];
2202
- /** Force a refresh of the presets list. */
2203
- readonly refreshPresets: () => Promise<void>;
2204
- /** True while a control call is in flight (any path). */
2205
- readonly busy: boolean;
2206
- /** Last error message from any cap call, or null. */
2207
- readonly error: string | null;
2208
- }
2209
- declare function usePTZ(trpc: UseDeviceProxyTrpc, deviceId: number, options?: UsePTZOptions): UsePTZResult;
2210
-
2211
- interface PTZOverlayProps {
2212
- /** Result of `usePTZ(trpc, deviceId)`. */
2213
- readonly controls: UsePTZResult;
2214
- /**
2215
- * Visual variant. `'overlay'` floats over the camera viewport with
2216
- * a translucent dark pill; `'panel'` lays out flat inside its
2217
- * container with no inner chrome — use that when hosting inside a
2218
- * floating panel that already provides the dark surface.
2219
- */
2220
- readonly mode?: 'overlay' | 'panel';
2221
- /** Show the presets dropdown (default: true when presets > 0). */
2222
- readonly showPresets?: boolean;
2223
- /** Show the zoom buttons (default: true). */
2224
- readonly showZoom?: boolean;
2225
- /** Show the home button (default: true). */
2226
- readonly showHome?: boolean;
2227
- readonly className?: string;
2228
- }
2229
- declare function PTZOverlay({ controls, mode, showPresets, showZoom, showHome, className, }: PTZOverlayProps): react_jsx_runtime.JSX.Element;
2230
-
2231
- interface BatteryStatusLike {
2232
- readonly percentage: number;
2233
- readonly charging: 'dc' | 'solar' | 'none';
2234
- readonly sleeping: boolean;
2235
- }
2236
- interface BatteryBadgeProps {
2237
- readonly status: BatteryStatusLike | null | undefined;
2238
- /** `'compact'` shows only icon + %; `'full'` adds the source label. */
2239
- readonly variant?: 'compact' | 'full';
2240
- readonly className?: string;
2241
- }
2242
- declare function BatteryBadge({ status, variant, className }: BatteryBadgeProps): react_jsx_runtime.JSX.Element | null;
2243
-
2244
- interface QueryFn$1<I, O> {
2245
- query(input: I): Promise<O>;
2246
- }
2247
- interface SnapshotButtonTrpc {
2248
- readonly snapshot: {
2249
- readonly getSnapshot: QueryFn$1<{
2250
- deviceId: number;
2251
- streamId?: string;
2252
- force?: boolean;
2253
- }, {
2254
- base64: string;
2255
- contentType: string;
2256
- } | null>;
2257
- };
2258
- }
2259
- interface SnapshotButtonProps {
2260
- readonly trpc: SnapshotButtonTrpc;
2261
- readonly deviceId: number;
2262
- readonly deviceName: string;
2263
- /** Visual size — `'sm'` for header / tile, `'md'` for prominent CTA. */
2264
- readonly size?: 'sm' | 'md';
2265
- readonly className?: string;
2266
- }
2267
- declare function SnapshotButton({ trpc, deviceId, deviceName, size, className, }: SnapshotButtonProps): react_jsx_runtime.JSX.Element;
2268
-
2269
- interface DoorbellPressEvent {
2270
- readonly deviceId: number;
2271
- readonly timestamp: number;
2272
- }
2273
- interface UseDoorbellEventsResult {
2274
- /** Most recent press, or null if none observed since mount. */
2275
- readonly latest: DoorbellPressEvent | null;
2276
- /** Recent presses, newest-first. Capped at `historyLimit`. */
2277
- readonly history: readonly DoorbellPressEvent[];
2278
- }
2279
- interface UseDoorbellEventsOptions {
2280
- /**
2281
- * Scope the subscription to a specific deviceId. Pass `null` (or
2282
- * omit) to receive every press across the cluster.
2283
- */
2284
- readonly deviceId?: number | null;
2285
- /** Max history entries kept in memory. Defaults to 20. */
2286
- readonly historyLimit?: number;
2287
- }
2288
- declare function useDoorbellEvents(options?: UseDoorbellEventsOptions): UseDoorbellEventsResult;
2289
-
2290
- interface DoorbellRecentPanelProps {
2291
- readonly history: readonly DoorbellPressEvent[];
2292
- /** Max rows to show (defaults to 5). */
2293
- readonly limit?: number;
2294
- /** Visual hint that the latest press is fresh (< 30s) — pulses the icon. */
2295
- readonly latestIsFresh?: boolean;
2296
- readonly className?: string;
2297
- }
2298
- declare function DoorbellRecentPanel({ history, limit, latestIsFresh, className, }: DoorbellRecentPanelProps): react_jsx_runtime.JSX.Element | null;
2299
-
2300
- interface KebabMenuItem {
2301
- /** Stable id for React keys + analytics. */
2302
- readonly id: string;
2303
- /** Visible label. */
2304
- readonly label: string;
2305
- /** Icon component (lucide-react etc.). */
2306
- readonly icon?: ComponentType<{
2307
- className?: string;
2308
- }>;
2309
- /** Render an inline subtitle / hint under the label. */
2310
- readonly description?: string;
2311
- /** Click handler — menu auto-closes after invocation. */
2312
- readonly onClick: () => void;
2313
- /** When true, the item is hidden entirely (gated by feature etc.). */
2314
- readonly hidden?: boolean;
2315
- /** When true, the item is rendered greyed out and non-clickable. */
2316
- readonly disabled?: boolean;
2317
- /** Renders the item with the destructive accent (red text + hover). */
2318
- readonly danger?: boolean;
2319
- /**
2320
- * Optional separator BEFORE this item — useful to group destructive
2321
- * actions visually at the bottom of the menu.
2322
- */
2323
- readonly separatorBefore?: boolean;
2324
- }
2325
- interface KebabMenuProps {
2326
- readonly items: readonly KebabMenuItem[];
2327
- /**
2328
- * Optional content rendered ABOVE the items (e.g. an explanatory
2329
- * label or a status line). Hidden when no header is provided.
2330
- */
2331
- readonly header?: ReactNode;
2332
- /** Optional class on the trigger button (sizing, alignment). */
2333
- readonly triggerClassName?: string;
2334
- /** Tooltip text on the trigger (defaults to "More actions"). */
2335
- readonly title?: string;
2336
- }
2337
- declare function KebabMenu({ items, header, triggerClassName, title }: KebabMenuProps): react_jsx_runtime.JSX.Element | null;
2338
-
2339
- /** Standard props every addon-contributed widget receives. */
2340
- interface WidgetProps {
2341
- /** Stable id of THIS widget instance (form-builder field key, dashboard slot UUID, etc.). */
2342
- readonly instanceId: string;
2343
- /** Host where this widget is rendered. */
2344
- readonly host: 'device-tab' | 'dashboard' | 'integration-detail';
2345
- /** Form/dashboard-supplied props. Shape depends on the widget. */
2346
- readonly config?: Readonly<Record<string, unknown>>;
2347
- /** Provided when host has a device context. */
2348
- readonly deviceId?: number;
2349
- /** Provided when host has an integration context. */
2350
- readonly integrationId?: string;
2351
- /** Dashboard sizing hints (placeholder for v1 — widget can ignore). */
2352
- readonly size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2353
- readonly columns?: number;
2354
- readonly rows?: number;
2355
- }
2356
- /** Public registry surface. */
2357
- interface WidgetRegistry {
2358
- /**
2359
- * Returns the resolved widget component for `<addonId>/<stableId>`,
2360
- * or `undefined` when the widget id is unknown to the registry, or
2361
- * `null` while the bundle is still loading.
2362
- */
2363
- resolve(widgetId: string): ComponentType<WidgetProps> | null | undefined;
2364
- /** Metadata lookup — used by `<WidgetSlot>` to validate `requires`. */
2365
- metadata(widgetId: string): WidgetMetadataEntry | undefined;
2366
- /** Every contributed widget. Used by host pickers (e.g. dashboard
2367
- * add-widget modal) to enumerate the available widgets. */
2368
- listAll(): readonly WidgetMetadataEntry[];
2369
- }
2370
- /** One enriched-aggregator entry exposed to consumers. */
2371
- interface WidgetMetadataEntry {
2372
- readonly widgetId: string;
2373
- readonly addonId: string;
2374
- readonly stableId: string;
2375
- readonly label: string;
2376
- readonly description?: string;
2377
- readonly icon?: string;
2378
- readonly remoteName: string;
2379
- readonly bundleUrl: string;
2380
- readonly hosts: readonly ('device-tab' | 'dashboard' | 'integration-detail')[];
2381
- readonly requires: {
2382
- readonly deviceContext: boolean;
2383
- readonly integrationContext: boolean;
2384
- };
2385
- readonly defaultSize: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2386
- readonly allowedSizes: readonly ('xs' | 'sm' | 'md' | 'lg' | 'xl')[];
2387
- readonly defaultColumns: number;
2388
- readonly defaultRows: number;
2389
- }
2390
- interface WidgetRegistryProviderProps {
2391
- readonly children: ReactNode;
2392
- }
2393
- declare function WidgetRegistryProvider({ children }: WidgetRegistryProviderProps): react_jsx_runtime.JSX.Element;
2394
- /** Returns the registered widget component, `null` while loading, or `undefined` if unknown. */
2395
- declare function useWidget(widgetId: string): ComponentType<WidgetProps> | null | undefined;
2396
- /** Returns the metadata entry for a widget, or `undefined` if unknown. */
2397
- declare function useWidgetMetadata(widgetId: string): WidgetMetadataEntry | undefined;
2398
- /** Returns every contributed widget — host pickers (dashboard
2399
- * add-widget modal, settings UI palette) consume this to enumerate
2400
- * the registry. Filter on the call site by `metadata.hosts.includes()`. */
2401
- declare function useAllWidgets(): readonly WidgetMetadataEntry[];
2402
- /** Read the registry instance — throws when no provider is mounted. */
2403
- declare function useWidgetRegistry(): WidgetRegistry;
2404
- /** Variant returning `null` when no provider is mounted — for boot splash etc. */
2405
- declare function useOptionalWidgetRegistry(): WidgetRegistry | null;
2406
-
2407
- /**
2408
- * <WidgetSlot> — single host-side mount point for any addon-contributed
2409
- * widget. Consumers reference a widget by its public id
2410
- * (`<addonId>/<stableId>`), the slot looks the component up in the
2411
- * shared `WidgetRegistry`, validates host context against the widget's
2412
- * `requires` metadata, and renders one of:
2413
- * - skeleton placeholder while the bundle is still loading,
2414
- * - inline error fallback when the widget id is unknown OR the host
2415
- * didn't supply a required context (`deviceContext` /
2416
- * `integrationContext`),
2417
- * - the resolved component otherwise.
2418
- *
2419
- * The slot is intentionally STUPID — no styling beyond the skeleton/
2420
- * error fallback. Layout (card vs inline, sizing) is the host's
2421
- * responsibility.
2422
- */
2423
-
2424
- interface WidgetSlotProps {
2425
- /** `<addonId>/<stableId>` — the public widget identifier. */
2426
- readonly widgetId: string;
2427
- /** Host context — picked up by metadata `requires` validation. Defaults to `'device-tab'`. */
2428
- readonly host?: WidgetProps['host'];
2429
- /** Forwarded to widget. */
2430
- readonly config?: Readonly<Record<string, unknown>>;
2431
- /** Forwarded to widget. */
2432
- readonly deviceId?: number;
2433
- readonly integrationId?: string;
2434
- /** Stable instance id — defaults to `widgetId` for non-dashboard hosts (single mount per page). */
2435
- readonly instanceId?: string;
2436
- /** Dashboard sizing — placeholder for v1. */
2437
- readonly size?: WidgetProps['size'];
2438
- readonly columns?: number;
2439
- readonly rows?: number;
2440
- }
2441
- declare function WidgetSlot(props: WidgetSlotProps): ReactNode;
2442
-
2443
- /**
2444
- * Props shape every custom renderer receives. Keep it congruent with
2445
- * the built-in `case` branches so the dispatcher in `config-form-field`
2446
- * can pass arguments uniformly.
2447
- */
2448
- interface CustomFieldRendererProps {
2449
- readonly field: ConfigField;
2450
- readonly value: unknown;
2451
- readonly onChange: (value: unknown) => void;
2452
- readonly disabled?: boolean;
2453
- }
2454
- type CustomFieldRenderer = ComponentType<CustomFieldRendererProps>;
2455
- type CustomFieldRendererMap = Readonly<Record<string, CustomFieldRenderer>>;
2456
- interface CustomFieldRenderersProviderProps {
2457
- readonly renderers: CustomFieldRendererMap;
2458
- readonly children: ReactNode;
2459
- }
2460
- declare function CustomFieldRenderersProvider({ renderers, children, }: CustomFieldRenderersProviderProps): react_jsx_runtime.JSX.Element;
2461
- /**
2462
- * Look up a registered renderer by `field.type`. Returns null when no
2463
- * renderer is registered — caller falls back to its built-in handling
2464
- * (or renders nothing).
2465
- */
2466
- declare function useCustomFieldRenderer(type: string): CustomFieldRenderer | null;
2467
-
2468
- /**
2469
- * Cached device snapshot. Loose-typed (`Record<string, unknown>`) at
2470
- * the boundary because the wire shape lives in different places
2471
- * depending on the caller — DeviceDetail reads from
2472
- * `deviceManager.list`, `addon-admin-ui` from a hand-loaded subset.
2473
- * Renderers narrow the fields they actually need.
2474
- */
2475
- type DeviceSnapshot = Readonly<Record<string, unknown>>;
2476
- interface DeviceContextProviderProps {
2477
- readonly deviceId: number;
2478
- /** Optional cached device snapshot — readers narrow the fields they need. */
2479
- readonly device?: DeviceSnapshot;
2480
- readonly children: ReactNode;
2481
- }
2482
- declare function DeviceContextProvider({ deviceId, device, children }: DeviceContextProviderProps): react_jsx_runtime.JSX.Element;
2483
- /** @returns the device id of the current page subtree, or null if outside any provider. */
2484
- declare function useDeviceId(): number | null;
2485
- /** @returns the cached device snapshot, or null when no snapshot is provided. */
2486
- declare function useDeviceSnapshot(): DeviceSnapshot | null;
2487
-
2488
- interface PlayerOverlayLayer {
2489
- readonly id: string;
2490
- /** Lower = bottom. Built-in layers (PTZ overlay, detection overlay)
2491
- * are drawn at order 0; addon-contributed layers should pick a
2492
- * higher value (e.g. 100) to land on top. */
2493
- readonly order: number;
2494
- readonly node: ReactNode;
2495
- }
2496
- interface PlayerToolbarButton {
2497
- readonly id: string;
2498
- /** Lower = leftmost in the toolbar cluster. */
2499
- readonly order: number;
2500
- /** Icon node — typically a `<svg>` or lucide-react icon. The host
2501
- * renders it inside a button shell; the icon component is
2502
- * responsible for its own sizing (h-3 w-3 by convention). */
2503
- readonly icon: ReactNode;
2504
- /** Visible label on wider breakpoints; collapses to icon-only on
2505
- * narrow widths. */
2506
- readonly label: string;
2507
- /** Title/tooltip for the rendered button. Defaults to `label`. */
2508
- readonly title?: string;
2509
- /** Controlled active state — drives the highlight (primary tint). */
2510
- readonly active: boolean;
2511
- /** Tone variant for the inactive state. `'primary'` reads as a
2512
- * call-to-action (e.g. "Snapshot"); `'default'` is a neutral
2513
- * toggle. */
2514
- readonly tone?: 'default' | 'primary';
2515
- /** Disable the button when the host is mid-transition. */
2516
- readonly disabled?: boolean;
2517
- readonly onClick: () => void;
2518
- }
2519
- interface PlayerOverlaysProviderProps {
2520
- readonly children: ReactNode;
2521
- }
2522
- declare function PlayerOverlaysProvider({ children }: PlayerOverlaysProviderProps): react_jsx_runtime.JSX.Element;
2523
- /** Snapshot of registered layers ordered by `order` (asc, ties resolved
2524
- * by insertion order of the underlying Map). Returns `[]` outside a
2525
- * provider. */
2526
- declare function usePlayerOverlayLayers(): readonly PlayerOverlayLayer[];
2527
- /** Snapshot of registered toolbar buttons, ordered by `order` (asc). */
2528
- declare function usePlayerToolbarButtons(): readonly PlayerToolbarButton[];
2529
- /**
2530
- * Register an overlay layer for the lifetime of the calling component.
2531
- * Re-registers on every render with the latest spec; auto-unregisters
2532
- * on unmount. Pass `null` to skip registration when the layer is
2533
- * conditionally enabled (the hook still runs every render — keeps
2534
- * react-hook order stable across spec === null toggles).
2535
- *
2536
- * Callers that build the spec inline should memoise it (`useMemo`)
2537
- * to avoid re-registering on every parent render — context-write
2538
- * effects depend on referential equality of the spec object.
2539
- */
2540
- declare function usePlayerOverlayLayer(spec: PlayerOverlayLayer | null): void;
2541
- /** Same shape as `usePlayerOverlayLayer`, scoped to toolbar buttons. */
2542
- declare function usePlayerToolbarButton(spec: PlayerToolbarButton | null): void;
2543
-
2544
- type ZoneDrawingKind = 'polygon' | 'tripwire';
2545
- interface ZoneDraftPoint {
2546
- readonly x: number;
2547
- readonly y: number;
2548
- }
2549
- interface ZoneDraft {
2550
- readonly id: string;
2551
- readonly kind: ZoneDrawingKind;
2552
- readonly name: string;
2553
- readonly color: string;
2554
- readonly points: ReadonlyArray<ZoneDraftPoint>;
2555
- }
2556
- interface ZoneEditingState {
2557
- /** Whether the zone editor overlay is active. When `true` the
2558
- * Konva Stage intercepts clicks; when `false` clicks pass
2559
- * through to the underlying player. */
2560
- readonly editing: boolean;
2561
- /** Active drawing kind. `null` means "select / drag existing
2562
- * zones". Setting a non-null value triggers a fresh polygon /
2563
- * tripwire creation on the next click. */
2564
- readonly drawingKind: ZoneDrawingKind | null;
2565
- /** Currently-selected zone id (for highlight + ZoneForm). */
2566
- readonly selectedZoneId: string | null;
2567
- /** In-flight draft snapshot of the zone being edited. `null` while
2568
- * no edit session is active — read-only browse mode. */
2569
- readonly editingDraft: ZoneDraft | null;
2570
- }
2571
- interface ZoneEditingActions {
2572
- setEditing(editing: boolean): void;
2573
- setDrawingKind(kind: ZoneDrawingKind | null): void;
2574
- setSelectedZoneId(id: string | null): void;
2575
- /** Start a new polygon/tripwire — convenience for "Add zone"
2576
- * buttons that should both unlock the overlay AND select the
2577
- * shape kind in one click. */
2578
- startDrawing(kind: ZoneDrawingKind): void;
2579
- /** Exit edit mode — clears the drawing kind + selection + any
2580
- * in-flight draft. Called when the Detection tab is torn down. */
2581
- exitEditing(): void;
2582
- /** Snapshot a zone into the draft and enter unified edit mode.
2583
- * If a different draft is already active it is discarded. */
2584
- enterDraft(draft: ZoneDraft): void;
2585
- /** Patch the active draft. No-op when no draft is active. */
2586
- updateDraft(patch: Partial<Omit<ZoneDraft, 'id' | 'kind'>>): void;
2587
- /** Throw the draft away. Caller is expected to refresh from
2588
- * upstream zone state (operator chose Discard or navigated away). */
2589
- discardDraft(): void;
2590
- }
2591
- interface ZoneEditingContextValue extends ZoneEditingState, ZoneEditingActions {
2592
- }
2593
- interface ZoneEditingProviderProps {
2594
- readonly children: ReactNode;
2595
- }
2596
- declare function ZoneEditingProvider({ children }: ZoneEditingProviderProps): react_jsx_runtime.JSX.Element;
2597
- /** Read + drive the zone-editing state. Returns `null` outside a
2598
- * provider so callers that mount in pages without zones (e.g. a
2599
- * shared hero on a non-camera device) can no-op gracefully. */
2600
- declare function useZoneEditing(): ZoneEditingContextValue | null;
2601
-
2602
- interface SystemProviderProps {
2603
- readonly system: System;
2604
- readonly children: ReactNode;
2605
- }
2606
- declare function SystemProvider({ system, children }: SystemProviderProps): react_jsx_runtime.JSX.Element;
2607
- /**
2608
- * Read the active `System` instance from the surrounding `<SystemProvider>`.
2609
- * Throws when no provider is mounted — every hook in this directory
2610
- * relies on the system, so a clear error beats a silent null.
2611
- */
2612
- declare function useSystem(): System;
2613
- /**
2614
- * Variant that returns `null` instead of throwing — useful for
2615
- * components that need to render before the provider is set up
2616
- * (boot-time splash screens etc.).
2617
- */
2618
- declare function useOptionalSystem(): System | null;
2619
-
2620
- declare function useIsMobile(): boolean;
2621
- /**
2622
- * True when the viewport is in the medium (`md`) Tailwind range —
2623
- * 768px ≤ width < 1024px. Use to drive layouts that should pack denser
2624
- * than full-desktop but more legibly than mobile (e.g. icons-only
2625
- * sidebar rail, narrower stat tiles).
2626
- */
2627
- declare function useIsMidWidth(): boolean;
2628
-
2629
- /**
2630
- * Discriminated WebRTC target — same shape as `WebrtcStreamTarget` on
2631
- * the backend cap. Repeated locally to keep the hook self-contained
2632
- * (no cross-package import from `@camstack/types`).
2633
- */
2634
- type WebrtcTarget = {
2635
- readonly kind: 'adaptive';
2636
- } | {
2637
- readonly kind: 'profile';
2638
- readonly profile: 'high' | 'mid' | 'low';
2639
- } | {
2640
- readonly kind: 'cam-stream';
2641
- readonly camStreamId: string;
2642
- };
2643
- /** Mutation call shape: `.mutate(input)` → Promise. */
2644
- interface MutateFn<I, O> {
2645
- mutate(input: I): Promise<O>;
2646
- }
2647
- /** Query call shape: `.query(input?)` → Promise. */
2648
- interface QueryFn<I, O> {
2649
- query(input: I): Promise<O>;
2650
- }
2651
- interface StreamChoiceRow {
2652
- readonly id: string;
2653
- readonly label: string;
2654
- readonly target: WebrtcTarget;
2655
- readonly codec: string | null;
2656
- readonly resolution: {
2657
- width: number;
2658
- height: number;
2659
- } | null;
2660
- readonly status: string | null;
2661
- readonly inputFps: number | null;
2662
- readonly decodeFps: number | null;
2663
- readonly bitrateKbps: number | null;
2664
- }
2665
- /**
2666
- * Minimal subset of the tRPC proxy needed for WebRTC signaling.
2667
- * Both `BackendClient.trpc` and `AddonPageProps['trpc']` satisfy this
2668
- * at runtime.
2669
- */
2670
- interface UseDeviceWebrtcTrpc {
2671
- webrtcSession: {
2672
- listStreams: QueryFn<{
2673
- deviceId: number;
2674
- }, readonly StreamChoiceRow[]>;
2675
- createSession: MutateFn<{
2676
- deviceId: number;
2677
- target: WebrtcTarget;
2678
- hints?: ClientStreamHints;
2679
- }, {
2680
- sessionId: string;
2681
- sdpOffer: string;
2682
- }>;
2683
- handleAnswer: MutateFn<{
2684
- deviceId: number;
2685
- sessionId: string;
2686
- sdpAnswer: string;
2687
- }, void>;
2688
- closeSession: MutateFn<{
2689
- deviceId: number;
2690
- sessionId: string;
2691
- }, void>;
2692
- };
2693
- pipelineOrchestrator?: {
2694
- getCameraMetrics: QueryFn<{
2695
- deviceId: number;
2696
- }, {
2697
- phase: string;
2698
- actualFps: number;
2699
- avgInferenceTimeMs: number;
2700
- droppedFrames: number;
2701
- configuredFps: number;
2702
- } | null>;
2703
- };
2704
- }
2705
- /** Pipeline detection metrics for a device. */
2706
- interface DevicePipelineMetrics {
2707
- readonly phase: string;
2708
- readonly detectionFps: number;
2709
- readonly avgInferenceMs: number;
2710
- readonly droppedFrames: number;
2711
- }
2712
- interface DeviceWebrtcResult {
2713
- /** Available stream choices for the dropdown (Adaptive + assigned profiles). */
2714
- readonly streams: readonly StreamChoice[];
2715
- /** Whether the device has at least one assigned profile (can stream). */
2716
- readonly hasWebrtc: boolean;
2717
- /** Live pipeline metrics (phase, detection fps, inference time). */
2718
- readonly pipelineMetrics: DevicePipelineMetrics | null;
2719
- /** Server-offer signaling: create a WebRTC session. */
2720
- readonly createSession: (target: WebrtcTarget, hints?: ClientStreamHints) => Promise<SignalingResult>;
2721
- /** Server-offer signaling: send the client's SDP answer. */
2722
- readonly sendAnswer: (sessionId: string, sdpAnswer: string) => Promise<void>;
2723
- /** Close a WebRTC session on the server. */
2724
- readonly closeSession: (sessionId: string) => Promise<void>;
2725
- }
2726
- /**
2727
- * Hook that provides WebRTC signaling callbacks and stream choices for a device.
2728
- *
2729
- * @param trpc - tRPC proxy (admin-ui BackendClient.trpc or addon page trpc)
2730
- * @param deviceId - numeric device ID (null = disabled)
2731
- * @param pollIntervalMs - how often to refresh profile slots (default: 5000)
2732
- */
2733
- declare function useDeviceWebrtc(trpc: UseDeviceWebrtcTrpc, deviceId: number | null, pollIntervalMs?: number): DeviceWebrtcResult;
2734
-
2735
- /**
2736
- * useDeviceBattery — battery status for a device.
2737
- *
2738
- * Thin wrapper over the `useDeviceState` combinator, which itself
2739
- * wraps `useDeviceProxy + useDeviceStateSlice(dev?.state.battery)`.
2740
- * The kernel runtime-state mirror keeps the slice value warm — one
2741
- * initial fetch on first subscribe, then push updates on every
2742
- * `setCapSlice` for the battery slice. No manual event subscription,
2743
- * no parallel `getStatus` polling.
2744
- *
2745
- * Returns `null` when no provider has emitted yet (non-battery
2746
- * camera, or initial fetch hasn't returned).
2747
- */
2748
-
2749
- interface BatteryStatus {
2750
- readonly percentage: number;
2751
- readonly charging: 'dc' | 'solar' | 'none';
2752
- readonly sleeping: boolean;
2753
- readonly lastUpdated: number;
2754
- }
2755
- /**
2756
- * Backwards-compatible alias for the trpc shape — historically the
2757
- * hook took its own narrow contract; the proxy generalisation
2758
- * supersedes that.
2759
- */
2760
- type UseDeviceBatteryTrpc = UseDeviceProxyTrpc;
2761
- declare function useDeviceBattery(trpc: UseDeviceProxyTrpc, deviceId: number | null): BatteryStatus | null;
2762
-
2763
- interface ClusterNode {
2764
- readonly id: string;
2765
- readonly name: string;
2766
- /** Compact label for pill bars: "HUB" for the hub, agent name for agents. */
2767
- readonly shortName: string;
2768
- readonly isHub: boolean;
2769
- readonly isOnline: boolean;
2770
- readonly localIps: readonly string[];
2771
- readonly addons: readonly {
2772
- readonly addonId: string;
2773
- readonly capabilities: readonly string[];
2774
- }[];
2775
- }
2776
- declare function useClusterNodes(): {
2777
- readonly nodes: readonly ClusterNode[];
2778
- readonly isLoading: boolean;
2779
- };
2780
-
2781
- declare function useDebouncedString(value: string, delayMs: number): string;
2782
-
2783
- declare function useEventStreamLatest<T>(category: string, filter?: (data: T) => boolean): T | null;
2784
- declare function useEventStreamMap<T, K extends string | number>(category: string, keyOf: (data: T) => K, filter?: (data: T) => boolean): {
2785
- readonly map: ReadonlyMap<K, T>;
2786
- readonly values: readonly T[];
2787
- };
2788
-
2789
- /**
2790
- * useDeviceCapability — accessor-based readiness wrapper around
2791
- * `useDeviceProxy` + `useDeviceStateSlice`. Combines the three
2792
- * preconditions a UI quick-action needs in one call:
2793
- *
2794
- * 1. Device proxy resolved (bindings landed)
2795
- * 2. Cap handle present on the proxy (i.e. cap is bound)
2796
- * 3. Slice has arrived (provider has published its first snapshot)
2797
- *
2798
- * Optional fourth precondition: a `DeviceFeature` flag advertised on
2799
- * the device row. Useful for surfaces that only render a control when
2800
- * the feature is declared (e.g. the on-motion toggle on a switch).
2801
- *
2802
- * Caller passes typed accessor callbacks so the cap + slice types
2803
- * carry through TypeScript without casts:
2804
- *
2805
- * const { dev, cap, slice, available } = useDeviceCapability({
2806
- * trpc, deviceId,
2807
- * cap: (dev) => dev.switch,
2808
- * slice: (dev) => dev.state.switch,
2809
- * requireFeature: 'switch', // optional
2810
- * deviceFeatures: device.features, // optional, only if feature gate used
2811
- * })
2812
- * if (available) await cap.setState({ on: !slice.on })
2813
- */
2814
-
2815
- interface UseDeviceCapabilityOptions<TCap, TSlice> {
2816
- readonly trpc: UseDeviceProxyTrpc;
2817
- readonly deviceId: number | null;
2818
- readonly cap: (dev: DeviceProxy) => TCap | undefined;
2819
- readonly slice: (dev: DeviceProxy) => SliceHandle<TSlice> | undefined;
2820
- readonly requireFeature?: string;
2821
- readonly deviceFeatures?: readonly string[];
2822
- }
2823
- interface UseDeviceCapabilityResult<TCap, TSlice> {
2824
- readonly dev: DeviceProxy | null;
2825
- readonly cap: TCap | undefined;
2826
- readonly slice: TSlice | undefined;
2827
- readonly available: boolean;
2828
- }
2829
- declare function useDeviceCapability<TCap, TSlice>(options: UseDeviceCapabilityOptions<TCap, TSlice>): UseDeviceCapabilityResult<TCap, TSlice>;
2830
-
2831
- interface DeviceSnapshotImage {
2832
- /** Data-URL for the most recently fetched snapshot, or `null`. */
2833
- readonly src: string | null;
2834
- /** True while a fetch is in flight. */
2835
- readonly loading: boolean;
2836
- /** Force the next fetch to bypass cache (single use). */
2837
- readonly refresh: () => void;
2838
- }
2839
- declare function useDeviceSnapshotImage(trpc: UseDeviceProxyTrpc, deviceId: number | null): DeviceSnapshotImage;
2840
-
2841
- /**
2842
- * Reactive list of devices matching the optional filter set. Returns a
2843
- * stable array reference between updates so consumers passing it as a
2844
- * prop don't tear down memoized children.
2845
- */
2846
- declare function useDevices(filters?: DeviceQueryFilters): readonly DeviceProxy[];
2847
- /**
2848
- * Single-device variant. Returns `null` until the device is in the
2849
- * mirror; re-renders when the device is removed (back to `null`) or
2850
- * added.
2851
- */
2852
- declare function useDevice(deviceId: number | null): DeviceProxy | null;
2853
-
2854
- /**
2855
- * useSystemQuery / useSystemMutation — generic escape hatches over the
2856
- * unified `System` SDK class for tRPC calls that don't (yet) have a
2857
- * codegen'd named hook.
2858
- *
2859
- * Codegen'd hooks (see `../generated/system-hooks.ts`) cover every
2860
- * `scope: 'system'` capability method automatically; reach for these
2861
- * helpers when:
2862
- * 1. The call goes through a core (non-cap) router, or
2863
- * 2. You want to compose multiple cap calls into a single React
2864
- * Query bookkeeping unit (single staleTime, single retry policy).
2865
- *
2866
- * The query helper takes a `select(system) → () => Promise<T>` factory
2867
- * so the caller picks any tRPC procedure off the System namespaces.
2868
- * Inputs are passed via the closure — keeps deps explicit and avoids
2869
- * the React Query input-as-cache-key magic that surprises new readers.
2870
- */
2871
-
2872
- /**
2873
- * `select` MUST return a thunk that, when invoked, performs the
2874
- * request. Two-step factory keeps the query-key + thunk identities
2875
- * stable between renders: the hook re-creates the thunk on every
2876
- * render (cheap), but React Query keys off `[queryKey]` only.
2877
- */
2878
- type SystemQuerySelector<TData> = (system: System) => () => Promise<TData>;
2879
- type SystemMutationSelector<TInput, TData> = (system: System) => (input: TInput) => Promise<TData>;
2880
- declare function useSystemQuery<TData>(queryKey: QueryKey, select: SystemQuerySelector<TData>, opts?: Omit<UseQueryOptions<TData, Error, TData>, 'queryKey' | 'queryFn'>): UseQueryResult<TData, Error>;
2881
- declare function useSystemMutation<TInput, TData>(select: SystemMutationSelector<TInput, TData>, opts?: Omit<UseMutationOptions<TData, Error, TInput>, 'mutationFn'>): UseMutationResult<TData, Error, TInput>;
2882
-
2883
- type LiveEventCallback<TData = unknown> = (event: SystemLiveEvent<TData>) => void;
2884
- declare function useLiveEvent<TData = unknown>(category: string, cb: LiveEventCallback<TData>): void;
2885
-
2886
- declare function useEventInvalidation(queryKey: readonly unknown[], categories: readonly string[]): void;
2887
-
2888
- /**
2889
- * Shared typed React Query proxy for the backend AppRouter.
2890
- *
2891
- * The proxy is exposed on `window.__camstackTrpcReact` so addon-page
2892
- * bundles (which load AFTER the host admin-ui sets the global) reuse
2893
- * the host's `createTRPCReact` instance instead of creating a separate
2894
- * one. Sharing the instance is mandatory because the typed React-Query
2895
- * hooks read from a Context registered inside the proxy — a duplicate
2896
- * proxy would have its own Context, miss the host's `<trpc.Provider>`
2897
- * tree, and crash with "trpc client not found" on first render.
2898
- *
2899
- * Boot order:
2900
- * 1. admin-ui's `main.tsx` is the first script to evaluate this
2901
- * module, sees `window.__camstackTrpcReact === undefined`,
2902
- * creates the proxy, stashes it on the window.
2903
- * 2. Addon bundles are loaded later by `AddonPageLoader` — when
2904
- * their entrypoint evaluates this same module (resolved through
2905
- * Vite alias to ui-library/src), the global is already set, so
2906
- * they pick up the host instance and skip the second create.
2907
- */
2908
-
2909
- type AppTrpcReact = CreateTRPCReact<AppRouter, unknown>;
2910
- declare global {
2911
- var __camstackTrpcReact: AppTrpcReact | undefined;
2912
- }
2913
- declare const trpc: AppTrpcReact;
2914
-
2915
- /**
2916
- * Per-method React-Query hooks for every `scope: 'system'` capability.
2917
- *
2918
- * Each hook is a thin pass-through to `trpc.<cap>.<method>.useQuery` /
2919
- * `.useMutation` / `.useSubscription` so the typed inference + RQ
2920
- * cache/dedup keep working — the generator only contributes a consistent
2921
- * name and stable export surface so admin-ui pages can write
2922
- * `useAddonsList()` instead of `trpc.addons.list.useQuery()`.
2923
- *
2924
- * Push-subscription methods (`kind: 'subscription'`) emit a typeof
2925
- * alias over `useSubscription`, so the call shape is
2926
- * `useToastOnToast(input, { onData: cb })` — same as the underlying
2927
- * tRPC hook. The eventBus-backed `useLiveEvent` (see
2928
- * `../hooks/use-live-event.ts`) covers events that don't ride a tRPC
2929
- * subscription; the two surfaces coexist by design.
2930
- */
2931
-
2932
- /** Generated alias around `trpc.accessories.getStatus.useQuery`. */
2933
- declare const useAccessoriesGetStatus: typeof trpc.accessories.getStatus.useQuery;
2934
- /** Generated alias around `trpc.addonPages.listPages.useQuery`. */
2935
- declare const useAddonPagesListPages: typeof trpc.addonPages.listPages.useQuery;
2936
- /** Generated alias around `trpc.addons.list.useQuery`. */
2937
- declare const useAddonsList: typeof trpc.addons.list.useQuery;
2938
- /** Generated alias around `trpc.addons.getLogs.useQuery`. */
2939
- declare const useAddonsGetLogs: typeof trpc.addons.getLogs.useQuery;
2940
- /** Generated alias around `trpc.addons.listPackages.useQuery`. */
2941
- declare const useAddonsListPackages: typeof trpc.addons.listPackages.useQuery;
2942
- /** Generated alias around `trpc.addons.installPackage.useMutation`. */
2943
- declare const useAddonsInstallPackage: typeof trpc.addons.installPackage.useMutation;
2944
- /** Generated alias around `trpc.addons.installFromWorkspace.useMutation`. */
2945
- declare const useAddonsInstallFromWorkspace: typeof trpc.addons.installFromWorkspace.useMutation;
2946
- /** Generated alias around `trpc.addons.isWorkspaceAvailable.useQuery`. */
2947
- declare const useAddonsIsWorkspaceAvailable: typeof trpc.addons.isWorkspaceAvailable.useQuery;
2948
- /** Generated alias around `trpc.addons.listWorkspacePackages.useQuery`. */
2949
- declare const useAddonsListWorkspacePackages: typeof trpc.addons.listWorkspacePackages.useQuery;
2950
- /** Generated alias around `trpc.addons.uninstallPackage.useMutation`. */
2951
- declare const useAddonsUninstallPackage: typeof trpc.addons.uninstallPackage.useMutation;
2952
- /** Generated alias around `trpc.addons.reloadPackages.useMutation`. */
2953
- declare const useAddonsReloadPackages: typeof trpc.addons.reloadPackages.useMutation;
2954
- /** Generated alias around `trpc.addons.searchAvailable.useQuery`. */
2955
- declare const useAddonsSearchAvailable: typeof trpc.addons.searchAvailable.useQuery;
2956
- /** Generated alias around `trpc.addons.listUpdates.useQuery`. */
2957
- declare const useAddonsListUpdates: typeof trpc.addons.listUpdates.useQuery;
2958
- /** Generated alias around `trpc.addons.updatePackage.useMutation`. */
2959
- declare const useAddonsUpdatePackage: typeof trpc.addons.updatePackage.useMutation;
2960
- /** Generated alias around `trpc.addons.forceRefresh.useMutation`. */
2961
- declare const useAddonsForceRefresh: typeof trpc.addons.forceRefresh.useMutation;
2962
- /** Generated alias around `trpc.addons.restartServer.useMutation`. */
2963
- declare const useAddonsRestartServer: typeof trpc.addons.restartServer.useMutation;
2964
- /** Generated alias around `trpc.addons.getVersions.useQuery`. */
2965
- declare const useAddonsGetVersions: typeof trpc.addons.getVersions.useQuery;
2966
- /** Generated alias around `trpc.addons.restartAddon.useMutation`. */
2967
- declare const useAddonsRestartAddon: typeof trpc.addons.restartAddon.useMutation;
2968
- /** Generated alias around `trpc.addons.getAutoUpdateSettings.useQuery`. */
2969
- declare const useAddonsGetAutoUpdateSettings: typeof trpc.addons.getAutoUpdateSettings.useQuery;
2970
- /** Generated alias around `trpc.addons.setAutoUpdateSettings.useMutation`. */
2971
- declare const useAddonsSetAutoUpdateSettings: typeof trpc.addons.setAutoUpdateSettings.useMutation;
2972
- /** Generated alias around `trpc.addons.getAddonAutoUpdate.useQuery`. */
2973
- declare const useAddonsGetAddonAutoUpdate: typeof trpc.addons.getAddonAutoUpdate.useQuery;
2974
- /** Generated alias around `trpc.addons.setAddonAutoUpdate.useMutation`. */
2975
- declare const useAddonsSetAddonAutoUpdate: typeof trpc.addons.setAddonAutoUpdate.useMutation;
2976
- /** Generated alias around `trpc.addons.applyAutoUpdateToAll.useMutation`. */
2977
- declare const useAddonsApplyAutoUpdateToAll: typeof trpc.addons.applyAutoUpdateToAll.useMutation;
2978
- /** Generated alias around `trpc.addons.custom.useMutation`. */
2979
- declare const useAddonsCustom: typeof trpc.addons.custom.useMutation;
2980
- /** Generated alias around `trpc.addons.onAddonLogs.useSubscription`. */
2981
- declare const useAddonsOnAddonLogs: typeof trpc.addons.onAddonLogs.useSubscription;
2982
- /** Generated alias around `trpc.addonSettings.getGlobalSettings.useQuery`. */
2983
- declare const useAddonSettingsGetGlobalSettings: typeof trpc.addonSettings.getGlobalSettings.useQuery;
2984
- /** Generated alias around `trpc.addonSettings.updateGlobalSettings.useMutation`. */
2985
- declare const useAddonSettingsUpdateGlobalSettings: typeof trpc.addonSettings.updateGlobalSettings.useMutation;
2986
- /** Generated alias around `trpc.addonSettings.getDeviceSettings.useQuery`. */
2987
- declare const useAddonSettingsGetDeviceSettings: typeof trpc.addonSettings.getDeviceSettings.useQuery;
2988
- /** Generated alias around `trpc.addonSettings.updateDeviceSettings.useMutation`. */
2989
- declare const useAddonSettingsUpdateDeviceSettings: typeof trpc.addonSettings.updateDeviceSettings.useMutation;
2990
- /** Generated alias around `trpc.addonWidgets.listWidgets.useQuery`. */
2991
- declare const useAddonWidgetsListWidgets: typeof trpc.addonWidgets.listWidgets.useQuery;
2992
- /** Generated alias around `trpc.alerts.emit.useMutation`. */
2993
- declare const useAlertsEmit: typeof trpc.alerts.emit.useMutation;
2994
- /** Generated alias around `trpc.alerts.update.useMutation`. */
2995
- declare const useAlertsUpdate: typeof trpc.alerts.update.useMutation;
2996
- /** Generated alias around `trpc.alerts.list.useQuery`. */
2997
- declare const useAlertsList: typeof trpc.alerts.list.useQuery;
2998
- /** Generated alias around `trpc.alerts.getUnreadCount.useQuery`. */
2999
- declare const useAlertsGetUnreadCount: typeof trpc.alerts.getUnreadCount.useQuery;
3000
- /** Generated alias around `trpc.alerts.markRead.useMutation`. */
3001
- declare const useAlertsMarkRead: typeof trpc.alerts.markRead.useMutation;
3002
- /** Generated alias around `trpc.alerts.markAllRead.useMutation`. */
3003
- declare const useAlertsMarkAllRead: typeof trpc.alerts.markAllRead.useMutation;
3004
- /** Generated alias around `trpc.alerts.dismiss.useMutation`. */
3005
- declare const useAlertsDismiss: typeof trpc.alerts.dismiss.useMutation;
3006
- /** Generated alias around `trpc.audioAnalysis.resolveDeviceSettings.useQuery`. */
3007
- declare const useAudioAnalysisResolveDeviceSettings: typeof trpc.audioAnalysis.resolveDeviceSettings.useQuery;
3008
- /** Generated alias around `trpc.audioAnalysis.getDeviceSettingsContribution.useQuery`. */
3009
- declare const useAudioAnalysisGetDeviceSettingsContribution: typeof trpc.audioAnalysis.getDeviceSettingsContribution.useQuery;
3010
- /** Generated alias around `trpc.audioAnalysis.getDeviceLiveContribution.useQuery`. */
3011
- declare const useAudioAnalysisGetDeviceLiveContribution: typeof trpc.audioAnalysis.getDeviceLiveContribution.useQuery;
3012
- /** Generated alias around `trpc.audioAnalysis.applyDeviceSettingsPatch.useMutation`. */
3013
- declare const useAudioAnalysisApplyDeviceSettingsPatch: typeof trpc.audioAnalysis.applyDeviceSettingsPatch.useMutation;
3014
- /** Generated alias around `trpc.audioAnalyzer.analyseChunk.useMutation`. */
3015
- declare const useAudioAnalyzerAnalyseChunk: typeof trpc.audioAnalyzer.analyseChunk.useMutation;
3016
- /** Generated alias around `trpc.audioAnalyzer.classify.useQuery`. */
3017
- declare const useAudioAnalyzerClassify: typeof trpc.audioAnalyzer.classify.useQuery;
3018
- /** Generated alias around `trpc.audioAnalyzer.isReady.useQuery`. */
3019
- declare const useAudioAnalyzerIsReady: typeof trpc.audioAnalyzer.isReady.useQuery;
3020
- /** Generated alias around `trpc.audioAnalyzer.dispose.useMutation`. */
3021
- declare const useAudioAnalyzerDispose: typeof trpc.audioAnalyzer.dispose.useMutation;
3022
- /** Generated alias around `trpc.audioAnalyzer.reprobeAudioEngine.useMutation`. */
3023
- declare const useAudioAnalyzerReprobeAudioEngine: typeof trpc.audioAnalyzer.reprobeAudioEngine.useMutation;
3024
- /** Generated alias around `trpc.audioCodec.listSupportedCodecs.useQuery`. */
3025
- declare const useAudioCodecListSupportedCodecs: typeof trpc.audioCodec.listSupportedCodecs.useQuery;
3026
- /** Generated alias around `trpc.audioCodec.canHandle.useQuery`. */
3027
- declare const useAudioCodecCanHandle: typeof trpc.audioCodec.canHandle.useQuery;
3028
- /** Generated alias around `trpc.audioCodec.createDecodeSession.useMutation`. */
3029
- declare const useAudioCodecCreateDecodeSession: typeof trpc.audioCodec.createDecodeSession.useMutation;
3030
- /** Generated alias around `trpc.audioCodec.createEncodeSession.useMutation`. */
3031
- declare const useAudioCodecCreateEncodeSession: typeof trpc.audioCodec.createEncodeSession.useMutation;
3032
- /** Generated alias around `trpc.audioCodec.closeSession.useMutation`. */
3033
- declare const useAudioCodecCloseSession: typeof trpc.audioCodec.closeSession.useMutation;
3034
- /** Generated alias around `trpc.audioCodec.pushEncodedFrame.useMutation`. */
3035
- declare const useAudioCodecPushEncodedFrame: typeof trpc.audioCodec.pushEncodedFrame.useMutation;
3036
- /** Generated alias around `trpc.audioCodec.pullPcm.useQuery`. */
3037
- declare const useAudioCodecPullPcm: typeof trpc.audioCodec.pullPcm.useQuery;
3038
- /** Generated alias around `trpc.audioCodec.pushPcm.useMutation`. */
3039
- declare const useAudioCodecPushPcm: typeof trpc.audioCodec.pushPcm.useMutation;
3040
- /** Generated alias around `trpc.audioCodec.pullEncoded.useQuery`. */
3041
- declare const useAudioCodecPullEncoded: typeof trpc.audioCodec.pullEncoded.useQuery;
3042
- /** Generated alias around `trpc.audioCodec.flushEncode.useMutation`. */
3043
- declare const useAudioCodecFlushEncode: typeof trpc.audioCodec.flushEncode.useMutation;
3044
- /** Generated alias around `trpc.audioCodec.listActiveSessions.useQuery`. */
3045
- declare const useAudioCodecListActiveSessions: typeof trpc.audioCodec.listActiveSessions.useQuery;
3046
- /** Generated alias around `trpc.audioMetrics.getCurrentSnapshot.useQuery`. */
3047
- declare const useAudioMetricsGetCurrentSnapshot: typeof trpc.audioMetrics.getCurrentSnapshot.useQuery;
3048
- /** Generated alias around `trpc.audioMetrics.getHistory.useQuery`. */
3049
- declare const useAudioMetricsGetHistory: typeof trpc.audioMetrics.getHistory.useQuery;
3050
- /** Generated alias around `trpc.backup.trigger.useMutation`. */
3051
- declare const useBackupTrigger: typeof trpc.backup.trigger.useMutation;
3052
- /** Generated alias around `trpc.backup.list.useQuery`. */
3053
- declare const useBackupList: typeof trpc.backup.list.useQuery;
3054
- /** Generated alias around `trpc.backup.restore.useMutation`. */
3055
- declare const useBackupRestore: typeof trpc.backup.restore.useMutation;
3056
- /** Generated alias around `trpc.backup.delete.useMutation`. */
3057
- declare const useBackupDelete: typeof trpc.backup.delete.useMutation;
3058
- /** Generated alias around `trpc.battery.getStatus.useQuery`. */
3059
- declare const useBatteryGetStatus: typeof trpc.battery.getStatus.useQuery;
3060
- /** Generated alias around `trpc.brightness.setBrightness.useMutation`. */
3061
- declare const useBrightnessSetBrightness: typeof trpc.brightness.setBrightness.useMutation;
3062
- /** Generated alias around `trpc.brightness.getStatus.useQuery`. */
3063
- declare const useBrightnessGetStatus: typeof trpc.brightness.getStatus.useQuery;
3064
- /** Generated alias around `trpc.cameraStreams.getCameraStreams.useQuery`. */
3065
- declare const useCameraStreamsGetCameraStreams: typeof trpc.cameraStreams.getCameraStreams.useQuery;
3066
- /** Generated alias around `trpc.cameraStreams.getBrokerStreams.useQuery`. */
3067
- declare const useCameraStreamsGetBrokerStreams: typeof trpc.cameraStreams.getBrokerStreams.useQuery;
3068
- /** Generated alias around `trpc.cameraStreams.getRtspEntries.useQuery`. */
3069
- declare const useCameraStreamsGetRtspEntries: typeof trpc.cameraStreams.getRtspEntries.useQuery;
3070
- /** Generated alias around `trpc.decoder.supportsCodec.useQuery`. */
3071
- declare const useDecoderSupportsCodec: typeof trpc.decoder.supportsCodec.useQuery;
3072
- /** Generated alias around `trpc.decoder.getInfo.useQuery`. */
3073
- declare const useDecoderGetInfo: typeof trpc.decoder.getInfo.useQuery;
3074
- /** Generated alias around `trpc.decoder.createSession.useQuery`. */
3075
- declare const useDecoderCreateSession: typeof trpc.decoder.createSession.useQuery;
3076
- /** Generated alias around `trpc.decoder.destroySession.useQuery`. */
3077
- declare const useDecoderDestroySession: typeof trpc.decoder.destroySession.useQuery;
3078
- /** Generated alias around `trpc.decoder.pushPacket.useQuery`. */
3079
- declare const useDecoderPushPacket: typeof trpc.decoder.pushPacket.useQuery;
3080
- /** Generated alias around `trpc.decoder.openStream.useQuery`. */
3081
- declare const useDecoderOpenStream: typeof trpc.decoder.openStream.useQuery;
3082
- /** Generated alias around `trpc.decoder.pullFrames.useQuery`. */
3083
- declare const useDecoderPullFrames: typeof trpc.decoder.pullFrames.useQuery;
3084
- /** Generated alias around `trpc.decoder.updateConfig.useQuery`. */
3085
- declare const useDecoderUpdateConfig: typeof trpc.decoder.updateConfig.useQuery;
3086
- /** Generated alias around `trpc.decoder.getStats.useQuery`. */
3087
- declare const useDecoderGetStats: typeof trpc.decoder.getStats.useQuery;
3088
- /** Generated alias around `trpc.decoder.listActiveSessions.useQuery`. */
3089
- declare const useDecoderListActiveSessions: typeof trpc.decoder.listActiveSessions.useQuery;
3090
- /** Generated alias around `trpc.decoder.reprobeHwaccel.useMutation`. */
3091
- declare const useDecoderReprobeHwaccel: typeof trpc.decoder.reprobeHwaccel.useMutation;
3092
- /** Generated alias around `trpc.detectionPipeline.getDeviceSettingsContribution.useQuery`. */
3093
- declare const useDetectionPipelineGetDeviceSettingsContribution: typeof trpc.detectionPipeline.getDeviceSettingsContribution.useQuery;
3094
- /** Generated alias around `trpc.detectionPipeline.getDeviceLiveContribution.useQuery`. */
3095
- declare const useDetectionPipelineGetDeviceLiveContribution: typeof trpc.detectionPipeline.getDeviceLiveContribution.useQuery;
3096
- /** Generated alias around `trpc.detectionPipeline.applyDeviceSettingsPatch.useMutation`. */
3097
- declare const useDetectionPipelineApplyDeviceSettingsPatch: typeof trpc.detectionPipeline.applyDeviceSettingsPatch.useMutation;
3098
- /** Generated alias around `trpc.deviceDiscovery.listDiscovered.useQuery`. */
3099
- declare const useDeviceDiscoveryListDiscovered: typeof trpc.deviceDiscovery.listDiscovered.useQuery;
3100
- /** Generated alias around `trpc.deviceDiscovery.refreshDiscovery.useMutation`. */
3101
- declare const useDeviceDiscoveryRefreshDiscovery: typeof trpc.deviceDiscovery.refreshDiscovery.useMutation;
3102
- /** Generated alias around `trpc.deviceDiscovery.adoptDevice.useMutation`. */
3103
- declare const useDeviceDiscoveryAdoptDevice: typeof trpc.deviceDiscovery.adoptDevice.useMutation;
3104
- /** Generated alias around `trpc.deviceDiscovery.releaseDevice.useMutation`. */
3105
- declare const useDeviceDiscoveryReleaseDevice: typeof trpc.deviceDiscovery.releaseDevice.useMutation;
3106
- /** Generated alias around `trpc.deviceDiscovery.getStatus.useQuery`. */
3107
- declare const useDeviceDiscoveryGetStatus: typeof trpc.deviceDiscovery.getStatus.useQuery;
3108
- /** Generated alias around `trpc.deviceManager.allocateDeviceId.useMutation`. */
3109
- declare const useDeviceManagerAllocateDeviceId: typeof trpc.deviceManager.allocateDeviceId.useMutation;
3110
- /** Generated alias around `trpc.deviceManager.registerDevice.useMutation`. */
3111
- declare const useDeviceManagerRegisterDevice: typeof trpc.deviceManager.registerDevice.useMutation;
3112
- /** Generated alias around `trpc.deviceManager.removeDevice.useMutation`. */
3113
- declare const useDeviceManagerRemoveDevice: typeof trpc.deviceManager.removeDevice.useMutation;
3114
- /** Generated alias around `trpc.deviceManager.persistConfig.useMutation`. */
3115
- declare const useDeviceManagerPersistConfig: typeof trpc.deviceManager.persistConfig.useMutation;
3116
- /** Generated alias around `trpc.deviceManager.loadConfig.useQuery`. */
3117
- declare const useDeviceManagerLoadConfig: typeof trpc.deviceManager.loadConfig.useQuery;
3118
- /** Generated alias around `trpc.deviceManager.loadRuntimeState.useQuery`. */
3119
- declare const useDeviceManagerLoadRuntimeState: typeof trpc.deviceManager.loadRuntimeState.useQuery;
3120
- /** Generated alias around `trpc.deviceManager.loadMeta.useQuery`. */
3121
- declare const useDeviceManagerLoadMeta: typeof trpc.deviceManager.loadMeta.useQuery;
3122
- /** Generated alias around `trpc.deviceManager.setName.useMutation`. */
3123
- declare const useDeviceManagerSetName: typeof trpc.deviceManager.setName.useMutation;
3124
- /** Generated alias around `trpc.deviceManager.setLocation.useMutation`. */
3125
- declare const useDeviceManagerSetLocation: typeof trpc.deviceManager.setLocation.useMutation;
3126
- /** Generated alias around `trpc.deviceManager.setMetadata.useMutation`. */
3127
- declare const useDeviceManagerSetMetadata: typeof trpc.deviceManager.setMetadata.useMutation;
3128
- /** Generated alias around `trpc.deviceManager.listLocations.useQuery`. */
3129
- declare const useDeviceManagerListLocations: typeof trpc.deviceManager.listLocations.useQuery;
3130
- /** Generated alias around `trpc.deviceManager.addLocation.useMutation`. */
3131
- declare const useDeviceManagerAddLocation: typeof trpc.deviceManager.addLocation.useMutation;
3132
- /** Generated alias around `trpc.deviceManager.removeLocation.useMutation`. */
3133
- declare const useDeviceManagerRemoveLocation: typeof trpc.deviceManager.removeLocation.useMutation;
3134
- /** Generated alias around `trpc.deviceManager.setDisabled.useMutation`. */
3135
- declare const useDeviceManagerSetDisabled: typeof trpc.deviceManager.setDisabled.useMutation;
3136
- /** Generated alias around `trpc.deviceManager.listPersistedByAddon.useQuery`. */
3137
- declare const useDeviceManagerListPersistedByAddon: typeof trpc.deviceManager.listPersistedByAddon.useQuery;
3138
- /** Generated alias around `trpc.deviceManager.listAll.useQuery`. */
3139
- declare const useDeviceManagerListAll: typeof trpc.deviceManager.listAll.useQuery;
3140
- /** Generated alias around `trpc.deviceManager.getDevice.useQuery`. */
3141
- declare const useDeviceManagerGetDevice: typeof trpc.deviceManager.getDevice.useQuery;
3142
- /** Generated alias around `trpc.deviceManager.getChildren.useQuery`. */
3143
- declare const useDeviceManagerGetChildren: typeof trpc.deviceManager.getChildren.useQuery;
3144
- /** Generated alias around `trpc.deviceManager.getStreamSources.useQuery`. */
3145
- declare const useDeviceManagerGetStreamSources: typeof trpc.deviceManager.getStreamSources.useQuery;
3146
- /** Generated alias around `trpc.deviceManager.getConfigSchema.useQuery`. */
3147
- declare const useDeviceManagerGetConfigSchema: typeof trpc.deviceManager.getConfigSchema.useQuery;
3148
- /** Generated alias around `trpc.deviceManager.getSettingsSchema.useQuery`. */
3149
- declare const useDeviceManagerGetSettingsSchema: typeof trpc.deviceManager.getSettingsSchema.useQuery;
3150
- /** Generated alias around `trpc.deviceManager.updateConfig.useMutation`. */
3151
- declare const useDeviceManagerUpdateConfig: typeof trpc.deviceManager.updateConfig.useMutation;
3152
- /** Generated alias around `trpc.deviceManager.enable.useMutation`. */
3153
- declare const useDeviceManagerEnable: typeof trpc.deviceManager.enable.useMutation;
3154
- /** Generated alias around `trpc.deviceManager.disable.useMutation`. */
3155
- declare const useDeviceManagerDisable: typeof trpc.deviceManager.disable.useMutation;
3156
- /** Generated alias around `trpc.deviceManager.remove.useMutation`. */
3157
- declare const useDeviceManagerRemove: typeof trpc.deviceManager.remove.useMutation;
3158
- /** Generated alias around `trpc.deviceManager.getStreamProfileMap.useQuery`. */
3159
- declare const useDeviceManagerGetStreamProfileMap: typeof trpc.deviceManager.getStreamProfileMap.useQuery;
3160
- /** Generated alias around `trpc.deviceManager.setStreamProfileMap.useMutation`. */
3161
- declare const useDeviceManagerSetStreamProfileMap: typeof trpc.deviceManager.setStreamProfileMap.useMutation;
3162
- /** Generated alias around `trpc.deviceManager.probeStreams.useMutation`. */
3163
- declare const useDeviceManagerProbeStreams: typeof trpc.deviceManager.probeStreams.useMutation;
3164
- /** Generated alias around `trpc.deviceManager.getBindings.useQuery`. */
3165
- declare const useDeviceManagerGetBindings: typeof trpc.deviceManager.getBindings.useQuery;
3166
- /** Generated alias around `trpc.deviceManager.getAllBindings.useQuery`. */
3167
- declare const useDeviceManagerGetAllBindings: typeof trpc.deviceManager.getAllBindings.useQuery;
3168
- /** Generated alias around `trpc.deviceManager.setWrapperActive.useMutation`. */
3169
- declare const useDeviceManagerSetWrapperActive: typeof trpc.deviceManager.setWrapperActive.useMutation;
3170
- /** Generated alias around `trpc.deviceManager.listWrappersForCap.useQuery`. */
3171
- declare const useDeviceManagerListWrappersForCap: typeof trpc.deviceManager.listWrappersForCap.useQuery;
3172
- /** Generated alias around `trpc.deviceManager.listBindableCapsForDeviceType.useQuery`. */
3173
- declare const useDeviceManagerListBindableCapsForDeviceType: typeof trpc.deviceManager.listBindableCapsForDeviceType.useQuery;
3174
- /** Generated alias around `trpc.deviceManager.getDeviceSettingsAggregate.useQuery`. */
3175
- declare const useDeviceManagerGetDeviceSettingsAggregate: typeof trpc.deviceManager.getDeviceSettingsAggregate.useQuery;
3176
- /** Generated alias around `trpc.deviceManager.getDeviceLiveInfoAggregate.useQuery`. */
3177
- declare const useDeviceManagerGetDeviceLiveInfoAggregate: typeof trpc.deviceManager.getDeviceLiveInfoAggregate.useQuery;
3178
- /** Generated alias around `trpc.deviceManager.getDeviceAggregate.useQuery`. */
3179
- declare const useDeviceManagerGetDeviceAggregate: typeof trpc.deviceManager.getDeviceAggregate.useQuery;
3180
- /** Generated alias around `trpc.deviceManager.updateDeviceField.useMutation`. */
3181
- declare const useDeviceManagerUpdateDeviceField: typeof trpc.deviceManager.updateDeviceField.useMutation;
3182
- /** Generated alias around `trpc.deviceManager.updateDeviceFieldsBatch.useMutation`. */
3183
- declare const useDeviceManagerUpdateDeviceFieldsBatch: typeof trpc.deviceManager.updateDeviceFieldsBatch.useMutation;
3184
- /** Generated alias around `trpc.deviceManager.discoverDevices.useMutation`. */
3185
- declare const useDeviceManagerDiscoverDevices: typeof trpc.deviceManager.discoverDevices.useMutation;
3186
- /** Generated alias around `trpc.deviceManager.adoptDevice.useMutation`. */
3187
- declare const useDeviceManagerAdoptDevice: typeof trpc.deviceManager.adoptDevice.useMutation;
3188
- /** Generated alias around `trpc.deviceManager.getCreationSchema.useQuery`. */
3189
- declare const useDeviceManagerGetCreationSchema: typeof trpc.deviceManager.getCreationSchema.useQuery;
3190
- /** Generated alias around `trpc.deviceManager.createDevice.useMutation`. */
3191
- declare const useDeviceManagerCreateDevice: typeof trpc.deviceManager.createDevice.useMutation;
3192
- /** Generated alias around `trpc.deviceManager.testCreationField.useMutation`. */
3193
- declare const useDeviceManagerTestCreationField: typeof trpc.deviceManager.testCreationField.useMutation;
3194
- /** Generated alias around `trpc.deviceManager.testField.useMutation`. */
3195
- declare const useDeviceManagerTestField: typeof trpc.deviceManager.testField.useMutation;
3196
- /** Generated alias around `trpc.deviceManager.getDeviceStatusAggregate.useQuery`. */
3197
- declare const useDeviceManagerGetDeviceStatusAggregate: typeof trpc.deviceManager.getDeviceStatusAggregate.useQuery;
3198
- /** Generated alias around `trpc.deviceOps.getStreamSources.useQuery`. */
3199
- declare const useDeviceOpsGetStreamSources: typeof trpc.deviceOps.getStreamSources.useQuery;
3200
- /** Generated alias around `trpc.deviceOps.getConfigEntries.useQuery`. */
3201
- declare const useDeviceOpsGetConfigEntries: typeof trpc.deviceOps.getConfigEntries.useQuery;
3202
- /** Generated alias around `trpc.deviceOps.setConfig.useMutation`. */
3203
- declare const useDeviceOpsSetConfig: typeof trpc.deviceOps.setConfig.useMutation;
3204
- /** Generated alias around `trpc.deviceOps.removeDevice.useMutation`. */
3205
- declare const useDeviceOpsRemoveDevice: typeof trpc.deviceOps.removeDevice.useMutation;
3206
- /** Generated alias around `trpc.deviceOps.getSettingsSchema.useQuery`. */
3207
- declare const useDeviceOpsGetSettingsSchema: typeof trpc.deviceOps.getSettingsSchema.useQuery;
3208
- /** Generated alias around `trpc.deviceProvider.start.useMutation`. */
3209
- declare const useDeviceProviderStart: typeof trpc.deviceProvider.start.useMutation;
3210
- /** Generated alias around `trpc.deviceProvider.stop.useMutation`. */
3211
- declare const useDeviceProviderStop: typeof trpc.deviceProvider.stop.useMutation;
3212
- /** Generated alias around `trpc.deviceProvider.getStatus.useQuery`. */
3213
- declare const useDeviceProviderGetStatus: typeof trpc.deviceProvider.getStatus.useQuery;
3214
- /** Generated alias around `trpc.deviceProvider.getDevices.useQuery`. */
3215
- declare const useDeviceProviderGetDevices: typeof trpc.deviceProvider.getDevices.useQuery;
3216
- /** Generated alias around `trpc.deviceProvider.supportsDiscovery.useQuery`. */
3217
- declare const useDeviceProviderSupportsDiscovery: typeof trpc.deviceProvider.supportsDiscovery.useQuery;
3218
- /** Generated alias around `trpc.deviceProvider.discoverDevices.useMutation`. */
3219
- declare const useDeviceProviderDiscoverDevices: typeof trpc.deviceProvider.discoverDevices.useMutation;
3220
- /** Generated alias around `trpc.deviceProvider.adoptDiscoveredDevice.useMutation`. */
3221
- declare const useDeviceProviderAdoptDiscoveredDevice: typeof trpc.deviceProvider.adoptDiscoveredDevice.useMutation;
3222
- /** Generated alias around `trpc.deviceProvider.supportsManualCreation.useQuery`. */
3223
- declare const useDeviceProviderSupportsManualCreation: typeof trpc.deviceProvider.supportsManualCreation.useQuery;
3224
- /** Generated alias around `trpc.deviceProvider.getChildCreationSchema.useQuery`. */
3225
- declare const useDeviceProviderGetChildCreationSchema: typeof trpc.deviceProvider.getChildCreationSchema.useQuery;
3226
- /** Generated alias around `trpc.deviceProvider.createDevice.useMutation`. */
3227
- declare const useDeviceProviderCreateDevice: typeof trpc.deviceProvider.createDevice.useMutation;
3228
- /** Generated alias around `trpc.deviceProvider.testCreationField.useMutation`. */
3229
- declare const useDeviceProviderTestCreationField: typeof trpc.deviceProvider.testCreationField.useMutation;
3230
- /** Generated alias around `trpc.deviceState.getSnapshot.useQuery`. */
3231
- declare const useDeviceStateGetSnapshot: typeof trpc.deviceState.getSnapshot.useQuery;
3232
- /** Generated alias around `trpc.deviceState.getCapSlice.useQuery`. */
3233
- declare const useDeviceStateGetCapSlice: typeof trpc.deviceState.getCapSlice.useQuery;
3234
- /** Generated alias around `trpc.deviceState.getAllSnapshots.useQuery`. */
3235
- declare const useDeviceStateGetAllSnapshots: typeof trpc.deviceState.getAllSnapshots.useQuery;
3236
- /** Generated alias around `trpc.deviceState.setCapSlice.useMutation`. */
3237
- declare const useDeviceStateSetCapSlice: typeof trpc.deviceState.setCapSlice.useMutation;
3238
- /** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
3239
- declare const useDoorbellGetStatus: typeof trpc.doorbell.getStatus.useQuery;
3240
- /** Generated alias around `trpc.events.getEvents.useQuery`. */
3241
- declare const useEventsGetEvents: typeof trpc.events.getEvents.useQuery;
3242
- /** Generated alias around `trpc.events.getEventThumbnail.useQuery`. */
3243
- declare const useEventsGetEventThumbnail: typeof trpc.events.getEventThumbnail.useQuery;
3244
- /** Generated alias around `trpc.events.getEventClipUrl.useQuery`. */
3245
- declare const useEventsGetEventClipUrl: typeof trpc.events.getEventClipUrl.useQuery;
3246
- /** Generated alias around `trpc.integrations.list.useQuery`. */
3247
- declare const useIntegrationsList: typeof trpc.integrations.list.useQuery;
3248
- /** Generated alias around `trpc.integrations.get.useQuery`. */
3249
- declare const useIntegrationsGet: typeof trpc.integrations.get.useQuery;
3250
- /** Generated alias around `trpc.integrations.getByAddonId.useQuery`. */
3251
- declare const useIntegrationsGetByAddonId: typeof trpc.integrations.getByAddonId.useQuery;
3252
- /** Generated alias around `trpc.integrations.create.useMutation`. */
3253
- declare const useIntegrationsCreate: typeof trpc.integrations.create.useMutation;
3254
- /** Generated alias around `trpc.integrations.update.useMutation`. */
3255
- declare const useIntegrationsUpdate: typeof trpc.integrations.update.useMutation;
3256
- /** Generated alias around `trpc.integrations.delete.useMutation`. */
3257
- declare const useIntegrationsDelete: typeof trpc.integrations.delete.useMutation;
3258
- /** Generated alias around `trpc.integrations.getSettings.useQuery`. */
3259
- declare const useIntegrationsGetSettings: typeof trpc.integrations.getSettings.useQuery;
3260
- /** Generated alias around `trpc.integrations.setSettings.useMutation`. */
3261
- declare const useIntegrationsSetSettings: typeof trpc.integrations.setSettings.useMutation;
3262
- /** Generated alias around `trpc.integrations.getAvailableTypes.useQuery`. */
3263
- declare const useIntegrationsGetAvailableTypes: typeof trpc.integrations.getAvailableTypes.useQuery;
3264
- /** Generated alias around `trpc.integrations.testConnection.useMutation`. */
3265
- declare const useIntegrationsTestConnection: typeof trpc.integrations.testConnection.useMutation;
3266
- /** Generated alias around `trpc.intercom.startSession.useMutation`. */
3267
- declare const useIntercomStartSession: typeof trpc.intercom.startSession.useMutation;
3268
- /** Generated alias around `trpc.intercom.handleAnswer.useMutation`. */
3269
- declare const useIntercomHandleAnswer: typeof trpc.intercom.handleAnswer.useMutation;
3270
- /** Generated alias around `trpc.intercom.stopSession.useMutation`. */
3271
- declare const useIntercomStopSession: typeof trpc.intercom.stopSession.useMutation;
3272
- /** Generated alias around `trpc.intercom.getStatus.useQuery`. */
3273
- declare const useIntercomGetStatus: typeof trpc.intercom.getStatus.useQuery;
3274
- /** Generated alias around `trpc.metricsProvider.collectSnapshot.useQuery`. */
3275
- declare const useMetricsProviderCollectSnapshot: typeof trpc.metricsProvider.collectSnapshot.useQuery;
3276
- /** Generated alias around `trpc.metricsProvider.getCached.useQuery`. */
3277
- declare const useMetricsProviderGetCached: typeof trpc.metricsProvider.getCached.useQuery;
3278
- /** Generated alias around `trpc.metricsProvider.getCurrent.useQuery`. */
3279
- declare const useMetricsProviderGetCurrent: typeof trpc.metricsProvider.getCurrent.useQuery;
3280
- /** Generated alias around `trpc.metricsProvider.getDiskSpace.useQuery`. */
3281
- declare const useMetricsProviderGetDiskSpace: typeof trpc.metricsProvider.getDiskSpace.useQuery;
3282
- /** Generated alias around `trpc.metricsProvider.getGpuInfo.useQuery`. */
3283
- declare const useMetricsProviderGetGpuInfo: typeof trpc.metricsProvider.getGpuInfo.useQuery;
3284
- /** Generated alias around `trpc.metricsProvider.getCpuTemperature.useQuery`. */
3285
- declare const useMetricsProviderGetCpuTemperature: typeof trpc.metricsProvider.getCpuTemperature.useQuery;
3286
- /** Generated alias around `trpc.metricsProvider.getProcessStats.useQuery`. */
3287
- declare const useMetricsProviderGetProcessStats: typeof trpc.metricsProvider.getProcessStats.useQuery;
3288
- /** Generated alias around `trpc.metricsProvider.listAddonInstances.useQuery`. */
3289
- declare const useMetricsProviderListAddonInstances: typeof trpc.metricsProvider.listAddonInstances.useQuery;
3290
- /** Generated alias around `trpc.metricsProvider.getAddonStats.useQuery`. */
3291
- declare const useMetricsProviderGetAddonStats: typeof trpc.metricsProvider.getAddonStats.useQuery;
3292
- /** Generated alias around `trpc.metricsProvider.listNodeProcesses.useQuery`. */
3293
- declare const useMetricsProviderListNodeProcesses: typeof trpc.metricsProvider.listNodeProcesses.useQuery;
3294
- /** Generated alias around `trpc.metricsProvider.killProcess.useMutation`. */
3295
- declare const useMetricsProviderKillProcess: typeof trpc.metricsProvider.killProcess.useMutation;
3296
- /** Generated alias around `trpc.motion.isDetected.useQuery`. */
3297
- declare const useMotionIsDetected: typeof trpc.motion.isDetected.useQuery;
3298
- /** Generated alias around `trpc.motion.getStatus.useQuery`. */
3299
- declare const useMotionGetStatus: typeof trpc.motion.getStatus.useQuery;
3300
- /** Generated alias around `trpc.motionDetection.analyze.useMutation`. */
3301
- declare const useMotionDetectionAnalyze: typeof trpc.motionDetection.analyze.useMutation;
3302
- /** Generated alias around `trpc.motionDetection.removeCamera.useMutation`. */
3303
- declare const useMotionDetectionRemoveCamera: typeof trpc.motionDetection.removeCamera.useMutation;
3304
- /** Generated alias around `trpc.motionDetection.reset.useMutation`. */
3305
- declare const useMotionDetectionReset: typeof trpc.motionDetection.reset.useMutation;
3306
- /** Generated alias around `trpc.motionDetection.getDeviceSettingsContribution.useQuery`. */
3307
- declare const useMotionDetectionGetDeviceSettingsContribution: typeof trpc.motionDetection.getDeviceSettingsContribution.useQuery;
3308
- /** Generated alias around `trpc.motionDetection.getDeviceLiveContribution.useQuery`. */
3309
- declare const useMotionDetectionGetDeviceLiveContribution: typeof trpc.motionDetection.getDeviceLiveContribution.useQuery;
3310
- /** Generated alias around `trpc.motionDetection.applyDeviceSettingsPatch.useMutation`. */
3311
- declare const useMotionDetectionApplyDeviceSettingsPatch: typeof trpc.motionDetection.applyDeviceSettingsPatch.useMutation;
3312
- /** Generated alias around `trpc.motionTrigger.setMotionTrigger.useMutation`. */
3313
- declare const useMotionTriggerSetMotionTrigger: typeof trpc.motionTrigger.setMotionTrigger.useMutation;
3314
- /** Generated alias around `trpc.motionTrigger.getStatus.useQuery`. */
3315
- declare const useMotionTriggerGetStatus: typeof trpc.motionTrigger.getStatus.useQuery;
3316
- /** Generated alias around `trpc.nativeObjectDetection.getStatus.useQuery`. */
3317
- declare const useNativeObjectDetectionGetStatus: typeof trpc.nativeObjectDetection.getStatus.useQuery;
3318
- /** Generated alias around `trpc.networkQuality.getDeviceStats.useQuery`. */
3319
- declare const useNetworkQualityGetDeviceStats: typeof trpc.networkQuality.getDeviceStats.useQuery;
3320
- /** Generated alias around `trpc.networkQuality.getAllStats.useQuery`. */
3321
- declare const useNetworkQualityGetAllStats: typeof trpc.networkQuality.getAllStats.useQuery;
3322
- /** Generated alias around `trpc.networkQuality.reportClientStats.useMutation`. */
3323
- declare const useNetworkQualityReportClientStats: typeof trpc.networkQuality.reportClientStats.useMutation;
3324
- /** Generated alias around `trpc.nodes.topology.useQuery`. */
3325
- declare const useNodesTopology: typeof trpc.nodes.topology.useQuery;
3326
- /** Generated alias around `trpc.nodes.deployAddon.useMutation`. */
3327
- declare const useNodesDeployAddon: typeof trpc.nodes.deployAddon.useMutation;
3328
- /** Generated alias around `trpc.nodes.undeployAddon.useMutation`. */
3329
- declare const useNodesUndeployAddon: typeof trpc.nodes.undeployAddon.useMutation;
3330
- /** Generated alias around `trpc.nodes.restartAddon.useMutation`. */
3331
- declare const useNodesRestartAddon: typeof trpc.nodes.restartAddon.useMutation;
3332
- /** Generated alias around `trpc.nodes.restartProcess.useMutation`. */
3333
- declare const useNodesRestartProcess: typeof trpc.nodes.restartProcess.useMutation;
3334
- /** Generated alias around `trpc.nodes.restartNode.useMutation`. */
3335
- declare const useNodesRestartNode: typeof trpc.nodes.restartNode.useMutation;
3336
- /** Generated alias around `trpc.nodes.shutdownNode.useMutation`. */
3337
- declare const useNodesShutdownNode: typeof trpc.nodes.shutdownNode.useMutation;
3338
- /** Generated alias around `trpc.nodes.renameNode.useMutation`. */
3339
- declare const useNodesRenameNode: typeof trpc.nodes.renameNode.useMutation;
3340
- /** Generated alias around `trpc.nodes.clusterAddonStatus.useQuery`. */
3341
- declare const useNodesClusterAddonStatus: typeof trpc.nodes.clusterAddonStatus.useQuery;
3342
- /** Generated alias around `trpc.nodes.setProcessLogLevel.useMutation`. */
3343
- declare const useNodesSetProcessLogLevel: typeof trpc.nodes.setProcessLogLevel.useMutation;
3344
- /** Generated alias around `trpc.nodes.executeQuery.useMutation`. */
3345
- declare const useNodesExecuteQuery: typeof trpc.nodes.executeQuery.useMutation;
3346
- /** Generated alias around `trpc.notificationOutput.send.useMutation`. */
3347
- declare const useNotificationOutputSend: typeof trpc.notificationOutput.send.useMutation;
3348
- /** Generated alias around `trpc.notificationOutput.sendTest.useMutation`. */
3349
- declare const useNotificationOutputSendTest: typeof trpc.notificationOutput.sendTest.useMutation;
3350
- /** Generated alias around `trpc.osd.setOverlay.useMutation`. */
3351
- declare const useOsdSetOverlay: typeof trpc.osd.setOverlay.useMutation;
3352
- /** Generated alias around `trpc.osd.getStatus.useQuery`. */
3353
- declare const useOsdGetStatus: typeof trpc.osd.getStatus.useQuery;
3354
- /** Generated alias around `trpc.pipelineAnalytics.getActiveTracks.useQuery`. */
3355
- declare const usePipelineAnalyticsGetActiveTracks: typeof trpc.pipelineAnalytics.getActiveTracks.useQuery;
3356
- /** Generated alias around `trpc.pipelineAnalytics.getTrack.useQuery`. */
3357
- declare const usePipelineAnalyticsGetTrack: typeof trpc.pipelineAnalytics.getTrack.useQuery;
3358
- /** Generated alias around `trpc.pipelineAnalytics.listTracks.useQuery`. */
3359
- declare const usePipelineAnalyticsListTracks: typeof trpc.pipelineAnalytics.listTracks.useQuery;
3360
- /** Generated alias around `trpc.pipelineAnalytics.clearTracks.useMutation`. */
3361
- declare const usePipelineAnalyticsClearTracks: typeof trpc.pipelineAnalytics.clearTracks.useMutation;
3362
- /** Generated alias around `trpc.pipelineAnalytics.getMotionEvents.useQuery`. */
3363
- declare const usePipelineAnalyticsGetMotionEvents: typeof trpc.pipelineAnalytics.getMotionEvents.useQuery;
3364
- /** Generated alias around `trpc.pipelineAnalytics.getObjectEvents.useQuery`. */
3365
- declare const usePipelineAnalyticsGetObjectEvents: typeof trpc.pipelineAnalytics.getObjectEvents.useQuery;
3366
- /** Generated alias around `trpc.pipelineAnalytics.getAudioEvents.useQuery`. */
3367
- declare const usePipelineAnalyticsGetAudioEvents: typeof trpc.pipelineAnalytics.getAudioEvents.useQuery;
3368
- /** Generated alias around `trpc.pipelineAnalytics.getEventMedia.useQuery`. */
3369
- declare const usePipelineAnalyticsGetEventMedia: typeof trpc.pipelineAnalytics.getEventMedia.useQuery;
3370
- /** Generated alias around `trpc.pipelineAnalytics.getTrackMedia.useQuery`. */
3371
- declare const usePipelineAnalyticsGetTrackMedia: typeof trpc.pipelineAnalytics.getTrackMedia.useQuery;
3372
- /** Generated alias around `trpc.pipelineAnalytics.getDeviceSettingsContribution.useQuery`. */
3373
- declare const usePipelineAnalyticsGetDeviceSettingsContribution: typeof trpc.pipelineAnalytics.getDeviceSettingsContribution.useQuery;
3374
- /** Generated alias around `trpc.pipelineAnalytics.getDeviceLiveContribution.useQuery`. */
3375
- declare const usePipelineAnalyticsGetDeviceLiveContribution: typeof trpc.pipelineAnalytics.getDeviceLiveContribution.useQuery;
3376
- /** Generated alias around `trpc.pipelineAnalytics.applyDeviceSettingsPatch.useMutation`. */
3377
- declare const usePipelineAnalyticsApplyDeviceSettingsPatch: typeof trpc.pipelineAnalytics.applyDeviceSettingsPatch.useMutation;
3378
- /** Generated alias around `trpc.pipelineExecutor.getAvailableEngines.useQuery`. */
3379
- declare const usePipelineExecutorGetAvailableEngines: typeof trpc.pipelineExecutor.getAvailableEngines.useQuery;
3380
- /** Generated alias around `trpc.pipelineExecutor.getSelectedEngine.useQuery`. */
3381
- declare const usePipelineExecutorGetSelectedEngine: typeof trpc.pipelineExecutor.getSelectedEngine.useQuery;
3382
- /** Generated alias around `trpc.pipelineExecutor.getDefaultSteps.useQuery`. */
3383
- declare const usePipelineExecutorGetDefaultSteps: typeof trpc.pipelineExecutor.getDefaultSteps.useQuery;
3384
- /** Generated alias around `trpc.pipelineExecutor.reprobeEngine.useMutation`. */
3385
- declare const usePipelineExecutorReprobeEngine: typeof trpc.pipelineExecutor.reprobeEngine.useMutation;
3386
- /** Generated alias around `trpc.pipelineExecutor.getVideoPipelineSteps.useQuery`. */
3387
- declare const usePipelineExecutorGetVideoPipelineSteps: typeof trpc.pipelineExecutor.getVideoPipelineSteps.useQuery;
3388
- /** Generated alias around `trpc.pipelineExecutor.setVideoPipelineSteps.useMutation`. */
3389
- declare const usePipelineExecutorSetVideoPipelineSteps: typeof trpc.pipelineExecutor.setVideoPipelineSteps.useMutation;
3390
- /** Generated alias around `trpc.pipelineExecutor.getSchema.useQuery`. */
3391
- declare const usePipelineExecutorGetSchema: typeof trpc.pipelineExecutor.getSchema.useQuery;
3392
- /** Generated alias around `trpc.pipelineExecutor.getGlobalSteps.useQuery`. */
3393
- declare const usePipelineExecutorGetGlobalSteps: typeof trpc.pipelineExecutor.getGlobalSteps.useQuery;
3394
- /** Generated alias around `trpc.pipelineExecutor.getGlobalPipelineConfig.useQuery`. */
3395
- declare const usePipelineExecutorGetGlobalPipelineConfig: typeof trpc.pipelineExecutor.getGlobalPipelineConfig.useQuery;
3396
- /** Generated alias around `trpc.pipelineExecutor.getOrchestratorConfigSchema.useQuery`. */
3397
- declare const usePipelineExecutorGetOrchestratorConfigSchema: typeof trpc.pipelineExecutor.getOrchestratorConfigSchema.useQuery;
3398
- /** Generated alias around `trpc.pipelineExecutor.listTemplates.useQuery`. */
3399
- declare const usePipelineExecutorListTemplates: typeof trpc.pipelineExecutor.listTemplates.useQuery;
3400
- /** Generated alias around `trpc.pipelineExecutor.saveTemplate.useMutation`. */
3401
- declare const usePipelineExecutorSaveTemplate: typeof trpc.pipelineExecutor.saveTemplate.useMutation;
3402
- /** Generated alias around `trpc.pipelineExecutor.updateTemplate.useMutation`. */
3403
- declare const usePipelineExecutorUpdateTemplate: typeof trpc.pipelineExecutor.updateTemplate.useMutation;
3404
- /** Generated alias around `trpc.pipelineExecutor.deleteTemplate.useMutation`. */
3405
- declare const usePipelineExecutorDeleteTemplate: typeof trpc.pipelineExecutor.deleteTemplate.useMutation;
3406
- /** Generated alias around `trpc.pipelineExecutor.getCapabilities.useQuery`. */
3407
- declare const usePipelineExecutorGetCapabilities: typeof trpc.pipelineExecutor.getCapabilities.useQuery;
3408
- /** Generated alias around `trpc.pipelineExecutor.getAddonModels.useQuery`. */
3409
- declare const usePipelineExecutorGetAddonModels: typeof trpc.pipelineExecutor.getAddonModels.useQuery;
3410
- /** Generated alias around `trpc.pipelineExecutor.downloadModel.useMutation`. */
3411
- declare const usePipelineExecutorDownloadModel: typeof trpc.pipelineExecutor.downloadModel.useMutation;
3412
- /** Generated alias around `trpc.pipelineExecutor.deleteModel.useMutation`. */
3413
- declare const usePipelineExecutorDeleteModel: typeof trpc.pipelineExecutor.deleteModel.useMutation;
3414
- /** Generated alias around `trpc.pipelineExecutor.detect.useQuery`. */
3415
- declare const usePipelineExecutorDetect: typeof trpc.pipelineExecutor.detect.useQuery;
3416
- /** Generated alias around `trpc.pipelineExecutor.runPipeline.useMutation`. */
3417
- declare const usePipelineExecutorRunPipeline: typeof trpc.pipelineExecutor.runPipeline.useMutation;
3418
- /** Generated alias around `trpc.pipelineExecutor.runPipelineBatch.useMutation`. */
3419
- declare const usePipelineExecutorRunPipelineBatch: typeof trpc.pipelineExecutor.runPipelineBatch.useMutation;
3420
- /** Generated alias around `trpc.pipelineExecutor.cacheFrameInPool.useMutation`. */
3421
- declare const usePipelineExecutorCacheFrameInPool: typeof trpc.pipelineExecutor.cacheFrameInPool.useMutation;
3422
- /** Generated alias around `trpc.pipelineExecutor.inferCached.useMutation`. */
3423
- declare const usePipelineExecutorInferCached: typeof trpc.pipelineExecutor.inferCached.useMutation;
3424
- /** Generated alias around `trpc.pipelineExecutor.uncacheFrame.useMutation`. */
3425
- declare const usePipelineExecutorUncacheFrame: typeof trpc.pipelineExecutor.uncacheFrame.useMutation;
3426
- /** Generated alias around `trpc.pipelineExecutor.getEffectiveTuning.useQuery`. */
3427
- declare const usePipelineExecutorGetEffectiveTuning: typeof trpc.pipelineExecutor.getEffectiveTuning.useQuery;
3428
- /** Generated alias around `trpc.pipelineExecutor.listLoadedEngines.useQuery`. */
3429
- declare const usePipelineExecutorListLoadedEngines: typeof trpc.pipelineExecutor.listLoadedEngines.useQuery;
3430
- /** Generated alias around `trpc.pipelineExecutor.spinEngine.useMutation`. */
3431
- declare const usePipelineExecutorSpinEngine: typeof trpc.pipelineExecutor.spinEngine.useMutation;
3432
- /** Generated alias around `trpc.pipelineExecutor.killEngine.useMutation`. */
3433
- declare const usePipelineExecutorKillEngine: typeof trpc.pipelineExecutor.killEngine.useMutation;
3434
- /** Generated alias around `trpc.pipelineExecutor.listReferenceImages.useQuery`. */
3435
- declare const usePipelineExecutorListReferenceImages: typeof trpc.pipelineExecutor.listReferenceImages.useQuery;
3436
- /** Generated alias around `trpc.pipelineExecutor.getReferenceImage.useQuery`. */
3437
- declare const usePipelineExecutorGetReferenceImage: typeof trpc.pipelineExecutor.getReferenceImage.useQuery;
3438
- /** Generated alias around `trpc.pipelineExecutor.getReferenceAudioFiles.useQuery`. */
3439
- declare const usePipelineExecutorGetReferenceAudioFiles: typeof trpc.pipelineExecutor.getReferenceAudioFiles.useQuery;
3440
- /** Generated alias around `trpc.pipelineExecutor.getReferenceAudio.useQuery`. */
3441
- declare const usePipelineExecutorGetReferenceAudio: typeof trpc.pipelineExecutor.getReferenceAudio.useQuery;
3442
- /** Generated alias around `trpc.pipelineExecutor.getAudioCapabilities.useQuery`. */
3443
- declare const usePipelineExecutorGetAudioCapabilities: typeof trpc.pipelineExecutor.getAudioCapabilities.useQuery;
3444
- /** Generated alias around `trpc.pipelineExecutor.runAudioTest.useMutation`. */
3445
- declare const usePipelineExecutorRunAudioTest: typeof trpc.pipelineExecutor.runAudioTest.useMutation;
3446
- /** Generated alias around `trpc.pipelineExecutor.getDetectionConfigSchema.useQuery`. */
3447
- declare const usePipelineExecutorGetDetectionConfigSchema: typeof trpc.pipelineExecutor.getDetectionConfigSchema.useQuery;
3448
- /** Generated alias around `trpc.pipelineOrchestrator.assignPipeline.useMutation`. */
3449
- declare const usePipelineOrchestratorAssignPipeline: typeof trpc.pipelineOrchestrator.assignPipeline.useMutation;
3450
- /** Generated alias around `trpc.pipelineOrchestrator.unassignPipeline.useMutation`. */
3451
- declare const usePipelineOrchestratorUnassignPipeline: typeof trpc.pipelineOrchestrator.unassignPipeline.useMutation;
3452
- /** Generated alias around `trpc.pipelineOrchestrator.rebalance.useMutation`. */
3453
- declare const usePipelineOrchestratorRebalance: typeof trpc.pipelineOrchestrator.rebalance.useMutation;
3454
- /** Generated alias around `trpc.pipelineOrchestrator.getPipelineAssignments.useQuery`. */
3455
- declare const usePipelineOrchestratorGetPipelineAssignments: typeof trpc.pipelineOrchestrator.getPipelineAssignments.useQuery;
3456
- /** Generated alias around `trpc.pipelineOrchestrator.getPipelineAssignment.useQuery`. */
3457
- declare const usePipelineOrchestratorGetPipelineAssignment: typeof trpc.pipelineOrchestrator.getPipelineAssignment.useQuery;
3458
- /** Generated alias around `trpc.pipelineOrchestrator.getAgentLoad.useQuery`. */
3459
- declare const usePipelineOrchestratorGetAgentLoad: typeof trpc.pipelineOrchestrator.getAgentLoad.useQuery;
3460
- /** Generated alias around `trpc.pipelineOrchestrator.getGlobalMetrics.useQuery`. */
3461
- declare const usePipelineOrchestratorGetGlobalMetrics: typeof trpc.pipelineOrchestrator.getGlobalMetrics.useQuery;
3462
- /** Generated alias around `trpc.pipelineOrchestrator.getCameraMetrics.useQuery`. */
3463
- declare const usePipelineOrchestratorGetCameraMetrics: typeof trpc.pipelineOrchestrator.getCameraMetrics.useQuery;
3464
- /** Generated alias around `trpc.pipelineOrchestrator.getCapabilityBindings.useQuery`. */
3465
- declare const usePipelineOrchestratorGetCapabilityBindings: typeof trpc.pipelineOrchestrator.getCapabilityBindings.useQuery;
3466
- /** Generated alias around `trpc.pipelineOrchestrator.setCapabilityBinding.useMutation`. */
3467
- declare const usePipelineOrchestratorSetCapabilityBinding: typeof trpc.pipelineOrchestrator.setCapabilityBinding.useMutation;
3468
- /** Generated alias around `trpc.pipelineOrchestrator.assignDecoder.useMutation`. */
3469
- declare const usePipelineOrchestratorAssignDecoder: typeof trpc.pipelineOrchestrator.assignDecoder.useMutation;
3470
- /** Generated alias around `trpc.pipelineOrchestrator.unassignDecoder.useMutation`. */
3471
- declare const usePipelineOrchestratorUnassignDecoder: typeof trpc.pipelineOrchestrator.unassignDecoder.useMutation;
3472
- /** Generated alias around `trpc.pipelineOrchestrator.getDecoderAssignments.useQuery`. */
3473
- declare const usePipelineOrchestratorGetDecoderAssignments: typeof trpc.pipelineOrchestrator.getDecoderAssignments.useQuery;
3474
- /** Generated alias around `trpc.pipelineOrchestrator.assignAudio.useMutation`. */
3475
- declare const usePipelineOrchestratorAssignAudio: typeof trpc.pipelineOrchestrator.assignAudio.useMutation;
3476
- /** Generated alias around `trpc.pipelineOrchestrator.unassignAudio.useMutation`. */
3477
- declare const usePipelineOrchestratorUnassignAudio: typeof trpc.pipelineOrchestrator.unassignAudio.useMutation;
3478
- /** Generated alias around `trpc.pipelineOrchestrator.getAudioAssignment.useQuery`. */
3479
- declare const usePipelineOrchestratorGetAudioAssignment: typeof trpc.pipelineOrchestrator.getAudioAssignment.useQuery;
3480
- /** Generated alias around `trpc.pipelineOrchestrator.getAudioNodeLoad.useQuery`. */
3481
- declare const usePipelineOrchestratorGetAudioNodeLoad: typeof trpc.pipelineOrchestrator.getAudioNodeLoad.useQuery;
3482
- /** Generated alias around `trpc.pipelineOrchestrator.getAudioAssignments.useQuery`. */
3483
- declare const usePipelineOrchestratorGetAudioAssignments: typeof trpc.pipelineOrchestrator.getAudioAssignments.useQuery;
3484
- /** Generated alias around `trpc.pipelineOrchestrator.getDecoderAssignment.useQuery`. */
3485
- declare const usePipelineOrchestratorGetDecoderAssignment: typeof trpc.pipelineOrchestrator.getDecoderAssignment.useQuery;
3486
- /** Generated alias around `trpc.pipelineOrchestrator.getAgentSettings.useQuery`. */
3487
- declare const usePipelineOrchestratorGetAgentSettings: typeof trpc.pipelineOrchestrator.getAgentSettings.useQuery;
3488
- /** Generated alias around `trpc.pipelineOrchestrator.listAgentSettings.useQuery`. */
3489
- declare const usePipelineOrchestratorListAgentSettings: typeof trpc.pipelineOrchestrator.listAgentSettings.useQuery;
3490
- /** Generated alias around `trpc.pipelineOrchestrator.setAgentAddonDefaults.useMutation`. */
3491
- declare const usePipelineOrchestratorSetAgentAddonDefaults: typeof trpc.pipelineOrchestrator.setAgentAddonDefaults.useMutation;
3492
- /** Generated alias around `trpc.pipelineOrchestrator.removeAgentSettings.useMutation`. */
3493
- declare const usePipelineOrchestratorRemoveAgentSettings: typeof trpc.pipelineOrchestrator.removeAgentSettings.useMutation;
3494
- /** Generated alias around `trpc.pipelineOrchestrator.getCameraSettings.useQuery`. */
3495
- declare const usePipelineOrchestratorGetCameraSettings: typeof trpc.pipelineOrchestrator.getCameraSettings.useQuery;
3496
- /** Generated alias around `trpc.pipelineOrchestrator.setCameraStepToggle.useMutation`. */
3497
- declare const usePipelineOrchestratorSetCameraStepToggle: typeof trpc.pipelineOrchestrator.setCameraStepToggle.useMutation;
3498
- /** Generated alias around `trpc.pipelineOrchestrator.getCameraStepOverrides.useQuery`. */
3499
- declare const usePipelineOrchestratorGetCameraStepOverrides: typeof trpc.pipelineOrchestrator.getCameraStepOverrides.useQuery;
3500
- /** Generated alias around `trpc.pipelineOrchestrator.setCameraStepOverride.useMutation`. */
3501
- declare const usePipelineOrchestratorSetCameraStepOverride: typeof trpc.pipelineOrchestrator.setCameraStepOverride.useMutation;
3502
- /** Generated alias around `trpc.pipelineOrchestrator.setCameraPipelineForAgent.useMutation`. */
3503
- declare const usePipelineOrchestratorSetCameraPipelineForAgent: typeof trpc.pipelineOrchestrator.setCameraPipelineForAgent.useMutation;
3504
- /** Generated alias around `trpc.pipelineOrchestrator.resolvePipeline.useQuery`. */
3505
- declare const usePipelineOrchestratorResolvePipeline: typeof trpc.pipelineOrchestrator.resolvePipeline.useQuery;
3506
- /** Generated alias around `trpc.pipelineOrchestrator.listTemplates.useQuery`. */
3507
- declare const usePipelineOrchestratorListTemplates: typeof trpc.pipelineOrchestrator.listTemplates.useQuery;
3508
- /** Generated alias around `trpc.pipelineOrchestrator.saveTemplate.useMutation`. */
3509
- declare const usePipelineOrchestratorSaveTemplate: typeof trpc.pipelineOrchestrator.saveTemplate.useMutation;
3510
- /** Generated alias around `trpc.pipelineOrchestrator.updateTemplate.useMutation`. */
3511
- declare const usePipelineOrchestratorUpdateTemplate: typeof trpc.pipelineOrchestrator.updateTemplate.useMutation;
3512
- /** Generated alias around `trpc.pipelineOrchestrator.deleteTemplate.useMutation`. */
3513
- declare const usePipelineOrchestratorDeleteTemplate: typeof trpc.pipelineOrchestrator.deleteTemplate.useMutation;
3514
- /** Generated alias around `trpc.pipelineOrchestrator.getDeviceSettingsContribution.useQuery`. */
3515
- declare const usePipelineOrchestratorGetDeviceSettingsContribution: typeof trpc.pipelineOrchestrator.getDeviceSettingsContribution.useQuery;
3516
- /** Generated alias around `trpc.pipelineOrchestrator.getDeviceLiveContribution.useQuery`. */
3517
- declare const usePipelineOrchestratorGetDeviceLiveContribution: typeof trpc.pipelineOrchestrator.getDeviceLiveContribution.useQuery;
3518
- /** Generated alias around `trpc.pipelineOrchestrator.applyDeviceSettingsPatch.useMutation`. */
3519
- declare const usePipelineOrchestratorApplyDeviceSettingsPatch: typeof trpc.pipelineOrchestrator.applyDeviceSettingsPatch.useMutation;
3520
- /** Generated alias around `trpc.pipelineRunner.attachCamera.useMutation`. */
3521
- declare const usePipelineRunnerAttachCamera: typeof trpc.pipelineRunner.attachCamera.useMutation;
3522
- /** Generated alias around `trpc.pipelineRunner.detachCamera.useMutation`. */
3523
- declare const usePipelineRunnerDetachCamera: typeof trpc.pipelineRunner.detachCamera.useMutation;
3524
- /** Generated alias around `trpc.pipelineRunner.reportMotion.useMutation`. */
3525
- declare const usePipelineRunnerReportMotion: typeof trpc.pipelineRunner.reportMotion.useMutation;
3526
- /** Generated alias around `trpc.pipelineRunner.getLocalLoad.useQuery`. */
3527
- declare const usePipelineRunnerGetLocalLoad: typeof trpc.pipelineRunner.getLocalLoad.useQuery;
3528
- /** Generated alias around `trpc.pipelineRunner.getLocalMetrics.useQuery`. */
3529
- declare const usePipelineRunnerGetLocalMetrics: typeof trpc.pipelineRunner.getLocalMetrics.useQuery;
3530
- /** Generated alias around `trpc.pipelineRunner.getCameraMetrics.useQuery`. */
3531
- declare const usePipelineRunnerGetCameraMetrics: typeof trpc.pipelineRunner.getCameraMetrics.useQuery;
3532
- /** Generated alias around `trpc.pipelineRunner.getAllCameraMetrics.useQuery`. */
3533
- declare const usePipelineRunnerGetAllCameraMetrics: typeof trpc.pipelineRunner.getAllCameraMetrics.useQuery;
3534
- /** Generated alias around `trpc.pipelineRunner.getLocalCameras.useQuery`. */
3535
- declare const usePipelineRunnerGetLocalCameras: typeof trpc.pipelineRunner.getLocalCameras.useQuery;
3536
- /** Generated alias around `trpc.platformProbe.getCapabilities.useQuery`. */
3537
- declare const usePlatformProbeGetCapabilities: typeof trpc.platformProbe.getCapabilities.useQuery;
3538
- /** Generated alias around `trpc.platformProbe.getHardware.useQuery`. */
3539
- declare const usePlatformProbeGetHardware: typeof trpc.platformProbe.getHardware.useQuery;
3540
- /** Generated alias around `trpc.platformProbe.resolveInferenceConfig.useQuery`. */
3541
- declare const usePlatformProbeResolveInferenceConfig: typeof trpc.platformProbe.resolveInferenceConfig.useQuery;
3542
- /** Generated alias around `trpc.platformProbe.resolveHwAccel.useQuery`. */
3543
- declare const usePlatformProbeResolveHwAccel: typeof trpc.platformProbe.resolveHwAccel.useQuery;
3544
- /** Generated alias around `trpc.ptz.move.useMutation`. */
3545
- declare const usePtzMove: typeof trpc.ptz.move.useMutation;
3546
- /** Generated alias around `trpc.ptz.continuousMove.useMutation`. */
3547
- declare const usePtzContinuousMove: typeof trpc.ptz.continuousMove.useMutation;
3548
- /** Generated alias around `trpc.ptz.stop.useMutation`. */
3549
- declare const usePtzStop: typeof trpc.ptz.stop.useMutation;
3550
- /** Generated alias around `trpc.ptz.getPresets.useQuery`. */
3551
- declare const usePtzGetPresets: typeof trpc.ptz.getPresets.useQuery;
3552
- /** Generated alias around `trpc.ptz.goToPreset.useMutation`. */
3553
- declare const usePtzGoToPreset: typeof trpc.ptz.goToPreset.useMutation;
3554
- /** Generated alias around `trpc.ptz.goHome.useMutation`. */
3555
- declare const usePtzGoHome: typeof trpc.ptz.goHome.useMutation;
3556
- /** Generated alias around `trpc.ptz.getPosition.useQuery`. */
3557
- declare const usePtzGetPosition: typeof trpc.ptz.getPosition.useQuery;
3558
- /** Generated alias around `trpc.ptz.getStatus.useQuery`. */
3559
- declare const usePtzGetStatus: typeof trpc.ptz.getStatus.useQuery;
3560
- /** Generated alias around `trpc.ptzAutotrack.getStatus.useQuery`. */
3561
- declare const usePtzAutotrackGetStatus: typeof trpc.ptzAutotrack.getStatus.useQuery;
3562
- /** Generated alias around `trpc.ptzAutotrack.setEnabled.useMutation`. */
3563
- declare const usePtzAutotrackSetEnabled: typeof trpc.ptzAutotrack.setEnabled.useMutation;
3564
- /** Generated alias around `trpc.ptzAutotrack.getSettings.useQuery`. */
3565
- declare const usePtzAutotrackGetSettings: typeof trpc.ptzAutotrack.getSettings.useQuery;
3566
- /** Generated alias around `trpc.ptzAutotrack.setSettings.useMutation`. */
3567
- declare const usePtzAutotrackSetSettings: typeof trpc.ptzAutotrack.setSettings.useMutation;
3568
- /** Generated alias around `trpc.reboot.reboot.useMutation`. */
3569
- declare const useRebootReboot: typeof trpc.reboot.reboot.useMutation;
3570
- /** Generated alias around `trpc.recording.getSegments.useQuery`. */
3571
- declare const useRecordingGetSegments: typeof trpc.recording.getSegments.useQuery;
3572
- /** Generated alias around `trpc.recording.getPlaybackUrl.useQuery`. */
3573
- declare const useRecordingGetPlaybackUrl: typeof trpc.recording.getPlaybackUrl.useQuery;
3574
- /** Generated alias around `trpc.recording.getThumbnailAt.useQuery`. */
3575
- declare const useRecordingGetThumbnailAt: typeof trpc.recording.getThumbnailAt.useQuery;
3576
- /** Generated alias around `trpc.recordingEngine.getStatus.useQuery`. */
3577
- declare const useRecordingEngineGetStatus: typeof trpc.recordingEngine.getStatus.useQuery;
3578
- /** Generated alias around `trpc.recordingEngine.enable.useMutation`. */
3579
- declare const useRecordingEngineEnable: typeof trpc.recordingEngine.enable.useMutation;
3580
- /** Generated alias around `trpc.recordingEngine.disable.useMutation`. */
3581
- declare const useRecordingEngineDisable: typeof trpc.recordingEngine.disable.useMutation;
3582
- /** Generated alias around `trpc.recordingEngine.getConfig.useQuery`. */
3583
- declare const useRecordingEngineGetConfig: typeof trpc.recordingEngine.getConfig.useQuery;
3584
- /** Generated alias around `trpc.recordingEngine.updateConfig.useMutation`. */
3585
- declare const useRecordingEngineUpdateConfig: typeof trpc.recordingEngine.updateConfig.useMutation;
3586
- /** Generated alias around `trpc.recordingEngine.getPlaylist.useQuery`. */
3587
- declare const useRecordingEngineGetPlaylist: typeof trpc.recordingEngine.getPlaylist.useQuery;
3588
- /** Generated alias around `trpc.recordingEngine.getThumbnail.useQuery`. */
3589
- declare const useRecordingEngineGetThumbnail: typeof trpc.recordingEngine.getThumbnail.useQuery;
3590
- /** Generated alias around `trpc.recordingEngine.getSegments.useQuery`. */
3591
- declare const useRecordingEngineGetSegments: typeof trpc.recordingEngine.getSegments.useQuery;
3592
- /** Generated alias around `trpc.recordingEngine.getAvailability.useQuery`. */
3593
- declare const useRecordingEngineGetAvailability: typeof trpc.recordingEngine.getAvailability.useQuery;
3594
- /** Generated alias around `trpc.recordingEngine.estimateStorage.useQuery`. */
3595
- declare const useRecordingEngineEstimateStorage: typeof trpc.recordingEngine.estimateStorage.useQuery;
3596
- /** Generated alias around `trpc.recordingEngine.estimateGlobalStorage.useQuery`. */
3597
- declare const useRecordingEngineEstimateGlobalStorage: typeof trpc.recordingEngine.estimateGlobalStorage.useQuery;
3598
- /** Generated alias around `trpc.recordingEngine.getStorageUsage.useQuery`. */
3599
- declare const useRecordingEngineGetStorageUsage: typeof trpc.recordingEngine.getStorageUsage.useQuery;
3600
- /** Generated alias around `trpc.recordingEngine.setPolicy.useMutation`. */
3601
- declare const useRecordingEngineSetPolicy: typeof trpc.recordingEngine.setPolicy.useMutation;
3602
- /** Generated alias around `trpc.recordingEngine.getPolicy.useQuery`. */
3603
- declare const useRecordingEngineGetPolicy: typeof trpc.recordingEngine.getPolicy.useQuery;
3604
- /** Generated alias around `trpc.recordingEngine.getPolicyStatus.useQuery`. */
3605
- declare const useRecordingEngineGetPolicyStatus: typeof trpc.recordingEngine.getPolicyStatus.useQuery;
3606
- /** Generated alias around `trpc.recordingEngine.getRetentionConfig.useQuery`. */
3607
- declare const useRecordingEngineGetRetentionConfig: typeof trpc.recordingEngine.getRetentionConfig.useQuery;
3608
- /** Generated alias around `trpc.recordingEngine.updateRetentionConfig.useMutation`. */
3609
- declare const useRecordingEngineUpdateRetentionConfig: typeof trpc.recordingEngine.updateRetentionConfig.useMutation;
3610
- /** Generated alias around `trpc.recordingEngine.getMotionStats.useQuery`. */
3611
- declare const useRecordingEngineGetMotionStats: typeof trpc.recordingEngine.getMotionStats.useQuery;
3612
- /** Generated alias around `trpc.settingsStore.get.useQuery`. */
3613
- declare const useSettingsStoreGet: typeof trpc.settingsStore.get.useQuery;
3614
- /** Generated alias around `trpc.settingsStore.set.useMutation`. */
3615
- declare const useSettingsStoreSet: typeof trpc.settingsStore.set.useMutation;
3616
- /** Generated alias around `trpc.settingsStore.query.useQuery`. */
3617
- declare const useSettingsStoreQuery: typeof trpc.settingsStore.query.useQuery;
3618
- /** Generated alias around `trpc.settingsStore.insert.useMutation`. */
3619
- declare const useSettingsStoreInsert: typeof trpc.settingsStore.insert.useMutation;
3620
- /** Generated alias around `trpc.settingsStore.update.useMutation`. */
3621
- declare const useSettingsStoreUpdate: typeof trpc.settingsStore.update.useMutation;
3622
- /** Generated alias around `trpc.settingsStore.delete.useMutation`. */
3623
- declare const useSettingsStoreDelete: typeof trpc.settingsStore.delete.useMutation;
3624
- /** Generated alias around `trpc.settingsStore.count.useQuery`. */
3625
- declare const useSettingsStoreCount: typeof trpc.settingsStore.count.useQuery;
3626
- /** Generated alias around `trpc.settingsStore.isEmpty.useQuery`. */
3627
- declare const useSettingsStoreIsEmpty: typeof trpc.settingsStore.isEmpty.useQuery;
3628
- /** Generated alias around `trpc.settingsStore.declareCollection.useMutation`. */
3629
- declare const useSettingsStoreDeclareCollection: typeof trpc.settingsStore.declareCollection.useMutation;
3630
- /** Generated alias around `trpc.snapshot.getSnapshot.useQuery`. */
3631
- declare const useSnapshotGetSnapshot: typeof trpc.snapshot.getSnapshot.useQuery;
3632
- /** Generated alias around `trpc.snapshot.invalidateCache.useMutation`. */
3633
- declare const useSnapshotInvalidateCache: typeof trpc.snapshot.invalidateCache.useMutation;
3634
- /** Generated alias around `trpc.snapshot.getStatus.useQuery`. */
3635
- declare const useSnapshotGetStatus: typeof trpc.snapshot.getStatus.useQuery;
3636
- /** Generated alias around `trpc.snapshot.getDeviceSettingsContribution.useQuery`. */
3637
- declare const useSnapshotGetDeviceSettingsContribution: typeof trpc.snapshot.getDeviceSettingsContribution.useQuery;
3638
- /** Generated alias around `trpc.snapshot.getDeviceLiveContribution.useQuery`. */
3639
- declare const useSnapshotGetDeviceLiveContribution: typeof trpc.snapshot.getDeviceLiveContribution.useQuery;
3640
- /** Generated alias around `trpc.snapshot.applyDeviceSettingsPatch.useMutation`. */
3641
- declare const useSnapshotApplyDeviceSettingsPatch: typeof trpc.snapshot.applyDeviceSettingsPatch.useMutation;
3642
- /** Generated alias around `trpc.snapshotProvider.supportsDevice.useQuery`. */
3643
- declare const useSnapshotProviderSupportsDevice: typeof trpc.snapshotProvider.supportsDevice.useQuery;
3644
- /** Generated alias around `trpc.snapshotProvider.getSnapshot.useQuery`. */
3645
- declare const useSnapshotProviderGetSnapshot: typeof trpc.snapshotProvider.getSnapshot.useQuery;
3646
- /** Generated alias around `trpc.storage.resolve.useQuery`. */
3647
- declare const useStorageResolve: typeof trpc.storage.resolve.useQuery;
3648
- /** Generated alias around `trpc.storage.write.useMutation`. */
3649
- declare const useStorageWrite: typeof trpc.storage.write.useMutation;
3650
- /** Generated alias around `trpc.storage.read.useQuery`. */
3651
- declare const useStorageRead: typeof trpc.storage.read.useQuery;
3652
- /** Generated alias around `trpc.storage.exists.useQuery`. */
3653
- declare const useStorageExists: typeof trpc.storage.exists.useQuery;
3654
- /** Generated alias around `trpc.storage.list.useQuery`. */
3655
- declare const useStorageList: typeof trpc.storage.list.useQuery;
3656
- /** Generated alias around `trpc.storage.delete.useMutation`. */
3657
- declare const useStorageDelete: typeof trpc.storage.delete.useMutation;
3658
- /** Generated alias around `trpc.storage.getAvailableSpace.useQuery`. */
3659
- declare const useStorageGetAvailableSpace: typeof trpc.storage.getAvailableSpace.useQuery;
3660
- /** Generated alias around `trpc.streamBroker.publishCameraStream.useMutation`. */
3661
- declare const useStreamBrokerPublishCameraStream: typeof trpc.streamBroker.publishCameraStream.useMutation;
3662
- /** Generated alias around `trpc.streamBroker.retractCameraStream.useMutation`. */
3663
- declare const useStreamBrokerRetractCameraStream: typeof trpc.streamBroker.retractCameraStream.useMutation;
3664
- /** Generated alias around `trpc.streamBroker.assignProfile.useMutation`. */
3665
- declare const useStreamBrokerAssignProfile: typeof trpc.streamBroker.assignProfile.useMutation;
3666
- /** Generated alias around `trpc.streamBroker.unassignProfile.useMutation`. */
3667
- declare const useStreamBrokerUnassignProfile: typeof trpc.streamBroker.unassignProfile.useMutation;
3668
- /** Generated alias around `trpc.streamBroker.listAllCameraStreams.useQuery`. */
3669
- declare const useStreamBrokerListAllCameraStreams: typeof trpc.streamBroker.listAllCameraStreams.useQuery;
3670
- /** Generated alias around `trpc.streamBroker.listAllProfileSlots.useQuery`. */
3671
- declare const useStreamBrokerListAllProfileSlots: typeof trpc.streamBroker.listAllProfileSlots.useQuery;
3672
- /** Generated alias around `trpc.streamBroker.getBrokerStats.useQuery`. */
3673
- declare const useStreamBrokerGetBrokerStats: typeof trpc.streamBroker.getBrokerStats.useQuery;
3674
- /** Generated alias around `trpc.streamBroker.listClients.useQuery`. */
3675
- declare const useStreamBrokerListClients: typeof trpc.streamBroker.listClients.useQuery;
3676
- /** Generated alias around `trpc.streamBroker.killClient.useMutation`. */
3677
- declare const useStreamBrokerKillClient: typeof trpc.streamBroker.killClient.useMutation;
3678
- /** Generated alias around `trpc.streamBroker.restartProfile.useMutation`. */
3679
- declare const useStreamBrokerRestartProfile: typeof trpc.streamBroker.restartProfile.useMutation;
3680
- /** Generated alias around `trpc.streamBroker.getStreamUrl.useQuery`. */
3681
- declare const useStreamBrokerGetStreamUrl: typeof trpc.streamBroker.getStreamUrl.useQuery;
3682
- /** Generated alias around `trpc.streamBroker.getBroker.useQuery`. */
3683
- declare const useStreamBrokerGetBroker: typeof trpc.streamBroker.getBroker.useQuery;
3684
- /** Generated alias around `trpc.streamBroker.setPreBufferDuration.useMutation`. */
3685
- declare const useStreamBrokerSetPreBufferDuration: typeof trpc.streamBroker.setPreBufferDuration.useMutation;
3686
- /** Generated alias around `trpc.streamBroker.getPreBufferInfo.useQuery`. */
3687
- declare const useStreamBrokerGetPreBufferInfo: typeof trpc.streamBroker.getPreBufferInfo.useQuery;
3688
- /** Generated alias around `trpc.streamBroker.getRtspPort.useQuery`. */
3689
- declare const useStreamBrokerGetRtspPort: typeof trpc.streamBroker.getRtspPort.useQuery;
3690
- /** Generated alias around `trpc.streamBroker.getAllRtspEntries.useQuery`. */
3691
- declare const useStreamBrokerGetAllRtspEntries: typeof trpc.streamBroker.getAllRtspEntries.useQuery;
3692
- /** Generated alias around `trpc.streamBroker.getRtspEntry.useQuery`. */
3693
- declare const useStreamBrokerGetRtspEntry: typeof trpc.streamBroker.getRtspEntry.useQuery;
3694
- /** Generated alias around `trpc.streamBroker.regenerateRtspToken.useMutation`. */
3695
- declare const useStreamBrokerRegenerateRtspToken: typeof trpc.streamBroker.regenerateRtspToken.useMutation;
3696
- /** Generated alias around `trpc.streamBroker.setRtspEnabled.useMutation`. */
3697
- declare const useStreamBrokerSetRtspEnabled: typeof trpc.streamBroker.setRtspEnabled.useMutation;
3698
- /** Generated alias around `trpc.streamBroker.isRtspEnabled.useQuery`. */
3699
- declare const useStreamBrokerIsRtspEnabled: typeof trpc.streamBroker.isRtspEnabled.useQuery;
3700
- /** Generated alias around `trpc.streamBroker.getDeviceSettingsContribution.useQuery`. */
3701
- declare const useStreamBrokerGetDeviceSettingsContribution: typeof trpc.streamBroker.getDeviceSettingsContribution.useQuery;
3702
- /** Generated alias around `trpc.streamBroker.getDeviceLiveContribution.useQuery`. */
3703
- declare const useStreamBrokerGetDeviceLiveContribution: typeof trpc.streamBroker.getDeviceLiveContribution.useQuery;
3704
- /** Generated alias around `trpc.streamBroker.applyDeviceSettingsPatch.useMutation`. */
3705
- declare const useStreamBrokerApplyDeviceSettingsPatch: typeof trpc.streamBroker.applyDeviceSettingsPatch.useMutation;
3706
- /** Generated alias around `trpc.switch.setState.useMutation`. */
3707
- declare const useSwitchSetState: typeof trpc.switch.setState.useMutation;
3708
- /** Generated alias around `trpc.switch.getStatus.useQuery`. */
3709
- declare const useSwitchGetStatus: typeof trpc.switch.getStatus.useQuery;
3710
- /** Generated alias around `trpc.system.info.useQuery`. */
3711
- declare const useSystemInfo: typeof trpc.system.info.useQuery;
3712
- /** Generated alias around `trpc.system.health.useQuery`. */
3713
- declare const useSystemHealth: typeof trpc.system.health.useQuery;
3714
- /** Generated alias around `trpc.system.featureFlags.useQuery`. */
3715
- declare const useSystemFeatureFlags: typeof trpc.system.featureFlags.useQuery;
3716
- /** Generated alias around `trpc.system.networkAddresses.useQuery`. */
3717
- declare const useSystemNetworkAddresses: typeof trpc.system.networkAddresses.useQuery;
3718
- /** Generated alias around `trpc.system.getRetentionConfig.useQuery`. */
3719
- declare const useSystemGetRetentionConfig: typeof trpc.system.getRetentionConfig.useQuery;
3720
- /** Generated alias around `trpc.system.setRetentionConfig.useMutation`. */
3721
- declare const useSystemSetRetentionConfig: typeof trpc.system.setRetentionConfig.useMutation;
3722
- /** Generated alias around `trpc.system.forceRetentionCleanup.useMutation`. */
3723
- declare const useSystemForceRetentionCleanup: typeof trpc.system.forceRetentionCleanup.useMutation;
3724
- /** Generated alias around `trpc.toast.onToast.useSubscription`. */
3725
- declare const useToastOnToast: typeof trpc.toast.onToast.useSubscription;
3726
- /** Generated alias around `trpc.turnProvider.getTurnServers.useQuery`. */
3727
- declare const useTurnProviderGetTurnServers: typeof trpc.turnProvider.getTurnServers.useQuery;
3728
- /** Generated alias around `trpc.userManagement.listUsers.useQuery`. */
3729
- declare const useUserManagementListUsers: typeof trpc.userManagement.listUsers.useQuery;
3730
- /** Generated alias around `trpc.userManagement.createUser.useMutation`. */
3731
- declare const useUserManagementCreateUser: typeof trpc.userManagement.createUser.useMutation;
3732
- /** Generated alias around `trpc.userManagement.updateUser.useMutation`. */
3733
- declare const useUserManagementUpdateUser: typeof trpc.userManagement.updateUser.useMutation;
3734
- /** Generated alias around `trpc.userManagement.deleteUser.useMutation`. */
3735
- declare const useUserManagementDeleteUser: typeof trpc.userManagement.deleteUser.useMutation;
3736
- /** Generated alias around `trpc.userManagement.resetPassword.useMutation`. */
3737
- declare const useUserManagementResetPassword: typeof trpc.userManagement.resetPassword.useMutation;
3738
- /** Generated alias around `trpc.userManagement.validateCredentials.useMutation`. */
3739
- declare const useUserManagementValidateCredentials: typeof trpc.userManagement.validateCredentials.useMutation;
3740
- /** Generated alias around `trpc.userManagement.listApiKeys.useQuery`. */
3741
- declare const useUserManagementListApiKeys: typeof trpc.userManagement.listApiKeys.useQuery;
3742
- /** Generated alias around `trpc.userManagement.createApiKey.useMutation`. */
3743
- declare const useUserManagementCreateApiKey: typeof trpc.userManagement.createApiKey.useMutation;
3744
- /** Generated alias around `trpc.userManagement.revokeApiKey.useMutation`. */
3745
- declare const useUserManagementRevokeApiKey: typeof trpc.userManagement.revokeApiKey.useMutation;
3746
- /** Generated alias around `trpc.userManagement.validateApiKey.useMutation`. */
3747
- declare const useUserManagementValidateApiKey: typeof trpc.userManagement.validateApiKey.useMutation;
3748
- /** Generated alias around `trpc.userManagement.createScopedToken.useMutation`. */
3749
- declare const useUserManagementCreateScopedToken: typeof trpc.userManagement.createScopedToken.useMutation;
3750
- /** Generated alias around `trpc.userManagement.revokeScopedToken.useMutation`. */
3751
- declare const useUserManagementRevokeScopedToken: typeof trpc.userManagement.revokeScopedToken.useMutation;
3752
- /** Generated alias around `trpc.userManagement.validateScopedToken.useQuery`. */
3753
- declare const useUserManagementValidateScopedToken: typeof trpc.userManagement.validateScopedToken.useQuery;
3754
- /** Generated alias around `trpc.userManagement.listScopedTokens.useQuery`. */
3755
- declare const useUserManagementListScopedTokens: typeof trpc.userManagement.listScopedTokens.useQuery;
3756
- /** Generated alias around `trpc.webrtcSession.listStreams.useQuery`. */
3757
- declare const useWebrtcSessionListStreams: typeof trpc.webrtcSession.listStreams.useQuery;
3758
- /** Generated alias around `trpc.webrtcSession.createSession.useMutation`. */
3759
- declare const useWebrtcSessionCreateSession: typeof trpc.webrtcSession.createSession.useMutation;
3760
- /** Generated alias around `trpc.webrtcSession.handleAnswer.useMutation`. */
3761
- declare const useWebrtcSessionHandleAnswer: typeof trpc.webrtcSession.handleAnswer.useMutation;
3762
- /** Generated alias around `trpc.webrtcSession.closeSession.useMutation`. */
3763
- declare const useWebrtcSessionCloseSession: typeof trpc.webrtcSession.closeSession.useMutation;
3764
- /** Generated alias around `trpc.webrtcSession.hasAdaptiveBitrate.useQuery`. */
3765
- declare const useWebrtcSessionHasAdaptiveBitrate: typeof trpc.webrtcSession.hasAdaptiveBitrate.useQuery;
3766
- /** Generated alias around `trpc.zoneAnalytics.getCurrentSnapshot.useQuery`. */
3767
- declare const useZoneAnalyticsGetCurrentSnapshot: typeof trpc.zoneAnalytics.getCurrentSnapshot.useQuery;
3768
- /** Generated alias around `trpc.zoneAnalytics.getZoneHistory.useQuery`. */
3769
- declare const useZoneAnalyticsGetZoneHistory: typeof trpc.zoneAnalytics.getZoneHistory.useQuery;
3770
- /** Generated alias around `trpc.zoneAnalytics.getCameraHistory.useQuery`. */
3771
- declare const useZoneAnalyticsGetCameraHistory: typeof trpc.zoneAnalytics.getCameraHistory.useQuery;
3772
- /** Generated alias around `trpc.zoneAnalytics.getUnzonedHistory.useQuery`. */
3773
- declare const useZoneAnalyticsGetUnzonedHistory: typeof trpc.zoneAnalytics.getUnzonedHistory.useQuery;
3774
- /** Generated alias around `trpc.zoneRules.listRules.useQuery`. */
3775
- declare const useZoneRulesListRules: typeof trpc.zoneRules.listRules.useQuery;
3776
- /** Generated alias around `trpc.zoneRules.setRules.useMutation`. */
3777
- declare const useZoneRulesSetRules: typeof trpc.zoneRules.setRules.useMutation;
3778
- /** Generated alias around `trpc.zones.listZones.useQuery`. */
3779
- declare const useZonesListZones: typeof trpc.zones.listZones.useQuery;
3780
- /** Generated alias around `trpc.zones.addZone.useMutation`. */
3781
- declare const useZonesAddZone: typeof trpc.zones.addZone.useMutation;
3782
- /** Generated alias around `trpc.zones.removeZone.useMutation`. */
3783
- declare const useZonesRemoveZone: typeof trpc.zones.removeZone.useMutation;
3784
- /** Generated alias around `trpc.zones.updateZone.useMutation`. */
3785
- declare const useZonesUpdateZone: typeof trpc.zones.updateZone.useMutation;
3786
-
3787
- export { type ActivityTabId, AddonGlobalSettingsForm, type AddonPageProps, type AgentColumn, AgentStepEditor, type AgentStepEditorProps, AppShell, type AppShellProps, type AudioClassification, AudioClassificationList, type AudioClassificationListProps, AudioLevelWaveform, type AudioLevelWaveformProps, AudioWaveform, type AudioWaveformProps, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, type BadgeProps, BatteryBadge, type BatteryBadgeProps, type BatteryStatusLike, BottomSheet, type BottomSheetProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonProps, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, CameraStreamPlayer, type CameraStreamPlayerProps, Card, type CardProps, type CellState, Checkbox, type CheckboxProps, type ClientStreamHints, type ClusterNode, CodeBlock, type CodeBlockProps, CollapsibleCard, type CollapsibleCardProps, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, type ConfirmActionButtonProps, ConfirmDialogProvider, type CustomFieldRenderer, type CustomFieldRendererMap, type CustomFieldRendererProps, CustomFieldRenderersProvider, type CustomFieldRenderersProviderProps, DEFAULT_COLOR, DataTable, type DataTableAction, type DataTableProps, type Detection, DetectionCanvas, type DetectionCanvasProps, DetectionOverlay, type DetectionOverlayProps, DetectionResultTree, type DetectionResultTreeProps, type DetectionState, DevShell, type DevShellProps, DeviceActivityPanel, type DeviceActivityPanelProps, DeviceCard, type DeviceCardAction, type DeviceCardBadge, type DeviceCardProps, DeviceContextProvider, type DeviceContextProviderProps, type DeviceDetections, DeviceGrid, type DeviceGridProps, DeviceItem, type DeviceItemDevice, type DeviceItemKind, type DeviceItemParent, type DeviceItemProps, type DeviceItemVariant, type DeviceItemView, DeviceList, type DeviceListAddonOption, type DeviceListProps, type DevicePipelineMetrics, type DeviceSnapshot, type DeviceSnapshotImage, type DeviceWebrtcResult, Dialog, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, type DoorbellPressEvent, DoorbellRecentPanel, type DoorbellRecentPanelProps, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, type EditorMode, EmptyState, type EmptyStateProps, EventStream, type EventStreamProps, FilterBar, type FilterBarProps, type FilterDef, FloatingEventStream, type FloatingEventStreamProps, FloatingLogStream, type FloatingLogStreamProps, FloatingPanel, type FloatingPanelProps, FormField$1 as FormField, type FormFieldProps$1 as FormFieldProps, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, INPUT_COMPACT, IconButton, type IconButtonProps, ImageSelector, type ImageSelectorProps, type InferenceAgentOption, type InferenceBackendOption, InferenceConfigSelector, type InferenceConfigSelectorProps, type InferenceModelOption, Input, type InputProps, KebabMenu, type KebabMenuItem, type KebabMenuProps, KeyValueList, type KeyValueListProps, LIST_ROW, Label, type LabelProps, type LiveBuffer, type LiveEventCallback, LogStream, type LogStreamProps, LoginForm, type LoginFormProps, type MirrorInput, type MirrorOutcome, type MirrorResultEntry, type MirrorSource, MobileDrawer, type MobileDrawerProps, type MotionRawBox, type MotionRawState, type MotionState, type MotionZone, type MountAddonPageOptions, NodeMultiSelectField, NodePicker, type NodePickerProps, NodeSelectField, PHASE_CONFIG, type PTZDirection, PTZOverlay, type PTZOverlayProps, type PTZTrpcProxy, PageHeader, type PageHeaderProps, PhaseIcon, type PhaseIconProps, type PhaseVisual, PipelineBuilder, type PipelineBuilderProps, type PipelineRuntimeOption, PipelineRuntimeSelector, PipelineStep, type PipelineStepDisplayConfig, type PipelineStepProps, PipelineTreeMatrix, type PipelineTreeMatrixProps, type PlayerConnectionState, type PlayerOverlayLayer, PlayerOverlaysProvider, type PlayerOverlaysProviderProps, type PlayerToolbarButton, Popover, PopoverContent, PopoverTrigger, type ProbeState, ProviderBadge, type ProviderBadgeProps, type ProviderType, type ReferenceImage, ResponseLog, type ResponseLogProps, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, ScrollArea, type ScrollAreaProps, Select, type SelectOption, type SelectProps, SemanticBadge, type SemanticBadgeProps, type SemanticBadgeVariant, Separator, type SeparatorProps, Sidebar, SidebarItem, type SidebarItemProps, type SidebarProps, type SidebarSection, type SignalingResult, Skeleton, type SkeletonProps, SlideOverPanel, type SlideOverPanelProps, SnapshotButton, type SnapshotButtonProps, type SnapshotButtonTrpc, StatCard, type StatCardProps, StateValuesStream, type StateValuesStreamProps, StatusBadge, type StatusBadgeProps, type StatusType, type StepDotState, StepTimings, type StepTimingsProps, StepTreeMaster, type StepTreeMasterProps, type StepTreeNode, type StreamChoice, StreamPanel, type StreamPanelProps, type StreamStats, Switch, type SwitchProps, type SystemMutationSelector, SystemProvider, type SystemProviderProps, type SystemQuerySelector, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, Tabs, TabsContent, TabsList, TabsTrigger, Tooltip, TooltipContent, TooltipTrigger, type TranslationFn, type UseDeviceBatteryTrpc, type UseDeviceCapabilityOptions, type UseDeviceCapabilityResult, type UseDeviceProxyTrpc, type UseDeviceWebrtcTrpc, type UseDoorbellEventsOptions, type UseDoorbellEventsResult, type UsePTZOptions, type UsePTZResult, UseThemeModeReturn, VersionBadge, type VersionBadgeProps, type WidgetMetadataEntry, type WidgetProps, type WidgetRegistry, WidgetRegistryProvider, type WidgetRegistryProviderProps, WidgetSlot, type WidgetSlotProps, type ZoneDraft, type ZoneDraftPoint, type ZoneDrawingKind, type ZoneEditingActions, ZoneEditingProvider, type ZoneEditingProviderProps, type ZoneEditingState, buildStepTreeFromSchema, cn, createSharedContext, deriveDeviceKind, ensureMfHostInit, getClassColor, getPhaseVisual, isFieldVisible, mirror, mountAddonPage, providerIcons, statusIcons, trpc, useAccessoriesGetStatus, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsUninstallPackage, useAddonsUpdatePackage, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useBackupDelete, useBackupList, useBackupRestore, useBackupTrigger, useBatteryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetRtspEntries, useClusterNodes, useConfirm, useCustomFieldRenderer, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetInfo, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceBattery, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceId, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAllocateDeviceId, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverDevices, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerSetDisabled, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomStartSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLiveBuffer, useLiveEvent, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useNativeObjectDetectionGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputSend, useNotificationOutputSendTest, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDetect, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, 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, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDecoderAssignment, usePipelineOrchestratorGetDecoderAssignments, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignDecoder, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerReportMotion, usePlatformProbeGetCapabilities, usePlatformProbeGetHardware, usePlatformProbeResolveHwAccel, usePlatformProbeResolveInferenceConfig, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzStop, useRebootReboot, useRecordingEngineDisable, useRecordingEngineEnable, useRecordingEngineEstimateGlobalStorage, useRecordingEngineEstimateStorage, useRecordingEngineGetAvailability, useRecordingEngineGetConfig, useRecordingEngineGetMotionStats, useRecordingEngineGetPlaylist, useRecordingEngineGetPolicy, useRecordingEngineGetPolicyStatus, useRecordingEngineGetRetentionConfig, useRecordingEngineGetSegments, useRecordingEngineGetStatus, useRecordingEngineGetStorageUsage, useRecordingEngineGetThumbnail, useRecordingEngineSetPolicy, useRecordingEngineUpdateConfig, useRecordingEngineUpdateRetentionConfig, useRecordingGetPlaybackUrl, useRecordingGetSegments, useRecordingGetThumbnailAt, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetStatus, useSnapshotInvalidateCache, useSnapshotProviderGetSnapshot, useSnapshotProviderSupportsDevice, useStorageDelete, useStorageExists, useStorageGetAvailableSpace, useStorageList, useStorageRead, useStorageResolve, useStorageWrite, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBroker, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerPublishCameraStream, useStreamBrokerRegenerateRtspToken, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerUnassignProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useToastOnToast, useTurnProviderGetTurnServers, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementListApiKeys, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeScopedToken, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionHandleAnswer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone };
1
+ export * from './theme';
2
+ export * from './lib';
3
+ export * from './icons';
4
+ export * from './primitives';
5
+ export * from './composites';
6
+ export * from './contexts/custom-field-renderers';
7
+ export * from './contexts/device-context';
8
+ export * from './contexts/player-overlays';
9
+ export * from './contexts/zone-editing';
10
+ export { SystemProvider, useSystem, useOptionalSystem, type SystemProviderProps, } from './contexts/system-context';
11
+ export { WidgetRegistryProvider, useWidgetRegistry, useOptionalWidgetRegistry, useWidget, useWidgetMetadata, useAllWidgets, type WidgetRegistry, type WidgetRegistryProviderProps, type WidgetProps, type WidgetMetadataEntry, } from './contexts/widget-registry';
12
+ export * from './hooks';
13
+ export * from './generated/system-hooks';
14
+ export { trpc } from './trpc-react';