@camstack/types 1.2.421 → 1.2.423

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 (40) hide show
  1. package/dist/addon.js +1 -1
  2. package/dist/addon.mjs +1 -1
  3. package/dist/capabilities/composer.cap.d.ts +129 -57
  4. package/dist/capabilities/core-blocks.cap.d.ts +936 -410
  5. package/dist/capabilities/index.d.ts +3 -1
  6. package/dist/capabilities/meter.cap.d.ts +53 -0
  7. package/dist/capabilities/notification-rules.cap.d.ts +12 -0
  8. package/dist/client.js +17 -1
  9. package/dist/client.mjs +17 -1
  10. package/dist/composition/composition-report.d.ts +45 -0
  11. package/dist/composition/composition.d.ts +196 -19
  12. package/dist/composition/helpers/compile-history.d.ts +13 -0
  13. package/dist/composition/helpers/compile.d.ts +2 -1
  14. package/dist/composition/helpers/energy.d.ts +8 -0
  15. package/dist/composition/helpers/history-math.d.ts +39 -0
  16. package/dist/composition/helpers/history-window.d.ts +71 -0
  17. package/dist/composition/helpers/index.d.ts +6 -2
  18. package/dist/composition/helpers/source-pick.d.ts +2 -0
  19. package/dist/composition/helpers/spec.d.ts +23 -10
  20. package/dist/{composition-B3Hkb6v7.js → composition-CPRAP41h.js} +792 -8
  21. package/dist/{composition-B2rw5L29.mjs → composition-CpETZ4HL.mjs} +595 -9
  22. package/dist/device/cap-vocabulary/entries/sensors.d.ts +1 -1
  23. package/dist/generated/addon-api.d.ts +14 -0
  24. package/dist/generated/addon-cap-facts.d.ts +1 -1
  25. package/dist/generated/cap-status-types.d.ts +3 -1
  26. package/dist/generated/capability-router-map.d.ts +5 -2
  27. package/dist/generated/device-local-state.d.ts +3 -0
  28. package/dist/generated/device-proxy.d.ts +3 -0
  29. package/dist/generated/device-scoped-caps.d.ts +1 -1
  30. package/dist/generated/history-catalog.d.ts +1 -1
  31. package/dist/generated/method-access-map.d.ts +1 -1
  32. package/dist/generated/method-device-selectors.d.ts +1 -1
  33. package/dist/generated/runtime-state-durability.d.ts +1 -1
  34. package/dist/index.js +761 -447
  35. package/dist/index.mjs +723 -448
  36. package/dist/node.js +1 -1
  37. package/dist/node.mjs +1 -1
  38. package/dist/{sleep-bykKrTgu.mjs → sleep-0sD_LHLI.mjs} +10 -1
  39. package/dist/{sleep-YJ6FVsUu.js → sleep-CEKGW7A5.js} +10 -1
  40. package/package.json +1 -1
