@camstack/types 1.2.188 → 1.2.190

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 (30) hide show
  1. package/dist/addon.js +2 -2
  2. package/dist/addon.mjs +2 -2
  3. package/dist/camera/stream-pick.d.ts +71 -0
  4. package/dist/capabilities/camera-streams.cap.d.ts +10 -0
  5. package/dist/capabilities/index.d.ts +5 -3
  6. package/dist/capabilities/native-object-detection.cap.d.ts +67 -0
  7. package/dist/capabilities/notification-rules.cap.d.ts +60 -12
  8. package/dist/capabilities/osd-manager.cap.d.ts +18 -0
  9. package/dist/capabilities/stream-broker.cap.d.ts +37 -0
  10. package/dist/capabilities/stream-signals.cap.d.ts +80 -0
  11. package/dist/capabilities/webrtc-session.cap.d.ts +1 -0
  12. package/dist/enums/event-category.d.ts +14 -0
  13. package/dist/enums.js +1 -1
  14. package/dist/enums.mjs +1 -1
  15. package/dist/{event-category-ZyX6jcse.mjs → event-category-BVDXG4tB.mjs} +14 -0
  16. package/dist/{event-category-yW4s1MGD.js → event-category-BVfsrBYA.js} +14 -0
  17. package/dist/generated/addon-api.d.ts +36 -0
  18. package/dist/generated/capability-router-map.d.ts +5 -2
  19. package/dist/generated/device-local-state.d.ts +3 -0
  20. package/dist/generated/device-proxy.d.ts +4 -1
  21. package/dist/generated/device-scoped-caps.d.ts +1 -1
  22. package/dist/generated/method-access-map.d.ts +1 -1
  23. package/dist/generated/method-device-selectors.d.ts +2 -2
  24. package/dist/generated/runtime-state-durability.d.ts +1 -1
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.js +442 -39
  27. package/dist/index.mjs +434 -40
  28. package/dist/{sleep-DXsYD0RX.js → sleep-B8nfmQ8a.js} +8 -2
  29. package/dist/{sleep-DBKu2-U5.mjs → sleep-BEyvfshj.mjs} +8 -2
  30. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-DXsYD0RX.js");
3
- const require_event_category = require("./event-category-yW4s1MGD.js");
2
+ const require_sleep = require("./sleep-B8nfmQ8a.js");
3
+ const require_event_category = require("./event-category-BVfsrBYA.js");
4
4
  const require_err_msg = require("./err-msg-COpsHMw2.js");
5
5
  //#region src/generated/cap-input-defaults.ts
