@camstack/types 1.2.405 → 1.2.407

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 (69) hide show
  1. package/dist/addon.js +21 -2
  2. package/dist/addon.mjs +21 -2
  3. package/dist/capabilities/battery.cap.d.ts +46 -0
  4. package/dist/capabilities/capability-definition.d.ts +8 -0
  5. package/dist/capabilities/consumables.cap.d.ts +110 -0
  6. package/dist/capabilities/customize-catalog.d.ts +72 -0
  7. package/dist/capabilities/customize-spec.d.ts +202 -0
  8. package/dist/capabilities/doorbell.cap.d.ts +39 -0
  9. package/dist/capabilities/index.d.ts +6 -4
  10. package/dist/capabilities/motion.cap.d.ts +39 -0
  11. package/dist/capabilities/notification-rules.cap.d.ts +3 -78
  12. package/dist/capabilities/osd-manager.cap.d.ts +0 -18
  13. package/dist/capabilities/running-state.cap.d.ts +140 -0
  14. package/dist/catalogs/sensor-active-state.d.ts +1 -1
  15. package/dist/client.js +11 -63
  16. package/dist/client.mjs +11 -63
  17. package/dist/composition/customize/__fixtures__/refs.d.ts +27 -0
  18. package/dist/composition/customize/__fixtures__/stored-cases.d.ts +13 -0
  19. package/dist/composition/customize/event-compile.d.ts +20 -0
  20. package/dist/composition/customize/event-decode.d.ts +19 -0
  21. package/dist/composition/customize/event-eval.d.ts +35 -0
  22. package/dist/composition/customize/event-status.d.ts +49 -0
  23. package/dist/composition/customize/field-source.d.ts +5 -0
  24. package/dist/composition/customize/keyed-array-compile.d.ts +26 -0
  25. package/dist/composition/customize/keyed-array-decode.d.ts +20 -0
  26. package/dist/composition/customize/keyed-array-expr.d.ts +10 -0
  27. package/dist/composition/customize/keyed-array-status.d.ts +22 -0
  28. package/dist/composition/customize/normalize.d.ts +4 -0
  29. package/dist/composition/customize/override-draft.d.ts +311 -0
  30. package/dist/composition/customize/scalar-compile.d.ts +13 -0
  31. package/dist/composition/customize/scalar-decode.d.ts +17 -0
  32. package/dist/composition/customize/scalar-expr.d.ts +33 -0
  33. package/dist/composition/customize/scalar-status.d.ts +31 -0
  34. package/dist/composition/customize/stored.d.ts +15 -0
  35. package/dist/composition/index.d.ts +0 -1
  36. package/dist/{composition-CB6PMT9p.mjs → composition-BJ8iAZb3.mjs} +87 -3
  37. package/dist/{composition-eoYYVfOp.js → composition-CSLSFGTO.js} +87 -3
  38. package/dist/device/cap-vocabulary/entries/appliances.d.ts +1 -1
  39. package/dist/enums/event-category.d.ts +4 -0
  40. package/dist/enums.js +1 -1
  41. package/dist/enums.mjs +1 -1
  42. package/dist/{event-category-fDPduoeC.mjs → event-category-Ceif8n-v.mjs} +4 -0
  43. package/dist/{event-category-CXrwjC3e.js → event-category-DG6Vir8Z.js} +4 -0
  44. package/dist/expression/builtins.d.ts +7 -18
  45. package/dist/expression/expression-source.d.ts +14 -2
  46. package/dist/generated/addon-api.d.ts +14 -0
  47. package/dist/generated/addon-cap-facts.d.ts +1 -1
  48. package/dist/generated/cap-status-types.d.ts +3 -1
  49. package/dist/generated/capability-router-map.d.ts +5 -2
  50. package/dist/generated/customize-catalog.d.ts +229 -0
  51. package/dist/generated/device-local-state.d.ts +3 -0
  52. package/dist/generated/device-proxy.d.ts +3 -0
  53. package/dist/generated/device-scoped-caps.d.ts +1 -1
  54. package/dist/generated/history-catalog.d.ts +1 -1
  55. package/dist/generated/method-access-map.d.ts +1 -1
  56. package/dist/generated/method-device-selectors.d.ts +1 -1
  57. package/dist/generated/runtime-state-durability.d.ts +1 -1
  58. package/dist/index.d.ts +16 -0
  59. package/dist/index.js +2385 -173
  60. package/dist/index.mjs +2351 -171
  61. package/dist/interfaces/config-ui.d.ts +69 -2
  62. package/dist/node.js +1 -1
  63. package/dist/node.mjs +1 -1
  64. package/dist/running-state/defaults.d.ts +6 -0
  65. package/dist/running-state/from-operation.d.ts +14 -0
  66. package/dist/{sleep-CHIEEJkY.mjs → sleep-CYfIZzGv.mjs} +7 -3
  67. package/dist/{sleep-BKS4OPMo.js → sleep-UP964hNP.js} +7 -3
  68. package/package.json +1 -1
  69. package/dist/composition/presets/doorbell-feature.d.ts +0 -20