@@ -198,6 +198,7 @@ export { type DeviceCodeSeverity, DeviceCodeSeveritySchema, type ILawnMowerContr
198
198
  export { type AdvertisedLocalPort, type ConnectionEndpoint, type HubAddressBook, type HubAddresses, HubAddressRoleSchema, type HubAddressRow, type HubAddressSnapshot, type ILocalNetworkProvider, type LocalInterface, localNetworkCapability, type NotificationEndpoint, } from './local-network.cap.js';
199
199
  export { type ILockControlProvider, type LockControlStatus, LockControlStatusSchema, type LockState, LockStateSchema, lockControlCapability, } from './lock-control.cap.js';
200
200
  export { type MaskGridDims, MaskGridDimsSchema, type MaskGridShape, MaskGridShapeSchema, type MaskLineShape, MaskLineShapeSchema, type MaskPoint, MaskPointSchema, type MaskPolygonShape, MaskPolygonShapeSchema, type MaskPolygonVertices, MaskPolygonVerticesSchema, type MaskRectShape, MaskRectShapeSchema, type MaskShape, type MaskShapeKind, MaskShapeKindSchema, MaskShapeSchema, } from './mask-shape.js';
201
+ export { type MeterStatus, MeterStatusSchema, meterCapability, type IMeterProvider, } from './meter.cap.js';
201
202
  export { type IMediaPlayerProvider, type MediaInfo, type MediaPlayerRepeat, MediaPlayerRepeatSchema, type MediaPlayerState, MediaPlayerStateSchema, type MediaPlayerStatus, MediaPlayerStatusSchema, mediaPlayerCapability, } from './media-player.cap.js';
202
203
  export { type IMeshNetworkProvider, type MeshEndpoint, type MeshPeer, MeshPeerSchema, type MeshStatus, MeshStatusSchema, meshNetworkCapability, } from './mesh-network.cap.js';
203
204
  export { type IMotionProvider, MOTION_CLOSE_AFTER_MS, MOTION_SPAN_TIMEOUT_MS, type MotionOnMotionChangedData, MotionOnMotionChangedDataSchema, type MotionStatus, MotionStatusSchema, motionCapability, } from './motion.cap.js';
@@ -357,6 +358,7 @@ import type { logChannelsCapability } from './log-channels.cap.js';
357
358
  import type { logDestinationCapability } from './log-destination.cap.js';
358
359
  import type { loginMethodCapability } from './login-method.cap.js';
359
360
  import type { mediaPlayerCapability } from './media-player.cap.js';
361
+ import type { meterCapability } from './meter.cap.js';
360
362
  import type { meshNetworkCapability } from './mesh-network.cap.js';
361
363
  import type { metricsProviderCapability } from './metrics-provider.cap.js';
362
364
  import type { modelConvertCapability } from './model-convert.cap.js';
@@ -441,6 +443,6 @@ import type { trainingProviderCapability } from './training-provider.cap.js';
441
443
  import type { zoneAnalyticsCapability } from './zone-analytics.cap.js';
442
444
  import type { zoneRulesCapability } from './zone-rules.cap.js';
443
445
  import type { zonesCapability } from './zones.cap.js';
444
- 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 databaseSnapshotCapability | typeof storageAdminCapability | typeof recordsCapability | typeof recordEntriesCapability | typeof deviceHistoryCapability | typeof keychainCapability | typeof keychainAdminCapability | typeof deviceCredentialsCapability | typeof nodeCertificatesCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof deviceRemovalHookCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceAdminLinkCapability | 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 calendarSourceCapability | typeof calendarsCapability | 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 composerCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof runningStateCapability | 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 zonesCapability | typeof zoneRulesCapability | typeof trainingCapability | typeof trainingProviderCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof groupCommandsCapability | typeof groupStatusCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof heatingValveCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingArchiveCapability | typeof recordingExportCapability | typeof recordingSignalCapability | typeof deviceOpsCapability | typeof displayPaletteCapability | 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 oidcConnectionsCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof cameraGridLayoutCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof recordingOnboardCapability | 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 | typeof deviceExtensionCapability | typeof dishwasherCapability;
446
+ 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 databaseSnapshotCapability | typeof storageAdminCapability | typeof recordsCapability | typeof recordEntriesCapability | typeof deviceHistoryCapability | typeof keychainCapability | typeof keychainAdminCapability | typeof deviceCredentialsCapability | typeof nodeCertificatesCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof deviceRemovalHookCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceAdminLinkCapability | 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 calendarSourceCapability | typeof calendarsCapability | 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 composerCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof runningStateCapability | 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 meterCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof trainingCapability | typeof trainingProviderCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof groupCommandsCapability | typeof groupStatusCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof heatingValveCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingArchiveCapability | typeof recordingExportCapability | typeof recordingSignalCapability | typeof deviceOpsCapability | typeof displayPaletteCapability | 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 oidcConnectionsCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof cameraGridLayoutCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof recordingOnboardCapability | 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 | typeof deviceExtensionCapability | typeof dishwasherCapability;
445
447
  export type CapabilityName = AnyCapability['name'];
446
448
  export type ITypedReadinessRegistry = IReadinessRegistry<CapabilityName>;
@@ -0,0 +1,53 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ /**
5
+ * A monotonic total between resets (D944). Energy uses `power-meter.kwhTotal`
6
+ * so dashboards keep one series; every other instantaneous reading lands here.
7
+ * `value` is the time integral in the source quantity's accumulated base
8
+ * (base-unit seconds, or kWh on the power meter). `null` is a gap, never zero.
9
+ */
10
+ export declare const MeterStatusSchema: z.ZodObject<{
11
+ value: z.ZodNullable<z.ZodNumber>;
12
+ lastFetchedAt: z.ZodNumber;
13
+ }, z.core.$strip>;
14
+ export type MeterStatus = z.infer<typeof MeterStatusSchema>;
15
+ export declare const meterCapability: {
16
+ readonly name: 'meter';
17
+ readonly scope: 'device';
18
+ readonly deviceNative: true;
19
+ readonly mode: 'singleton';
20
+ readonly deviceTypes: readonly [DeviceType.Sensor];
21
+ readonly methods: {};
22
+ readonly status: {
23
+ readonly schema: z.ZodObject<{
24
+ value: z.ZodNullable<z.ZodNumber>;
25
+ lastFetchedAt: z.ZodNumber;
26
+ }, z.core.$strip>;
27
+ readonly kind: 'push';
28
+ };
29
+ readonly runtimeState: z.ZodObject<{
30
+ value: z.ZodNullable<z.ZodNumber>;
31
+ lastFetchedAt: z.ZodNumber;
32
+ }, z.core.$strip>;
33
+ /**
34
+ * Runtime-state durability: **restored** — the total is a cache of the
35
+ * history integral. A restart shows it only until the history pass
36
+ * recomputes the open period; it is not an in-memory buffer.
37
+ *
38
+ * See `RuntimeStateDurability`. Enforced by
39
+ * `scripts/check-runtime-state-durability.ts`.
40
+ */
41
+ readonly durability: 'restored';
42
+ readonly history: {
43
+ readonly fields: {
44
+ readonly value: {
45
+ readonly kind: 'counter';
46
+ readonly deadband: 0.001;
47
+ readonly minIntervalMs: 60000;
48
+ };
49
+ };
50
+ };
51
+ readonly volatileStateFields: readonly ["lastFetchedAt"];
52
+ };
53
+ export type IMeterProvider = InferProvider<typeof meterCapability>;
@@ -1616,6 +1616,7 @@ export declare const NcRuleInputSchema: z.ZodObject<{
1616
1616
  maxImagePx: z.ZodDefault<z.ZodNumber>;
1617
1617
  }, z.core.$strip>>;
1618
1618
  groupingSec: z.ZodOptional<z.ZodNumber>;
1619
+ askVerdict: z.ZodOptional<z.ZodBoolean>;
1619
1620
  }, z.core.$strip>;