6
6
  /**
package/dist/addon.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { D as adminUiCapability, E as DeviceType, G as scopeKey, H as ReadinessTimeoutError, M as expandCapMethods, R as nodePin, S as DEVICE_CHILDREN_BATCH_MAX, St as normalizeAddonInitResult, Tt as emitReadiness, V as ReadinessRegistry, a as asJsonObject, b as deviceOpsCapability, bt as DisposerChain, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, vt as DATAPLANE_SECRET_HEADER, x as viewerUiCapability, xt as BaseAddon, z as readNodePin } from "./sleep-DBKu2-U5.mjs";
2
- import { t as EventCategory } from "./event-category-ZyX6jcse.mjs";
1
+ import { D as adminUiCapability, E as DeviceType, G as scopeKey, H as ReadinessTimeoutError, M as expandCapMethods, R as nodePin, S as DEVICE_CHILDREN_BATCH_MAX, St as normalizeAddonInitResult, Tt as emitReadiness, V as ReadinessRegistry, a as asJsonObject, b as deviceOpsCapability, bt as DisposerChain, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, vt as DATAPLANE_SECRET_HEADER, x as viewerUiCapability, xt as BaseAddon, z as readNodePin } from "./sleep-BEyvfshj.mjs";
2
+ import { t as EventCategory } from "./event-category-BVDXG4tB.mjs";
3
3
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
5
5
  /**
@@ -0,0 +1,71 @@
1
+ /**
2
+ * THE ranking behind `cameraStreams.pickStream` — one place where "which
3
+ * stream should this consumer get" is answered.
4
+ *
5
+ * It is pure, and it lives here rather than inside the broker, because the
6
+ * point of the exercise was that there be exactly ONE of it. On 2026-09-13
7
+ * there were two: this picker, and a private scorer inside the Alexa exporter
8
+ * written the same day because the picker could not express Amazon's ceiling.
9
+ * A second authority for a question that already had one is the defect this
10
+ * repo keeps paying for — two knobs where the second outranks the first (D62),
11
+ * a pin no UI could show, a flag that never reached ffmpeg.
12
+ *
13
+ * Each consumer passes ITS OWN numbers. Alexa's floor is Amazon's 480p and its
14
+ * ceiling 1080p; HomeKit's are its own. The thresholds belong to whoever has
15
+ * the requirement, never to a default in here.
16
+ */
17
+ export interface PickCandidate {
18
+ readonly camStreamId: string;
19
+ readonly codec?: string | undefined;
20
+ readonly height?: number | undefined;
21
+ readonly width?: number | undefined;
22
+ }
23
+ export interface PickRanking {
24
+ /** Codecs usable with no transcode. Empty ⇒ every codec is usable. */
25
+ readonly acceptCodecs: readonly string[];
26
+ /** Whether a codec outside `acceptCodecs` may win, transcoded. */
27
+ readonly allowTranscode: boolean;
28
+ /** Ordered provider prefixes; earlier wins. */
29
+ readonly preferredProviders: readonly string[];
30
+ /** `highest` / `lowest`, used when `targetHeight` is absent. */
31
+ readonly resolutionPreference: 'highest' | 'lowest';
32
+ /** The height the consumer means to deliver. See the cap's docblock. */
33
+ readonly targetHeight?: number | undefined;
34
+ }
35
+ export interface RankedPick {
36
+ readonly candidate: PickCandidate;
37
+ readonly transcodes: boolean;
38
+ }
39
+ /**
40
+ * THE target rule: which of two sizes serves a consumer better.
41
+ *
42
+ * "Prefer at or above the target so the consumer downscales instead of
43
+ * upscaling; among those the SMALLEST, because the extra pixels are thrown
44
+ * away and the decode is not; among the rest the LARGEST, because it is the
45
+ * closest we can get." One sentence, and until now it was written twice — once
46
+ * here in lines, once in `stream-selection.ts` in pixels, for the same two
47
+ * exporters. The two agreed, which is luck, not a property.
48
+ *
49
+ * The `size` is whatever measure the caller ranks by: the cap ranks by LINES
50
+ * (a consumer's requirement is stated in p), the RTSP picker by PIXELS (it
51
+ * compares entries of possibly different aspect). The rule is the same either
52
+ * way and the measure is the caller's business.
53
+ *
54
+ * Returns a sort delta: negative when `a` should come first.
55
+ */
56
+ export declare function compareToTarget(a: number, b: number, target: number): number;
57
+ export declare function codecIsAccepted(codec: string | undefined, accept: readonly string[]): boolean;
58
+ /**
59
+ * Order the candidates and return the winner, or `null` when none qualifies.
60
+ *
61
+ * The order, and every term is there for a measured reason:
62
+ *
63
+ * 1. **A stream we can take AS IS beats one we must re-encode.** A transcode
64
+ * is a decode plus an encode for as long as the session lasts, and on this
65
+ * hub a concurrent HEVC decode is what exhausted the VAAPI device.
66
+ * 2. **Provider preference**, unchanged — a native dial beats a relayed one.
67
+ * 3. **The target**, when the consumer named one: the smallest stream that
68
+ * reaches it, else the tallest that does not. Absent, the caller's
69
+ * `resolutionPreference` decides, exactly as before.
70
+ */
71
+ export declare function rankStreams(candidates: readonly PickCandidate[], ranking: PickRanking): RankedPick | null;
@@ -22,6 +22,7 @@ export declare const PickStreamRequirementsSchema: z.ZodReadonly<z.ZodObject<{
22
22
  vp9: "vp9";
23
23
  }>>>>;
24
24
  minHeight: z.ZodOptional<z.ZodNumber>;
25
+ maxHeight: z.ZodOptional<z.ZodNumber>;
25
26
  minWidth: z.ZodOptional<z.ZodNumber>;
26
27
  excludeDerived: z.ZodOptional<z.ZodBoolean>;
27
28
  requireSiblingCodec: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