@@ -0,0 +1,229 @@
1
+ import { DeviceType } from '../device/device-type.js';
2
+ /**
3
+ * Customize catalog, projected from every `*.cap.ts` `customize` block.
4
+ * 5 caps. Field keys are `runtimeState` paths. No Zod.
5
+ */
6
+ export declare const CAP_CUSTOMIZE_CATALOG: {
7
+ readonly battery: {
8
+ readonly version: 1;
9
+ readonly targets: readonly [{
10
+ readonly id: 'percentage';
11
+ readonly cardinality: 'scalar';
12
+ readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat];
13
+ readonly apply: 'add-or-replace';
14
+ readonly vocabularyCap: 'battery';
15
+ readonly vocabularyStateField: 'percentage';
16
+ readonly sources: readonly [{
17
+ readonly kind: 'field';
18
+ readonly valueKinds: readonly ["number", "string"];
19
+ readonly transformKinds: readonly ["identity", "linear"];
20
+ }];
21
+ readonly sourceReport: {
22
+ readonly status: 'assignment-status';
23
+ };
24
+ readonly advancedExpression: true;
25
+ readonly path: 'percentage';
26
+ readonly valueKind: 'number';
27
+ readonly nullable: true;
28
+ readonly companions: readonly [{
29
+ readonly kind: 'constant';
30
+ readonly path: 'charging';
31
+ readonly value: 'unknown';
32
+ readonly when: 'add';
33
+ }, {
34
+ readonly kind: 'constant';
35
+ readonly path: 'sleeping';
36
+ readonly value: false;
37
+ readonly when: 'add';
38
+ }, {
39
+ readonly kind: 'clock';
40
+ readonly path: 'lastUpdated';
41
+ readonly when: 'add';
42
+ }];
43
+ }];
44
+ };
45
+ readonly consumables: {
46
+ readonly version: 1;
47
+ readonly targets: readonly [{
48
+ readonly id: 'items';
49
+ readonly cardinality: 'keyedArray';
50
+ readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher];
51
+ readonly apply: 'add';
52
+ readonly vocabularyCap: 'consumables';
53
+ readonly sources: readonly [];
54
+ readonly sourceReport: {
55
+ readonly status: 'assignment-status';
56
+ };
57
+ readonly advancedExpression: true;
58
+ readonly path: 'items';
59
+ readonly keyField: 'key';
60
+ readonly labelField: 'label';
61
+ readonly nativeItems: 'read-only';
62
+ readonly fields: readonly [{
63
+ readonly path: 'level';
64
+ readonly valueKind: 'number';
65
+ readonly nullable: true;
66
+ readonly sources: readonly [{
67
+ readonly kind: 'numeric';
68
+ readonly transformKinds: readonly ["identity", "linear"];
69
+ }];
70
+ }, {
71
+ readonly path: 'remaining.value';
72
+ readonly valueKind: 'number';
73
+ readonly nullable: true;
74
+ readonly sources: readonly [{
75
+ readonly kind: 'numeric';
76
+ readonly transformKinds: readonly ["identity"];
77
+ }];
78
+ readonly literals: readonly [{
79
+ readonly path: 'remaining.unit';
80
+ readonly values: readonly ["days", "hours", "cycles"];
81
+ }];
82
+ }, {
83
+ readonly path: 'status';
84
+ readonly valueKind: 'enum';
85
+ readonly nullable: true;
86
+ readonly enumValues: readonly ["ok", "low", "empty", "full", "replace"];
87
+ readonly sources: readonly [{
88
+ readonly kind: 'enum';
89
+ readonly transformKinds: readonly ["enum-map"];
90
+ }];
91
+ }];
92
+ readonly traits: readonly [{
93
+ readonly path: 'kind';
94
+ readonly values: readonly ["wear", "supply", "waste"];
95
+ readonly defaultValue: 'wear';
96
+ }, {
97
+ readonly path: 'form';
98
+ readonly values: readonly ["part", "tank", "product", "bin"];
99
+ readonly defaultValue: 'part';
100
+ }];
101
+ readonly companions: readonly [{
102
+ readonly kind: 'clock';
103
+ readonly path: 'lastChangedAt';
104
+ readonly when: 'add';
105
+ }, {
106
+ readonly kind: 'clock';
107
+ readonly path: 'lastFetchedAt';
108
+ readonly when: 'add';
109
+ }];
110
+ }];
111
+ };
112
+ readonly doorbell: {
113
+ readonly version: 1;
114
+ readonly targets: readonly [{
115
+ readonly id: 'pressed';
116
+ readonly cardinality: 'event';
117
+ readonly deviceTypes: readonly [DeviceType.Camera];
118
+ readonly apply: 'add';
119
+ readonly vocabularyCap: 'doorbell';
120
+ readonly vocabularyEvent: 'onPressed';
121
+ readonly sources: readonly [{
122
+ readonly kind: 'binary';
123
+ readonly transformKinds: readonly [];
124
+ }, {
125
+ readonly kind: 'switch';
126
+ readonly transformKinds: readonly [];
127
+ }];
128
+ readonly sourceReport: {
129
+ readonly status: 'assignment-status';
130
+ };
131
+ readonly advancedExpression: true;
132
+ readonly shape: 'pulse';
133
+ readonly applyAuthority: {
134
+ readonly kind: 'composition-claim';
135
+ };
136
+ readonly eventName: 'onPressed';
137
+ readonly combine: 'any';
138
+ readonly edges: readonly ["rising"];
139
+ readonly timestampPath: 'lastPressedAt';
140
+ readonly counterPath: 'pressCountSinceStart';
141
+ readonly highWater: 'composer-advance';
142
+ readonly debounceMs: 2000;
143
+ }];
144
+ };
145
+ readonly motion: {
146
+ readonly version: 1;
147
+ readonly targets: readonly [{
148
+ readonly id: 'detected';
149
+ readonly cardinality: 'event';
150
+ readonly deviceTypes: readonly [DeviceType.Camera];
151
+ readonly apply: 'replace';
152
+ readonly vocabularyCap: 'motion';
153
+ readonly vocabularyEvent: 'onMotionChanged';
154
+ readonly sources: readonly [{
155
+ readonly kind: 'binary';
156
+ readonly transformKinds: readonly [];
157
+ }, {
158
+ readonly kind: 'switch';
159
+ readonly transformKinds: readonly [];
160
+ }];
161
+ readonly sourceReport: {
162
+ readonly status: 'assignment-status';
163
+ };
164
+ readonly advancedExpression: false;
165
+ readonly shape: 'span';
166
+ readonly applyAuthority: {
167
+ readonly kind: 'camera-sensors';
168
+ readonly timeoutField: 'motionCooldownMs';
169
+ };
170
+ readonly eventName: 'onMotionChanged';
171
+ readonly combine: 'any';
172
+ readonly start: 'rising-edge';
173
+ readonly end: 'falling-edge-or-timeout';
174
+ readonly timeoutMs: 30000;
175
+ readonly sourceModes: readonly ["in-addition", "confirm", "replace"];
176
+ }];
177
+ };
178
+ readonly 'running-state': {
179
+ readonly version: 1;
180
+ readonly targets: readonly [{
181
+ readonly id: 'running';
182
+ readonly cardinality: 'scalar';
183
+ readonly deviceTypes: readonly [DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder];
184
+ readonly apply: 'add-or-replace';
185
+ readonly vocabularyCap: 'running-state';
186
+ readonly vocabularyStateField: 'running';
187
+ readonly sources: readonly [{
188
+ readonly kind: 'switch';
189
+ readonly transformKinds: readonly ["identity"];
190
+ }, {
191
+ readonly kind: 'binary';
192
+ readonly transformKinds: readonly ["identity", "invert"];
193
+ }, {
194
+ readonly kind: 'numeric';
195
+ readonly requiredUnit: 'W';
196
+ readonly transformKinds: readonly ["threshold"];
197
+ }];
198
+ readonly sourceReport: {
199
+ readonly status: 'assignment-status';
200
+ readonly runtimeField: 'source';
201
+ readonly nativeValue: 'native';
202
+ readonly assignedValue: 'assigned';
203
+ };
204
+ readonly advancedExpression: true;
205
+ readonly path: 'running';
206
+ readonly valueKind: 'boolean';
207
+ readonly nullable: true;
208
+ readonly companions: readonly [{
209
+ readonly kind: 'constant';
210
+ readonly path: 'source';
211
+ readonly value: 'assigned';
212
+ readonly when: 'always';
213
+ }, {
214
+ readonly kind: 'constant';
215
+ readonly path: 'phase';
216
+ readonly value: null;
217
+ readonly when: 'always';
218
+ }, {
219
+ readonly kind: 'clock';
220
+ readonly path: 'lastFetchedAt';
221
+ readonly when: 'always';
222
+ }, {
223
+ readonly kind: 'transition-time';
224
+ readonly path: 'since';
225
+ readonly sourceChangedAt: 'prefer';
226
+ }];
227
+ }];
228
+ };
229
+ };
@@ -52,6 +52,7 @@ import { privacyMaskCapability } from '../capabilities/privacy-mask.cap.js';
52
52
  import { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
53
53
  import { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
54
54
  import { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
55
+ import { runningStateCapability } from '../capabilities/running-state.cap.js';
55
56
  import { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
56
57
  import { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
57
58
  import { smokeCapability } from '../capabilities/smoke.cap.js';
@@ -135,6 +136,7 @@ export interface DeviceLocalState {
135
136
  ptzAutotrack: InferRuntimeState<typeof ptzAutotrackCapability>;
136
137
  recordingOnboard: InferRuntimeState<typeof recordingOnboardCapability>;
137
138
  recordingSignal: InferRuntimeState<typeof recordingSignalCapability>;
139
+ runningState: InferRuntimeState<typeof runningStateCapability>;
138
140
  sceneMonitor: InferRuntimeState<typeof sceneMonitorCapability>;
139
141
  scriptRunner: InferRuntimeState<typeof scriptRunnerCapability>;
140
142
  smoke: InferRuntimeState<typeof smokeCapability>;
@@ -228,6 +230,7 @@ export interface CapNameToRuntimeStateMap {
228
230
  'ptz-autotrack': InferRuntimeState<typeof ptzAutotrackCapability>;
229
231
  'recording-onboard': InferRuntimeState<typeof recordingOnboardCapability>;
230
232
  'recording-signal': InferRuntimeState<typeof recordingSignalCapability>;
233
+ 'running-state': InferRuntimeState<typeof runningStateCapability>;
231
234
  'scene-monitor': InferRuntimeState<typeof sceneMonitorCapability>;
232
235
  'script-runner': InferRuntimeState<typeof scriptRunnerCapability>;
233
236
  'smoke': InferRuntimeState<typeof smokeCapability>;
@@ -71,6 +71,7 @@ import type { rebootCapability } from '../capabilities/reboot.cap.js';
71
71
  import type { recordingCapability } from '../capabilities/recording.cap.js';
72
72
  import type { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
73
73
  import type { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
74
+ import type { runningStateCapability } from '../capabilities/running-state.cap.js';
74
75
  import type { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
75
76
  import type { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
76
77
  import type { smokeCapability } from '../capabilities/smoke.cap.js';
@@ -169,6 +170,7 @@ export interface DeviceProxyState {
169
170
  readonly ptzAutotrack: SliceHandle<InferRuntimeState<typeof ptzAutotrackCapability>>;
170
171
  readonly recordingOnboard: SliceHandle<InferRuntimeState<typeof recordingOnboardCapability>>;
171
172
  readonly recordingSignal: SliceHandle<InferRuntimeState<typeof recordingSignalCapability>>;
173
+ readonly runningState: SliceHandle<InferRuntimeState<typeof runningStateCapability>>;
172
174
  readonly sceneMonitor: SliceHandle<InferRuntimeState<typeof sceneMonitorCapability>>;
173
175
  readonly scriptRunner: SliceHandle<InferRuntimeState<typeof scriptRunnerCapability>>;
174
176
  readonly smoke: SliceHandle<InferRuntimeState<typeof smokeCapability>>;
@@ -275,6 +277,7 @@ export interface DeviceProxy {
275
277
  readonly recording?: InferDeviceProxyCap<typeof recordingCapability>;
276
278
  readonly recordingOnboard?: InferDeviceProxyCap<typeof recordingOnboardCapability>;
277
279
  readonly recordingSignal?: InferDeviceProxyCap<typeof recordingSignalCapability>;
280
+ readonly runningState?: InferDeviceProxyCap<typeof runningStateCapability>;
278
281
  readonly sceneMonitor?: InferDeviceProxyCap<typeof sceneMonitorCapability>;
279
282
  readonly scriptRunner?: InferDeviceProxyCap<typeof scriptRunnerCapability>;
280
283
  readonly smoke?: InferDeviceProxyCap<typeof smokeCapability>;
@@ -5,7 +5,7 @@
5
5
  * can answer "may a rule actuate this?" without importing the schema barrel
6
6
  * (~144MB RSS per runner, D28).
7
7
  *
8
- * Coverage: 90 device-scoped capabilities.
8
+ * Coverage: 91 device-scoped capabilities.
9
9
  */
10
10
  export declare const DEVICE_SCOPED_CAPS: ReadonlySet<string>;
11
11
  /**
@@ -1,7 +1,7 @@
1
1
  import type { CapabilityHistoryField, CapabilityHistoryItems } from '../capabilities/capability-definition.js';
2
2
  /**
3
3
  * Cap history catalog, projected from every `*.cap.ts` `history` block.
4
- * 40 caps with series (73 series), 30 caps answered `'none'`.
4
+ * 41 caps with series (74 series), 30 caps answered `'none'`.
5
5
  * Field keys are `runtimeState` paths (`a.b` into fixed objects only).
6
6
  */
7
7
  export declare const HISTORY_CATALOG: Readonly<Record<string, Readonly<Record<string, CapabilityHistoryField>>>>;
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1378 method paths across 179 capabilities.
9
+ * Coverage: 1379 method paths across 180 capabilities.
10
10
  */
11
11
  import type { MethodRole } from '../auth/viewer-access.js';
12
12
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
@@ -6,7 +6,7 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 545 methods carry a device reference, of which
9
+ * Coverage: 546 methods carry a device reference, of which
10
10
  * 174 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
@@ -11,7 +11,7 @@ export interface RuntimeStatePolicy {
11
11
  }
12
12
  /**
13
13
  * Per-cap runtime-state policy, projected from every `*.cap.ts` that declares
14
- * `runtimeState`. 71 caps: 37 `restored`, 34 `session`.
14
+ * `runtimeState`. 72 caps: 38 `restored`, 34 `session`.
15
15
  *
16
16
  * A cap absent from this map has no runtime-state slice at all. A cap PRESENT
17
17
  * with `durability: 'session'` has one and has decided not to keep it.
package/dist/index.d.ts CHANGED
@@ -164,6 +164,8 @@ export type { AutomationAction, AutomationCondition, AutomationConditionAll, Aut
164
164
  export { AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationRecipeSchema, AutomationTriggerSchema, conditionDepth, countConditionLeaves, generateAutomationBlock, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, validateRecipeBounds, } from './automation/index.js';
165
165
  export * from './cap-call-context.js';
166
166
  export * from './capabilities/index.js';
167
+ export * from './running-state/defaults.js';
168
+ export * from './running-state/from-operation.js';
167
169
  export * from './clips/clip-event-labels.js';
168
170
  export * from './device-extension/index.js';
169
171
  export * from './composition/index.js';
@@ -252,6 +254,20 @@ export type { RuntimeStatePolicy } from './generated/runtime-state-durability.js
252
254
  export { isRestoredCap, RESTORED_CAP_NAMES, RUNTIME_STATE_POLICY, runtimeStatePolicyFor, } from './generated/runtime-state-durability.js';
253
255
  export { BucketAccumulator, bucketStartOf, type ClosedHistoryBucket, HISTORY_BUCKET_MS, MAX_REQUEUED_BUCKETS_PER_SERIES, } from './history/bucket-accumulator.js';
254
256
  export { HISTORY_CATALOG, HISTORY_ITEM_CATALOG, HISTORY_NONE_CAPS, historyFieldsFor, } from './generated/history-catalog.js';
257
+ export { CAP_CUSTOMIZE_CATALOG } from './generated/customize-catalog.js';
258
+ export type { CustomizeCatalog, CustomizeCatalogField, CustomizeCatalogSource, CustomizeCatalogTarget, } from './capabilities/customize-catalog.js';
259
+ export type { CapabilityCustomizeSpec, CapabilityCustomizeTarget, CustomizeCardinality, EventCustomizeTarget, PulseEventCustomizeTarget, SpanEventCustomizeTarget, } from './capabilities/customize-spec.js';
260
+ export { CustomizeAssignmentStatusSchema, OverrideDraftSchema, type CustomizeAssignmentStatus, type OverrideDraft, } from './composition/customize/override-draft.js';
261
+ export { compileScalarOverride, type ScalarCompileInput, type ScalarValueKind, } from './composition/customize/scalar-compile.js';
262
+ export { decodeScalarOverride, type ScalarDecoded, type ScalarDecodeInput, } from './composition/customize/scalar-decode.js';
263
+ export { projectScalarAssignment, type ScalarAssignmentProjection, type ScalarRead, type ScalarSourcePresence, type ScalarStatusInput, } from './composition/customize/scalar-status.js';
264
+ export { compilePulseOverride, compileSpanOverride, type PulseCompileInput, type SpanCompileInput, type SpanCompiled, } from './composition/customize/event-compile.js';
265
+ export { decodePulseOverride, type PulseDecodeInput, type PulseDecoded, } from './composition/customize/event-decode.js';
266
+ export { INITIAL_PULSE, INITIAL_SPAN, stepPulse, stepSpan, type LevelSample, type PulseState, type SpanState, type SpanTiming, } from './composition/customize/event-eval.js';
267
+ export { projectPulseAssignment, projectSpanAssignment, type PulseAssignmentProjection, type PulseStatusInput, type SpanAssignmentProjection, type SpanRead, type SpanSensorRow, } from './composition/customize/event-status.js';
268
+ export { compileKeyedArrayOverride, mergeKeyedArrayItem, withoutKeyedArrayItem, type KeyedArrayCompileInput, type KeyedArrayItemCompile, type KeyedArrayLiteral, type KeyedSourceValueKind, } from './composition/customize/keyed-array-compile.js';
269
+ export { decodeKeyedArrayOverride, readKeyedArrayItems, type KeyedArrayItemView, type KeyedArrayRead, } from './composition/customize/keyed-array-decode.js';
270
+ export { projectKeyedArrayAssignment, type KeyedArrayAssignmentProjection, type KeyedArrayStatusInput, } from './composition/customize/keyed-array-status.js';
255
271
  export type { ScopePresetId, ScopePresetSpec } from './generated/scope-presets.js';
256
272
  export { SCOPE_PRESETS } from './generated/scope-presets.js';
257
273
  export type { SystemProxy } from './generated/system-proxy.js';