1620
1621
  export type NcRuleInput = z.infer<typeof NcRuleInputSchema>;
1621
1622
  /**
@@ -1789,6 +1790,7 @@ export declare const NcRulePatchSchema: z.ZodObject<{
1789
1790
  maxImagePx: z.ZodDefault<z.ZodNumber>;
1790
1791
  }, z.core.$strip>>>;
1791
1792
  groupingSec: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1793
+ askVerdict: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
1792
1794
  disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1793
1795
  enabled: z.ZodOptional<z.ZodBoolean>;
1794
1796
  conditions: z.ZodOptional<z.ZodObject<{
@@ -2194,6 +2196,7 @@ export declare const NcRuleUpdateInputSchema: z.ZodObject<{
2194
2196
  maxImagePx: z.ZodDefault<z.ZodNumber>;
2195
2197
  }, z.core.$strip>>>;
2196
2198
  groupingSec: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
2199
+ askVerdict: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2197
2200
  disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2198
2201
  enabled: z.ZodOptional<z.ZodBoolean>;
2199
2202
  conditions: z.ZodOptional<z.ZodObject<{
@@ -2775,6 +2778,7 @@ export declare const NcRuleSchema: z.ZodObject<{
2775
2778
  maxImagePx: z.ZodDefault<z.ZodNumber>;
2776
2779
  }, z.core.$strip>>;
2777
2780
  groupingSec: z.ZodOptional<z.ZodNumber>;
2781
+ askVerdict: z.ZodOptional<z.ZodBoolean>;
2778
2782
  id: z.ZodString;
2779
2783
  createdBy: z.ZodString;
2780
2784
  createdAt: z.ZodNumber;
@@ -4933,6 +4937,7 @@ export declare const notificationRulesCapability: {
4933
4937
  maxImagePx: z.ZodDefault<z.ZodNumber>;
4934
4938
  }, z.core.$strip>>;
4935
4939
  groupingSec: z.ZodOptional<z.ZodNumber>;
4940
+ askVerdict: z.ZodOptional<z.ZodBoolean>;
4936
4941
  id: z.ZodString;
4937
4942
  createdBy: z.ZodString;
4938
4943
  createdAt: z.ZodNumber;
@@ -5306,6 +5311,7 @@ export declare const notificationRulesCapability: {
5306
5311
  maxImagePx: z.ZodDefault<z.ZodNumber>;
5307
5312
  }, z.core.$strip>>;
5308
5313
  groupingSec: z.ZodOptional<z.ZodNumber>;
5314
+ askVerdict: z.ZodOptional<z.ZodBoolean>;
5309
5315
  id: z.ZodString;
5310
5316
  createdBy: z.ZodString;
5311
5317
  createdAt: z.ZodNumber;
@@ -5677,6 +5683,7 @@ export declare const notificationRulesCapability: {
5677
5683
  maxImagePx: z.ZodDefault<z.ZodNumber>;
5678
5684
  }, z.core.$strip>>;
5679
5685
  groupingSec: z.ZodOptional<z.ZodNumber>;
5686
+ askVerdict: z.ZodOptional<z.ZodBoolean>;
5680
5687
  }, z.core.$strip>;
5681
5688
  }, z.core.$strip>, z.ZodObject<{
5682
5689
  rule: z.ZodObject<{
@@ -6042,6 +6049,7 @@ export declare const notificationRulesCapability: {
6042
6049
  maxImagePx: z.ZodDefault<z.ZodNumber>;
6043
6050
  }, z.core.$strip>>;
6044
6051
  groupingSec: z.ZodOptional<z.ZodNumber>;
6052
+ askVerdict: z.ZodOptional<z.ZodBoolean>;
6045
6053
  id: z.ZodString;
6046
6054
  createdBy: z.ZodString;
6047
6055
  createdAt: z.ZodNumber;
@@ -6215,6 +6223,7 @@ export declare const notificationRulesCapability: {
6215
6223
  maxImagePx: z.ZodDefault<z.ZodNumber>;
6216
6224
  }, z.core.$strip>>>;
6217
6225
  groupingSec: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
6226
+ askVerdict: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
6218
6227
  disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
6219
6228
  enabled: z.ZodOptional<z.ZodBoolean>;
6220
6229
  conditions: z.ZodOptional<z.ZodObject<{
@@ -6794,6 +6803,7 @@ export declare const notificationRulesCapability: {
6794
6803
  maxImagePx: z.ZodDefault<z.ZodNumber>;
6795
6804
  }, z.core.$strip>>;
6796
6805
  groupingSec: z.ZodOptional<z.ZodNumber>;
6806
+ askVerdict: z.ZodOptional<z.ZodBoolean>;
6797
6807
  id: z.ZodString;
6798
6808
  createdBy: z.ZodString;
6799
6809
  createdAt: z.ZodNumber;
@@ -7358,6 +7368,7 @@ export declare const notificationRulesCapability: {
7358
7368
  maxImagePx: z.ZodDefault<z.ZodNumber>;
7359
7369
  }, z.core.$strip>>;
7360
7370
  groupingSec: z.ZodOptional<z.ZodNumber>;
7371
+ askVerdict: z.ZodOptional<z.ZodBoolean>;
7361
7372
  }, z.core.$strip>;
7362
7373
  lookbackMinutes: z.ZodDefault<z.ZodNumber>;
7363
7374
  }, z.core.$strip>, z.ZodObject<{
@@ -7748,6 +7759,7 @@ export declare const notificationRulesCapability: {
7748
7759
  maxImagePx: z.ZodDefault<z.ZodNumber>;
7749
7760
  }, z.core.$strip>>;
7750
7761
  groupingSec: z.ZodOptional<z.ZodNumber>;
7762
+ askVerdict: z.ZodOptional<z.ZodBoolean>;
7751
7763
  }, z.core.$strip>;
7752
7764
  }, z.core.$strip>, z.ZodObject<{
7753
7765
  empty: z.ZodBoolean;
package/dist/client.js CHANGED
@@ -23833,7 +23833,20 @@ var NcRuleInputSchema = zod.z.object({
23833
23833
  * save by the hub's grouping guard). `.optional()`, never `.default()`: the addon cap
23834
23834
  * path does not run Zod defaults.
23835
23835
  */