@@ -33,6 +34,7 @@ export declare const PickStreamRequirementsSchema: z.ZodReadonly<z.ZodObject<{
33
34
  vp8: "vp8";
34
35
  vp9: "vp9";
35
36
  }>>>>;
37
+ allowTranscode: z.ZodOptional<z.ZodBoolean>;
36
38
  }, z.core.$strip>>;
37
39
  export declare const PickStreamPreferencesSchema: z.ZodReadonly<z.ZodObject<{
38
40
  preferredProviders: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
@@ -40,7 +42,10 @@ export declare const PickStreamPreferencesSchema: z.ZodReadonly<z.ZodObject<{
40
42
  highest: "highest";
41
43
  lowest: "lowest";
42
44
  }>>;
45
+ targetHeight: z.ZodOptional<z.ZodNumber>;
43
46
  }, z.core.$strip>>;
47
+ export type PickStreamRequirements = z.infer<typeof PickStreamRequirementsSchema>;
48
+ export type PickStreamPreferences = z.infer<typeof PickStreamPreferencesSchema>;
44
49
  export declare const PickedCamStreamSchema: z.ZodObject<{
45
50
  camStreamId: z.ZodString;
46
51
  codec: z.ZodOptional<z.ZodString>;
@@ -48,6 +53,7 @@ export declare const PickedCamStreamSchema: z.ZodObject<{
48
53
  width: z.ZodNumber;
49
54
  height: z.ZodNumber;
50
55
  }, z.core.$strip>>;
56
+ transcodes: z.ZodBoolean;
51
57
  reason: z.ZodString;
52
58
  }, z.core.$strip>;
53
59
  export type PickedCamStream = z.infer<typeof PickedCamStreamSchema>;
@@ -213,6 +219,7 @@ export declare const cameraStreamsCapability: {
213
219
  vp9: "vp9";
214
220
  }>>>>;
215
221
  minHeight: z.ZodOptional<z.ZodNumber>;
222
+ maxHeight: z.ZodOptional<z.ZodNumber>;
216
223
  minWidth: z.ZodOptional<z.ZodNumber>;
217
224
  excludeDerived: z.ZodOptional<z.ZodBoolean>;
218
225
  requireSiblingCodec: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
@@ -224,6 +231,7 @@ export declare const cameraStreamsCapability: {
224
231
  vp8: "vp8";
225
232
  vp9: "vp9";
226
233
  }>>>>;
234
+ allowTranscode: z.ZodOptional<z.ZodBoolean>;
227
235
  }, z.core.$strip>>;
228
236
  preferences: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
229
237
  preferredProviders: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
@@ -231,6 +239,7 @@ export declare const cameraStreamsCapability: {
231
239
  highest: "highest";
232
240
  lowest: "lowest";
233
241
  }>>;
242
+ targetHeight: z.ZodOptional<z.ZodNumber>;
234
243
  }, z.core.$strip>>>;
235
244
  }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
236
245
  camStreamId: z.ZodString;
@@ -239,6 +248,7 @@ export declare const cameraStreamsCapability: {
239
248
  width: z.ZodNumber;
240
249
  height: z.ZodNumber;
241
250
  }, z.core.$strip>>;
251
+ transcodes: z.ZodBoolean;
242
252
  reason: z.ZodString;
243
253
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
244
254
  };
@@ -34,7 +34,8 @@ export { AuthResultSchema, authProviderCapability } from './auth-provider.cap.js
34
34
  export { ArchiveEntrySchema, ArchiveManifestSchema, BackupDestinationInfoSchema, BackupEntrySchema, type BackupRun, type BackupRunPhase, BackupRunPhaseSchema, BackupRunSchema, type BackupRunState, BackupRunStateSchema, type BackupTriggerResult, BackupTriggerResultSchema, backupCapability, type IBackupProvider, LocationStatSchema, } from './backup.cap.js';
35
35
  export { BrokerAddInputSchema, BrokerGetStateInputSchema, type BrokerInfo as UnifiedBrokerInfo, BrokerInfoSchema as UnifiedBrokerInfoSchema, type BrokerProviderInfo, BrokerProviderInfoSchema, BrokerPublishInputSchema, BrokerRegistryStatusSchema, type BrokerStatus as UnifiedBrokerStatus, BrokerStatusEnum, BrokerSubscribeInputSchema, BrokerSubscribeResultSchema, BrokerTestConnectionResultSchema, BrokerUnsubscribeInputSchema, brokerCapability, type IBrokerProvider, } from './broker.cap.js';