23836
- groupingSec: zod.z.number().int().min(5).max(60).optional()
23836
+ groupingSec: zod.z.number().int().min(5).max(60).optional(),
23837
+ /**
23838
+ * ASK ME TO CONFIRM DETECTIONS (#243): a DETECTION notification of this rule
23839
+ * carries "Correct" / "Wrong" buttons (and, where the channel has room, a
23840
+ * "Wrong, it is a <class>" choice). A tap marks the track for retraining, the
23841
+ * same mark the Library writes, and records whose notification it was and
23842
+ * when. A channel with no buttons gets the same two choices as links.
23843
+ *
23844
+ * `.optional()`, never `.default()` (a Zod default does not run on the addon
23845
+ * cap path): absent and `false` both mean off, which is what every rule
23846
+ * authored before this field meant. An editor turns it off by writing
23847
+ * `false`, so it needs no `clear` key.
23848
+ */
23849
+ askVerdict: zod.z.boolean().optional()
23837
23850
  });
23838
23851
  /**
23839
23852
  * Partial patch for `updateRule` — any subset of the input fields, plus the
@@ -26886,6 +26899,7 @@ function createDeviceProxy(api, binding, opts) {
26886
26899
  playMedia: (input) => dispatch("media-player", "mediaPlayer", "playMedia", "mutation", input),
26887
26900
  getStatus: (input) => dispatch("media-player", "mediaPlayer", "getStatus", "query", input)
26888
26901
  };
26902
+ const meterInterface = { getStatus: (input) => dispatch("meter", "meter", "getStatus", "query", input) };
26889
26903
  const motionInterface = {
26890
26904
  isDetected: (input) => dispatch("motion", "motion", "isDetected", "query", input),
26891
26905
  getStatus: (input) => dispatch("motion", "motion", "getStatus", "query", input)
@@ -27401,6 +27415,7 @@ function createDeviceProxy(api, binding, opts) {
27401
27415
  lawnMowerControl: createSliceHandle(stateSource, binding.deviceId, "lawn-mower-control"),
27402
27416
  lockControl: createSliceHandle(stateSource, binding.deviceId, "lock-control"),
27403
27417
  mediaPlayer: createSliceHandle(stateSource, binding.deviceId, "media-player"),
27418
+ meter: createSliceHandle(stateSource, binding.deviceId, "meter"),
27404
27419
  motion: createSliceHandle(stateSource, binding.deviceId, "motion"),
27405
27420
  motionTrigger: createSliceHandle(stateSource, binding.deviceId, "motion-trigger"),
27406
27421
  motionZones: createSliceHandle(stateSource, binding.deviceId, "motion-zones"),
@@ -27486,6 +27501,7 @@ function createDeviceProxy(api, binding, opts) {
27486
27501
  ...bound("lawn-mower-control") ? { lawnMowerControl: lawnMowerControlInterface } : {},
27487
27502
  ...bound("lock-control") ? { lockControl: lockControlInterface } : {},
27488
27503
  ...bound("media-player") ? { mediaPlayer: mediaPlayerInterface } : {},
27504
+ ...bound("meter") ? { meter: meterInterface } : {},
27489
27505
  ...bound("motion") ? { motion: motionInterface } : {},
27490
27506
  ...bound("motion-detection") ? { motionDetection: motionDetectionInterface } : {},
27491
27507
  ...bound("motion-trigger") ? { motionTrigger: motionTriggerInterface } : {},
package/dist/client.mjs CHANGED
@@ -23832,7 +23832,20 @@ var NcRuleInputSchema = z.object({
23832
23832
  * save by the hub's grouping guard). `.optional()`, never `.default()`: the addon cap
23833
23833
  * path does not run Zod defaults.
23834
23834
  */