36
36
  export { cameraPipelineConfigCapability, type ICameraPipelineConfigProvider, } from './camera-pipeline-config.cap.js';
37
- export { cameraStreamsCapability, type ICameraStreamsProvider, type PickedCamStream, PickedCamStreamSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, type StreamCodec, StreamCodecSchema, } from './camera-streams.cap.js';
37
+ export { streamSignalsCapability, type IStreamSignalsProvider, type StreamSignal, StreamSignalSchema, type StreamSignalsStatus, StreamSignalsStatusSchema, } from './stream-signals.cap.js';
38
+ export { cameraStreamsCapability, type ICameraStreamsProvider, type PickedCamStream, PickedCamStreamSchema, type PickStreamPreferences, PickStreamPreferencesSchema, type PickStreamRequirements, PickStreamRequirementsSchema, type StreamCodec, StreamCodecSchema, } from './camera-streams.cap.js';
38
39
  export { extractNestedAddonId, isArrayOutputSchema, isCollectionArrayMethod, isObjectInput, isVoidInput, kebabToCamel, looseSchema, objectInputDeclaresAddonId, procedureAuthKey, resolveMethodAuth, } from './cap-router-predicates.js';
39
40
  export type { CapabilityDefinition, CapabilityEventSchema, CapabilityMethodAuth, CapabilityMethodCaller, CapabilityMethodKind, CapabilityMethodOptions, CapabilityMethodSchema, CapabilityMountHint, CapabilityMountKind, CapabilityStatusItemArray, CapabilityStatusKind, CapabilityStatusSchema, CapCaller, DeviceConfigDerivedFormUi, DeviceConfigSpec, DeviceConfigUiSpec, DeviceConfigWidgetUi, DeviceSettingsContribution, InferDeviceProxyCap, InferEvents, InferName, InferNativeProvider, InferProvider, InferRuntimeState, ProviderKind, RuntimeStateDurability, UiContribution, UiContributionKind, UiContributionRemote, } from './capability-definition.js';
40
41
  export { DEFAULT_RUNTIME_STATE_DURABILITY, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, event, expandCapMethods, isDeviceConfigCap, method, resolveCapMount, } from './capability-definition.js';
@@ -169,7 +170,7 @@ export { type IMeshNetworkProvider, type MeshEndpoint, type MeshPeer, MeshPeerSc
169
170
  export { type IMotionProvider, MOTION_CLOSE_AFTER_MS, type MotionOnMotionChangedData, MotionOnMotionChangedDataSchema, type MotionStatus, MotionStatusSchema, motionCapability, } from './motion.cap.js';
170
171
  export { type IMotionTriggerProvider, type MotionTriggerRuntimeState, MotionTriggerRuntimeStateSchema, type MotionTriggerStatus, MotionTriggerStatusSchema, motionTriggerCapability, } from './motion-trigger.cap.js';
171
172
  export { type IMotionZonesProvider, type MotionZoneOptions, MotionZoneOptionsSchema, type MotionZonePatch, MotionZonePatchSchema, type MotionZoneRegion, MotionZoneRegionSchema, type MotionZoneStatus, MotionZoneStatusSchema, motionZonesCapability, } from './motion-zones.cap.js';
172
- export { type INativeObjectDetectionProvider, type NativeDetection, NativeDetectionSchema, type NativeObjectClass, NativeObjectClassEnum, type NativeObjectDetectionRuntimeState, NativeObjectDetectionRuntimeStateSchema, type NativeObjectDetectionStatus, NativeObjectDetectionStatusSchema, nativeObjectDetectionCapability, } from './native-object-detection.cap.js';
173
+ export { type INativeObjectDetectionProvider, type NativeDetection, NativeDetectionSchema, type NativeObjectClass, NativeObjectClassEnum, type NativeObjectDetectionOptions, NativeObjectDetectionOptionsSchema, type NativeObjectDetectionRuntimeState, NativeObjectDetectionRuntimeStateSchema, type NativeObjectDetectionSettingsPatch, NativeObjectDetectionSettingsPatchSchema, type NativeObjectDetectionStatus, NativeObjectDetectionStatusSchema, type NativeObjectGeometry, NativeObjectGeometryEnum, nativeObjectDetectionCapability, } from './native-object-detection.cap.js';
173
174
  export { type INavigationProvider, NAVIGATION_ACTION_CATALOG, NAVIGATION_LIGHT_LEVEL_MAX, NAVIGATION_LIGHT_LEVEL_MIN, type NavigationActionEntry, NavigationActionEntrySchema, type NavigationActionId, NavigationActionIdSchema, type NavigationEntryKind, NavigationEntryKindSchema, type NavigationFeatures, NavigationFeaturesSchema, type NavigationLightMode, NavigationLightModeSchema, type NavigationMode, NavigationModeSchema, type NavigationMoveCommand, NavigationMoveCommandSchema, type NavigationPoint, NavigationPointSchema, type NavigationRuntimeState, NavigationRuntimeStateSchema, type NavigationStatus, NavigationStatusSchema, navigationCapability, } from './navigation.cap.js';
174
175
  export { type INetworkLinkProvider, NETWORK_LINK_TYPES, NETWORK_LINK_UNKNOWN, type NetworkLinkStatus, NetworkLinkStatusSchema, type NetworkLinkType, networkLinkCapability, signalPercentFromBars, signalPercentFromRssi, } from './network-link.cap.js';
175
176
  export { ClientNetworkStatsSchema, DeviceNetworkStatsSchema, type INetworkQualityProvider, networkQualityCapability, StreamNetworkStatsSchema, } from './network-quality.cap.js';
@@ -241,6 +242,7 @@ import type { brokerCapability } from './broker.cap.js';
241
242
  import type { buttonCapability } from './button.cap.js';
242
243
  import type { cameraCredentialsCapability } from './camera-credentials.cap.js';
243
244
  import type { cameraPipelineConfigCapability } from './camera-pipeline-config.cap.js';
245
+ import type { streamSignalsCapability } from './stream-signals.cap.js';
244
246
  import type { cameraStreamsCapability } from './camera-streams.cap.js';
245
247
  import type { carbonMonoxideCapability } from './carbon-monoxide.cap.js';
246
248
  import type { climateControlCapability } from './climate-control.cap.js';
@@ -370,6 +372,6 @@ import type { webrtcSessionCapability } from './webrtc-session.cap.js';
370
372
  import type { zoneAnalyticsCapability } from './zone-analytics.cap.js';
371
373
  import type { zoneRulesCapability } from './zone-rules.cap.js';
372
374
  import type { zonesCapability } from './zones.cap.js';
373
- type AnyCapability = typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageMigrationCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof storageOccupancyCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof terminalSessionCapability | typeof settingsStoreCapability | typeof dataStoreProviderCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof vectorStoreCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof eventsCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingExportCapability | typeof recordingSignalCapability | typeof deviceOpsCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof imageSettingsCapability | typeof osdCapability | typeof osdManagerCapability | typeof accessoriesCapability | typeof batteryCapability | typeof networkLinkCapability | typeof buttonCapability | typeof cameraCredentialsCapability | typeof deviceStatusCapability | typeof doorbellCapability | typeof eventEmitterCapability | typeof faceGalleryCapability | typeof featureProbeCapability | typeof intercomCapability | typeof nativeObjectDetectionCapability | typeof plateGalleryCapability | typeof switchCapability | typeof updateCapability | typeof videoclipsCapability;
375
+ type AnyCapability = typeof streamSignalsCapability | typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageMigrationCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof storageOccupancyCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof terminalSessionCapability | typeof settingsStoreCapability | typeof dataStoreProviderCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof vectorStoreCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof eventsCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingExportCapability | typeof recordingSignalCapability | typeof deviceOpsCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof imageSettingsCapability | typeof osdCapability | typeof osdManagerCapability | typeof accessoriesCapability | typeof batteryCapability | typeof networkLinkCapability | typeof buttonCapability | typeof cameraCredentialsCapability | typeof deviceStatusCapability | typeof doorbellCapability | typeof eventEmitterCapability | typeof faceGalleryCapability | typeof featureProbeCapability | typeof intercomCapability | typeof nativeObjectDetectionCapability | typeof plateGalleryCapability | typeof switchCapability | typeof updateCapability | typeof videoclipsCapability;
374
376
  export type CapabilityName = AnyCapability['name'];
375
377
  export type ITypedReadinessRegistry = IReadinessRegistry<CapabilityName>;
@@ -66,6 +66,44 @@ export declare const NativeObjectDetectionStatusSchema: z.ZodObject<{
66
66
  enabled: z.ZodBoolean;
67
67
  }, z.core.$strip>;
68
68
  export type NativeObjectDetectionStatus = z.infer<typeof NativeObjectDetectionStatusSchema>;
69
+ /**
70
+ * What a camera's onboard detections actually CARRY.
71
+ *
72
+ * `boxed` — the firmware ships a bounding box with the class, so a detection is
73
+ * a subject the pipeline can track, crop and score.
74
+ * `flag-only` — the firmware ships the class and nothing else. The pipeline
75
+ * needs geometry to make a subject out of it, so such a push reaches the
76
+ * tracker as motion and no further. On Reolink this is every battery camera:
77
+ * the boxes ride the BcMedia sub-stream, which a battery camera never attaches.
78
+ *
79
+ * Reported and not inferred, because the operator's question in front of the
80
+ * toggle is "what do I get", and "a class with no box" and "a subject" are
81
+ * different answers (D14: the derived form is only as honest as `getOptions`).
82
+ */
83
+ export declare const NativeObjectGeometryEnum: z.ZodEnum<{
84
+ boxed: "boxed";
85
+ "flag-only": "flag-only";
86
+ }>;
87
+ export type NativeObjectGeometry = z.infer<typeof NativeObjectGeometryEnum>;
88
+ export declare const NativeObjectDetectionOptionsSchema: z.ZodObject<{
89
+ supportedClasses: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
90
+ person: "person";
91
+ vehicle: "vehicle";
92
+ animal: "animal";
93
+ package: "package";
94
+ face: "face";
95
+ other: "other";
96
+ }>>>;
97
+ geometry: z.ZodEnum<{
98
+ boxed: "boxed";
99
+ "flag-only": "flag-only";
100
+ }>;
101
+ }, z.core.$strip>;
102
+ export type NativeObjectDetectionOptions = z.infer<typeof NativeObjectDetectionOptionsSchema>;
103
+ export declare const NativeObjectDetectionSettingsPatchSchema: z.ZodObject<{
104
+ enabled: z.ZodOptional<z.ZodBoolean>;
105
+ }, z.core.$strip>;
106
+ export type NativeObjectDetectionSettingsPatch = z.infer<typeof NativeObjectDetectionSettingsPatchSchema>;
69
107
  export declare const NativeObjectDetectionRuntimeStateSchema: z.ZodObject<{
70
108
  lastByClass: z.ZodRecord<z.ZodEnum<{
71
109
  person: "person";
@@ -104,7 +142,36 @@ export declare const nativeObjectDetectionCapability: {
104
142
  readonly deviceNative: true;
105
143
  readonly mode: "singleton";
106
144
  readonly deviceTypes: readonly [DeviceType.Camera];
145
+ readonly deviceConfig: {
146
+ readonly ui: {
147
+ readonly kind: "derived-form";
148
+ readonly builderId: "native-object-detection";
149
+ readonly tab: "motion";
150
+ };
151
+ };
107
152
  readonly methods: {
153
+ readonly getOptions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
154
+ deviceId: z.ZodNumber;
155
+ }, z.core.$strip>, z.ZodObject<{
156
+ supportedClasses: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
157
+ person: "person";
158
+ vehicle: "vehicle";
159
+ animal: "animal";
160
+ package: "package";
161
+ face: "face";
162
+ other: "other";
163
+ }>>>;
164
+ geometry: z.ZodEnum<{
165
+ boxed: "boxed";
166
+ "flag-only": "flag-only";
167
+ }>;
168
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
169
+ readonly setSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
170
+ deviceId: z.ZodNumber;
171
+ settings: z.ZodObject<{
172
+ enabled: z.ZodOptional<z.ZodBoolean>;
173
+ }, z.core.$strip>;
174
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
108
175
  readonly setEnabled: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
109
176
  deviceId: z.ZodNumber;
110
177
  enabled: z.ZodBoolean;