23835
- groupingSec: z.number().int().min(5).max(60).optional()
23835
+ groupingSec: z.number().int().min(5).max(60).optional(),
23836
+ /**
23837
+ * ASK ME TO CONFIRM DETECTIONS (#243): a DETECTION notification of this rule
23838
+ * carries "Correct" / "Wrong" buttons (and, where the channel has room, a
23839
+ * "Wrong, it is a <class>" choice). A tap marks the track for retraining, the
23840
+ * same mark the Library writes, and records whose notification it was and
23841
+ * when. A channel with no buttons gets the same two choices as links.
23842
+ *
23843
+ * `.optional()`, never `.default()` (a Zod default does not run on the addon
23844
+ * cap path): absent and `false` both mean off, which is what every rule
23845
+ * authored before this field meant. An editor turns it off by writing
23846
+ * `false`, so it needs no `clear` key.
23847
+ */
23848
+ askVerdict: z.boolean().optional()
23836
23849
  });
23837
23850
  /**
23838
23851
  * Partial patch for `updateRule` — any subset of the input fields, plus the
@@ -26885,6 +26898,7 @@ function createDeviceProxy(api, binding, opts) {
26885
26898
  playMedia: (input) => dispatch("media-player", "mediaPlayer", "playMedia", "mutation", input),
26886
26899
  getStatus: (input) => dispatch("media-player", "mediaPlayer", "getStatus", "query", input)
26887
26900
  };
26901
+ const meterInterface = { getStatus: (input) => dispatch("meter", "meter", "getStatus", "query", input) };
26888
26902
  const motionInterface = {
26889
26903
  isDetected: (input) => dispatch("motion", "motion", "isDetected", "query", input),
26890
26904
  getStatus: (input) => dispatch("motion", "motion", "getStatus", "query", input)
@@ -27400,6 +27414,7 @@ function createDeviceProxy(api, binding, opts) {
27400
27414
  lawnMowerControl: createSliceHandle(stateSource, binding.deviceId, "lawn-mower-control"),
27401
27415
  lockControl: createSliceHandle(stateSource, binding.deviceId, "lock-control"),
27402
27416
  mediaPlayer: createSliceHandle(stateSource, binding.deviceId, "media-player"),
27417
+ meter: createSliceHandle(stateSource, binding.deviceId, "meter"),
27403
27418
  motion: createSliceHandle(stateSource, binding.deviceId, "motion"),
27404
27419
  motionTrigger: createSliceHandle(stateSource, binding.deviceId, "motion-trigger"),
27405
27420
  motionZones: createSliceHandle(stateSource, binding.deviceId, "motion-zones"),
@@ -27485,6 +27500,7 @@ function createDeviceProxy(api, binding, opts) {
27485
27500
  ...bound("lawn-mower-control") ? { lawnMowerControl: lawnMowerControlInterface } : {},
27486
27501
  ...bound("lock-control") ? { lockControl: lockControlInterface } : {},
27487
27502
  ...bound("media-player") ? { mediaPlayer: mediaPlayerInterface } : {},
27503
+ ...bound("meter") ? { meter: meterInterface } : {},
27488
27504
  ...bound("motion") ? { motion: motionInterface } : {},
27489
27505
  ...bound("motion-detection") ? { motionDetection: motionDetectionInterface } : {},
27490
27506
  ...bound("motion-trigger") ? { motionTrigger: motionTriggerInterface } : {},
@@ -21,6 +21,7 @@ export declare const CompositionProblemCodeSchema: z.ZodEnum<{
21
21
  "not-item-array": "not-item-array";
22
22
  "not-replaceable": "not-replaceable";
23
23
  "reserved-variant": "reserved-variant";
24
+ retention: "retention";
24
25
  "source-capability-missing": "source-capability-missing";
25
26
  "source-field-unknown": "source-field-unknown";
26
27
  "source-missing": "source-missing";
@@ -52,6 +53,7 @@ export declare const CompositionProblemSchema: z.ZodObject<{
52
53
  "not-item-array": "not-item-array";
53
54
  "not-replaceable": "not-replaceable";
54
55
  "reserved-variant": "reserved-variant";
56
+ retention: "retention";
55
57
  "source-capability-missing": "source-capability-missing";
56
58
  "source-field-unknown": "source-field-unknown";
57
59
  "source-missing": "source-missing";
@@ -192,6 +194,27 @@ export declare const CompositionFieldPlanSchema: z.ZodObject<{
192
194
  offline: "offline";
193
195
  omit: "omit";
194
196
  }>;
197
+ }, z.core.$strip>, z.ZodObject<{
198
+ kind: z.ZodLiteral<"series">;
199
+ read: z.ZodObject<{
200
+ source: z.ZodObject<{
201
+ addonId: z.ZodString;
202
+ stableId: z.ZodString;
203
+ }, z.core.$strip>;
204
+ cap: z.ZodString;
205
+ fieldPath: z.ZodString;
206
+ }, z.core.$strip>;
207
+ publish: z.ZodEnum<{
208
+ excluded: "excluded";
209
+ included: "included";
210
+ total: "total";
211
+ value: "value";
212
+ }>;
213
+ empty: z.ZodEnum<{
214
+ null: "null";
215
+ offline: "offline";
216
+ omit: "omit";
217
+ }>;
195
218
  }, z.core.$strip>], "kind">;
196
219
  reads: z.ZodArray<z.ZodObject<{
197
220
  source: z.ZodObject<{
@@ -249,6 +272,7 @@ export declare const CompositionValidationSchema: z.ZodObject<{
249
272
  "not-item-array": "not-item-array";
250
273
  "not-replaceable": "not-replaceable";
251
274
  "reserved-variant": "reserved-variant";
275
+ retention: "retention";
252
276
  "source-capability-missing": "source-capability-missing";
253
277
  "source-field-unknown": "source-field-unknown";
254
278
  "source-missing": "source-missing";
@@ -348,6 +372,27 @@ export declare const CompositionValidationSchema: z.ZodObject<{
348
372
  offline: "offline";
349
373
  omit: "omit";
350
374
  }>;
375
+ }, z.core.$strip>, z.ZodObject<{
376
+ kind: z.ZodLiteral<"series">;
377
+ read: z.ZodObject<{
378
+ source: z.ZodObject<{
379
+ addonId: z.ZodString;
380
+ stableId: z.ZodString;
381
+ }, z.core.$strip>;
382
+ cap: z.ZodString;
383
+ fieldPath: z.ZodString;
384
+ }, z.core.$strip>;
385
+ publish: z.ZodEnum<{
386
+ excluded: "excluded";
387
+ included: "included";
388
+ total: "total";
389
+ value: "value";
390
+ }>;
391
+ empty: z.ZodEnum<{
392
+ null: "null";
393
+ offline: "offline";
394
+ omit: "omit";
395
+ }>;
351
396
  }, z.core.$strip>], "kind">;
352
397
  reads: z.ZodArray<z.ZodObject<{
353
398
  source: z.ZodObject<{
@@ -141,6 +141,33 @@ export declare const CompositionAggregateSourceSchema: z.ZodObject<{
141
141
  }>;
142
142
  }, z.core.$strip>;
143
143
  export type CompositionAggregateSource = z.infer<typeof CompositionAggregateSourceSchema>;
144
+ /**
145
+ * `series`: a statistics or integral field. The composer writes it from a
146
+ * history query. The live pass does not recompute it (D944).
147
+ */
148
+ export declare const CompositionSeriesSourceSchema: z.ZodObject<{
149
+ kind: z.ZodLiteral<"series">;
150
+ read: z.ZodObject<{
151
+ source: z.ZodObject<{
152
+ addonId: z.ZodString;
153
+ stableId: z.ZodString;
154
+ }, z.core.$strip>;
155
+ cap: z.ZodString;
156
+ fieldPath: z.ZodString;
157
+ }, z.core.$strip>;
158
+ publish: z.ZodEnum<{
159
+ excluded: "excluded";
160
+ included: "included";
161
+ total: "total";
162
+ value: "value";
163
+ }>;
164
+ empty: z.ZodEnum<{
165
+ null: "null";
166
+ offline: "offline";
167
+ omit: "omit";
168
+ }>;
169
+ }, z.core.$strip>;
170
+ export type CompositionSeriesSource = z.infer<typeof CompositionSeriesSourceSchema>;
144
171
  export declare const CompositionFieldSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
145
172
  source: z.ZodObject<{
146
173
  addonId: z.ZodString;
@@ -197,6 +224,27 @@ export declare const CompositionFieldSourceSchema: z.ZodDiscriminatedUnion<[z.Zo
197
224
  offline: "offline";
198
225
  omit: "omit";
199
226
  }>;
227
+ }, z.core.$strip>, z.ZodObject<{
228
+ kind: z.ZodLiteral<"series">;
229
+ read: z.ZodObject<{
230
+ source: z.ZodObject<{
231
+ addonId: z.ZodString;
232
+ stableId: z.ZodString;
233
+ }, z.core.$strip>;
234
+ cap: z.ZodString;
235
+ fieldPath: z.ZodString;
236
+ }, z.core.$strip>;
237
+ publish: z.ZodEnum<{
238
+ excluded: "excluded";
239
+ included: "included";
240
+ total: "total";
241
+ value: "value";
242
+ }>;
243
+ empty: z.ZodEnum<{
244
+ null: "null";
245
+ offline: "offline";
246
+ omit: "omit";
247
+ }>;
200
248
  }, z.core.$strip>], "kind">;
201
249
  export type CompositionFieldSource = z.infer<typeof CompositionFieldSourceSchema>;
202
250
  /** `forward`: RESERVED for slice 3. Argument mapping arrives there as an additive optional `args`. */
@@ -291,6 +339,27 @@ export declare const CompositionItemEntrySchema: z.ZodObject<{
291
339
  offline: "offline";
292
340
  omit: "omit";
293
341
  }>;
342
+ }, z.core.$strip>, z.ZodObject<{
343
+ kind: z.ZodLiteral<"series">;
344
+ read: z.ZodObject<{
345
+ source: z.ZodObject<{
346
+ addonId: z.ZodString;
347
+ stableId: z.ZodString;
348
+ }, z.core.$strip>;
349
+ cap: z.ZodString;
350
+ fieldPath: z.ZodString;
351
+ }, z.core.$strip>;
352
+ publish: z.ZodEnum<{
353
+ excluded: "excluded";
354
+ included: "included";
355
+ total: "total";
356
+ value: "value";
357
+ }>;
358
+ empty: z.ZodEnum<{
359
+ null: "null";
360
+ offline: "offline";
361
+ omit: "omit";
362
+ }>;
294
363
  }, z.core.$strip>], "kind">>;
295
364
  }, z.core.$strip>;
296
365
  export type CompositionItemEntry = z.infer<typeof CompositionItemEntrySchema>;
@@ -354,6 +423,27 @@ export declare const CompositionFieldsFeatureSchema: z.ZodObject<{
354
423
  offline: "offline";
355
424
  omit: "omit";
356
425
  }>;
426
+ }, z.core.$strip>, z.ZodObject<{
427
+ kind: z.ZodLiteral<"series">;
428
+ read: z.ZodObject<{
429
+ source: z.ZodObject<{
430
+ addonId: z.ZodString;
431
+ stableId: z.ZodString;
432
+ }, z.core.$strip>;
433
+ cap: z.ZodString;
434
+ fieldPath: z.ZodString;
435
+ }, z.core.$strip>;
436
+ publish: z.ZodEnum<{
437
+ excluded: "excluded";
438
+ included: "included";
439
+ total: "total";
440
+ value: "value";
441
+ }>;
442
+ empty: z.ZodEnum<{
443
+ null: "null";
444
+ offline: "offline";
445
+ omit: "omit";
446
+ }>;
357
447
  }, z.core.$strip>], "kind">>;
358
448
  items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
359
449
  label: z.ZodString;
@@ -413,6 +503,27 @@ export declare const CompositionFieldsFeatureSchema: z.ZodObject<{
413
503
  offline: "offline";
414
504
  omit: "omit";
415
505
  }>;
506
+ }, z.core.$strip>, z.ZodObject<{
507
+ kind: z.ZodLiteral<"series">;
508
+ read: z.ZodObject<{
509
+ source: z.ZodObject<{
510
+ addonId: z.ZodString;
511
+ stableId: z.ZodString;
512
+ }, z.core.$strip>;
513
+ cap: z.ZodString;
514
+ fieldPath: z.ZodString;
515
+ }, z.core.$strip>;
516
+ publish: z.ZodEnum<{
517
+ excluded: "excluded";
518
+ included: "included";
519
+ total: "total";
520
+ value: "value";
521
+ }>;
522
+ empty: z.ZodEnum<{
523
+ null: "null";
524
+ offline: "offline";
525
+ omit: "omit";
526
+ }>;
416
527
  }, z.core.$strip>], "kind">>;
417
528
  }, z.core.$strip>>>;
418
529
  commands: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -500,6 +611,27 @@ export declare const CompositionFeatureSchema: z.ZodDiscriminatedUnion<[z.ZodObj
500
611
  offline: "offline";
501
612
  omit: "omit";
502
613
  }>;
614
+ }, z.core.$strip>, z.ZodObject<{
615
+ kind: z.ZodLiteral<"series">;
616
+ read: z.ZodObject<{
617
+ source: z.ZodObject<{
618
+ addonId: z.ZodString;
619
+ stableId: z.ZodString;
620
+ }, z.core.$strip>;
621
+ cap: z.ZodString;
622
+ fieldPath: z.ZodString;
623
+ }, z.core.$strip>;
624
+ publish: z.ZodEnum<{
625
+ excluded: "excluded";
626
+ included: "included";
627
+ total: "total";
628
+ value: "value";
629
+ }>;
630
+ empty: z.ZodEnum<{
631
+ null: "null";
632
+ offline: "offline";
633
+ omit: "omit";
634
+ }>;
503
635
  }, z.core.$strip>], "kind">>;
504
636
  items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
505
637
  label: z.ZodString;
@@ -559,6 +691,27 @@ export declare const CompositionFeatureSchema: z.ZodDiscriminatedUnion<[z.ZodObj
559
691
  offline: "offline";
560
692
  omit: "omit";
561
693
  }>;
694
+ }, z.core.$strip>, z.ZodObject<{
695
+ kind: z.ZodLiteral<"series">;
696
+ read: z.ZodObject<{
697
+ source: z.ZodObject<{
698
+ addonId: z.ZodString;
699
+ stableId: z.ZodString;
700
+ }, z.core.$strip>;
701
+ cap: z.ZodString;
702
+ fieldPath: z.ZodString;
703
+ }, z.core.$strip>;
704
+ publish: z.ZodEnum<{
705
+ excluded: "excluded";
706
+ included: "included";
707
+ total: "total";
708
+ value: "value";
709
+ }>;
710
+ empty: z.ZodEnum<{
711
+ null: "null";
712
+ offline: "offline";
713
+ omit: "omit";
714
+ }>;
562
715
  }, z.core.$strip>], "kind">>;
563
716
  }, z.core.$strip>>>;
564
717
  commands: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -688,6 +841,27 @@ export declare const CompositionSchema: z.ZodObject<{
688
841
  offline: "offline";
689
842
  omit: "omit";
690
843
  }>;
844
+ }, z.core.$strip>, z.ZodObject<{
845
+ kind: z.ZodLiteral<"series">;
846
+ read: z.ZodObject<{
847
+ source: z.ZodObject<{
848
+ addonId: z.ZodString;
849
+ stableId: z.ZodString;
850
+ }, z.core.$strip>;
851
+ cap: z.ZodString;
852
+ fieldPath: z.ZodString;
853
+ }, z.core.$strip>;
854
+ publish: z.ZodEnum<{
855
+ excluded: "excluded";
856
+ included: "included";
857
+ total: "total";
858
+ value: "value";
859
+ }>;
860
+ empty: z.ZodEnum<{
861
+ null: "null";
862
+ offline: "offline";
863
+ omit: "omit";
864
+ }>;
691
865
  }, z.core.$strip>], "kind">>;
692
866
  items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
693
867
  label: z.ZodString;
@@ -747,6 +921,27 @@ export declare const CompositionSchema: z.ZodObject<{
747
921
  offline: "offline";
748
922
  omit: "omit";
749
923
  }>;
924
+ }, z.core.$strip>, z.ZodObject<{
925
+ kind: z.ZodLiteral<"series">;
926
+ read: z.ZodObject<{
927
+ source: z.ZodObject<{
928
+ addonId: z.ZodString;
929
+ stableId: z.ZodString;
930
+ }, z.core.$strip>;
931
+ cap: z.ZodString;
932
+ fieldPath: z.ZodString;
933
+ }, z.core.$strip>;
934
+ publish: z.ZodEnum<{
935
+ excluded: "excluded";
936
+ included: "included";
937
+ total: "total";
938
+ value: "value";
939
+ }>;
940
+ empty: z.ZodEnum<{
941
+ null: "null";
942
+ offline: "offline";
943
+ omit: "omit";
944
+ }>;
750
945
  }, z.core.$strip>], "kind">>;
751
946
  }, z.core.$strip>>>;
752
947
  commands: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -770,25 +965,7 @@ export declare const CompositionSchema: z.ZodObject<{
770
965
  stableId: z.ZodString;
771
966
  }, z.core.$strip>;
772
967
  }, z.core.$strip>], "kind">>;
773
- helper: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
774
- kind: z.ZodLiteral<'group'>;
775
- templateId: typeof import("./index.js").GroupTemplateIdSchema;
776
- aggregate: typeof import("./index.js").AggregateReducerSchema;
777
- members: z.ZodArray<typeof import("./index.js").HelperMemberSchema>;
778
- active: z.ZodOptional<typeof import("./index.js").ActiveCriterionSchema>;
779
- }, z.core.$strip>, z.ZodObject<{
780
- kind: z.ZodLiteral<'appliance'>;
781
- templateId: z.ZodLiteral<typeof import("./index.js").APPLIANCE_TEMPLATE_ID>;
782
- appliance: z.ZodEnum<{
783
- washer: 'washer';
784
- dryer: 'dryer';
785
- dishwasher: 'dishwasher';
786
- }>;
787
- thresholdWatts: z.ZodNumber;
788
- startDwellMs: z.ZodNumber;
789
- stopDwellMs: z.ZodNumber;
790
- member: typeof import("./index.js").HelperMemberSchema;
791
- }, z.core.$strip>], "kind">>;
968
+ helper: z.ZodOptional<z.ZodType<import("./index.js").HelperSpec, unknown, z.core.$ZodTypeInternals<import("./index.js").HelperSpec, unknown>>>;
792
969
  }, z.core.$strip>;
793
970
  export type Composition = z.infer<typeof CompositionSchema>;
794
971
  export declare function compositionSourceKey(ref: CompositionSourceRef): string;
@@ -0,0 +1,13 @@
1
+ import type { CompositionProblem } from '../composition-report.js';
2
+ import type { SeriesKind } from './history-math.js';
3
+ import { type HistoryRetention } from './history-window.js';
4
+ import type { HelperMember, IntegralHelperSpec, StatisticHelperSpec } from './spec.js';
5
+ export declare function declaredSeriesKind(member: HelperMember): SeriesKind | 'enum' | null;
6
+ export declare function statisticDraft(spec: StatisticHelperSpec, retention?: HistoryRetention): {
7
+ readonly draft: unknown;
8
+ readonly problems: readonly CompositionProblem[];
9
+ };
10
+ export declare function integralDraft(spec: IntegralHelperSpec, retention?: HistoryRetention): {
11
+ readonly draft: unknown;
12
+ readonly problems: readonly CompositionProblem[];
13
+ };