@camstack/types 1.2.434 → 1.2.436

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 (54) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/addon.js +1 -1
  3. package/dist/addon.mjs +1 -1
  4. package/dist/capabilities/addons.cap.d.ts +8 -0
  5. package/dist/capabilities/air-quality-sensor.cap.d.ts +8 -8
  6. package/dist/capabilities/ambient-light-sensor.cap.d.ts +4 -4
  7. package/dist/capabilities/battery.cap.d.ts +14 -14
  8. package/dist/capabilities/brightness.cap.d.ts +7 -7
  9. package/dist/capabilities/capability-definition.d.ts +3 -3
  10. package/dist/capabilities/color.cap.d.ts +6 -6
  11. package/dist/capabilities/device-history.cap.d.ts +2 -2
  12. package/dist/capabilities/dishwasher.cap.d.ts +11 -11
  13. package/dist/capabilities/fan-control.cap.d.ts +6 -6
  14. package/dist/capabilities/humidity-sensor.cap.d.ts +4 -4
  15. package/dist/capabilities/index.d.ts +1 -1
  16. package/dist/capabilities/lawn-mower-control.cap.d.ts +3 -3
  17. package/dist/capabilities/media-player.cap.d.ts +8 -8
  18. package/dist/capabilities/meter.cap.d.ts +1 -1
  19. package/dist/capabilities/network-link.cap.d.ts +13 -13
  20. package/dist/capabilities/notification-output.cap.d.ts +70 -0
  21. package/dist/capabilities/power-meter.cap.d.ts +22 -22
  22. package/dist/capabilities/presence.cap.d.ts +1 -15
  23. package/dist/capabilities/pressure-sensor.cap.d.ts +4 -4
  24. package/dist/capabilities/temperature-sensor.cap.d.ts +4 -4
  25. package/dist/capabilities/vacuum-control.cap.d.ts +3 -3
  26. package/dist/client.js +50 -2
  27. package/dist/client.mjs +50 -2
  28. package/dist/composition/composition-report.d.ts +1 -1
  29. package/dist/composition/examples.d.ts +1 -1
  30. package/dist/composition/helpers/appliance.d.ts +1 -1
  31. package/dist/composition/helpers/index.d.ts +1 -1
  32. package/dist/composition/helpers/source-pick.d.ts +7 -0
  33. package/dist/{composition-Bb8iwHEJ.mjs → composition-DwA0uVW5.mjs} +3 -2
  34. package/dist/{composition-CpAc0YfQ.js → composition-WNkEpwkF.js} +3 -2
  35. package/dist/device/base-device.d.ts +2 -2
  36. package/dist/device/device-runtime-state.d.ts +1 -1
  37. package/dist/device/device-state-handle.d.ts +1 -1
  38. package/dist/device/system-mirror.d.ts +1 -1
  39. package/dist/generated/addon-cap-facts.d.ts +1 -1
  40. package/dist/generated/customize-catalog.d.ts +15 -15
  41. package/dist/generated/history-catalog.d.ts +1 -1
  42. package/dist/index.d.ts +1 -0
  43. package/dist/index.js +331 -212
  44. package/dist/index.mjs +328 -213
  45. package/dist/interfaces/addon.d.ts +8 -0
  46. package/dist/interfaces/event-bus.d.ts +3 -3
  47. package/dist/node.js +1 -1
  48. package/dist/node.mjs +1 -1
  49. package/dist/notification/delivery-params.d.ts +15 -0
  50. package/dist/{sleep-DFaVPxfm.mjs → sleep-Crlmu_tO.mjs} +26 -30
  51. package/dist/{sleep-CO61AfwW.js → sleep-DHitF_e4.js} +26 -30
  52. package/dist/vendor-login-proxy/index.d.ts +1 -1
  53. package/dist/vendor-login-proxy/url-rewrite.d.ts +7 -0
  54. package/package.json +1 -1
@@ -24,5 +24,5 @@ export interface ApplianceDefaults {
24
24
  export declare const APPLIANCE_DEFAULTS: Readonly<Record<ApplianceKind, ApplianceDefaults>>;
25
25
  export declare function applianceDeviceType(kind: ApplianceKind): DeviceType;
26
26
  export declare function isApplianceKind(value: string): value is ApplianceKind;
27
- /** The member step: one watts reading, from a sensor or from the plug itself. */
27
+ /** The member step: one power reading, from a sensor or from the plug itself. */
28
28
  export declare function sourcePickForAppliance(): SourcePickRequest;
@@ -10,5 +10,5 @@ export { KWH_PER_WATT_MS, wattMillisecondsToKwh } from './energy.js';
10
10
  export { type HistoryValue, type IntegralScale, type SeriesBefore, type SeriesKind, type SeriesPoint, type SeriesRead, STATISTIC_STATS, SERIES_KINDS, evaluateDerivative, evaluateStatistic, integrateReading, } from './history-math.js';
11
11
  export { type CalendarPeriod, type CalendarWindow, type HistoryRetention, type HistoryTier, type HistoryTierPlan, type OpenRange, type ResetPeriod, type RollingSpan, type RollingWindow, type StatisticWindow, CALENDAR_PERIODS, CalendarWindowSchema, DAY_MS, DEFAULT_HISTORY_RETENTION, HISTORY_FAST_MS, HISTORY_SLOW_MS, HISTORY_TIERS, HOUR_MS, MINUTE_MS, MIN_CUSTOM_MINUTES, RESET_PERIODS, ROLLING_SPANS, RollingWindowSchema, StatisticWindowSchema, integralCadenceMs, maxDurationMs, nextLocalMidnight, openReset, openStatistic, planResetTier, planStatisticTier, rollingDurationMs, statisticCadenceMs, } from './history-window.js';
12
12
  export { type HelperMemberFact, helperSaveProblems, } from './save.js';
13
- export { type SourcePick, type SourcePickAccept, type SourcePickHistory, type SourcePickRequest, type MathSourceKind, sourcePickForHistory, sourcePickForMath, sourcePickForTemplate, } from './source-pick.js';
13
+ export { type SourcePick, type SourcePickAccept, type SourcePickFieldChoice, type SourcePickHistory, type SourcePickRequest, type MathSourceKind, sourcePickForHistory, sourcePickForMath, sourcePickForTemplate, } from './source-pick.js';
14
14
  export { ACTIVE_CRITERIA, AGGREGATE_REDUCERS, ActiveCriterionSchema, AggregateReducerSchema, BINARY_AGGREGATES, GROUP_TEMPLATE_IDS, ApplianceHelperSpecSchema, ARITHMETIC_OPS, ArithmeticHelperSpecSchema, DERIVATIVE_UNITS, DerivativeHelperSpecSchema, EXPRESSION_OUTPUTS, ExpressionHelperSpecSchema, ThresholdHelperSpecSchema, GroupHelperSpecSchema, GroupTemplateIdSchema, HelperMemberSchema, HelperSpecSchema, INTEGRAL_OUTPUTS, IntegralHelperSpecSchema, MAX_HELPER_MEMBERS, helperMembers, isHistoryHelper, NUMERIC_AGGREGATES, StatisticHelperSpecSchema, type ActiveCriterion, type AggregateReducer, type BinaryAggregate, type ApplianceHelperSpec, type ArithmeticHelperSpec, type ArithmeticOp, type DerivativeHelperSpec, type DerivativeUnit, type ExpressionHelperSpec, type ExpressionInput, type ExpressionOutput, type ThresholdHelperSpec, type GroupHelperSpec, type GroupTemplateId, type HelperMember, type HelperSpec, type HistoryHelperSpec, type IntegralHelperSpec, type IntegralOutput, type NumericAggregate, type StatisticHelperSpec, type StatisticStat, } from './spec.js';
@@ -15,7 +15,14 @@ export interface SourcePickHistory {
15
15
  readonly required: boolean;
16
16
  readonly minRetentionMs: number | null;
17
17
  }
18
+ /**
19
+ * How a device that satisfies several accept entries gets its field. `first-match`
20
+ * takes the first listed entry the device has (the dedicated sensor before a
21
+ * climate reading); `operator` waits for the operator to pick (occupancy).
22
+ */
23
+ export type SourcePickFieldChoice = 'first-match' | 'operator';
18
24
  export interface SourcePickRequest {
25
+ readonly fieldChoice: SourcePickFieldChoice;
19
26
  readonly purpose: 'member' | 'reading' | 'historised';
20
27
  readonly multiple: boolean;
21
28
  readonly max: number;
@@ -2263,16 +2263,17 @@ function applianceDeviceType(kind) {
2263
2263
  function isApplianceKind(value) {
2264
2264
  return APPLIANCE_KINDS.some((kind) => kind === value);
2265
2265
  }
2266
- /** The member step: one watts reading, from a sensor or from the plug itself. */
2266
+ /** The member step: one power reading, from a sensor or from the plug itself. */
2267
2267
  function sourcePickForAppliance() {
2268
2268
  return {
2269
+ fieldChoice: "operator",
2269
2270
  purpose: "reading",
2270
2271
  multiple: false,
2271
2272
  max: 1,
2272
2273
  deviceTypes: [DeviceType.Sensor, DeviceType.Switch],
2273
2274
  accept: [{
2274
2275
  cap: "power-meter",
2275
- fieldPath: "watts",
2276
+ fieldPath: "power",
2276
2277
  valueKind: "number"
2277
2278
  }],
2278
2279
  history: {
@@ -2263,16 +2263,17 @@ function applianceDeviceType(kind) {
2263
2263
  function isApplianceKind(value) {
2264
2264
  return APPLIANCE_KINDS.some((kind) => kind === value);
2265
2265
  }
2266
- /** The member step: one watts reading, from a sensor or from the plug itself. */
2266
+ /** The member step: one power reading, from a sensor or from the plug itself. */
2267
2267
  function sourcePickForAppliance() {
2268
2268
  return {
2269
+ fieldChoice: "operator",
2269
2270
  purpose: "reading",
2270
2271
  multiple: false,
2271
2272
  max: 1,
2272
2273
  deviceTypes: [require_err_msg.DeviceType.Sensor, require_err_msg.DeviceType.Switch],
2273
2274
  accept: [{
2274
2275
  cap: "power-meter",
2275
- fieldPath: "watts",
2276
+ fieldPath: "power",
2276
2277
  valueKind: "number"
2277
2278
  }],
2278
2279
  history: {
@@ -31,7 +31,7 @@ export declare abstract class BaseDevice<T extends z.ZodObject<z.core.$ZodLooseS
31
31
  * `device-local-state.ts`. Drivers access via:
32
32
  *
33
33
  * `this.state.battery.sleeping = true` // patches the battery slice
34
- * `const pct = this.state.battery.percentage` // reads the battery slice
34
+ * `const pct = this.state.battery.level` // reads the battery slice
35
35
  * `this.state.deviceStatus.online = true` // mirrors `markOnline(true)`
36
36
  *
37
37
  * Adding a new cap with `runtimeState:` automatically extends this
@@ -56,7 +56,7 @@ export declare abstract class BaseDevice<T extends z.ZodObject<z.core.$ZodLooseS
56
56
  * shape; drivers don't redeclare it, they just write through.
57
57
  *
58
58
  * Read: `this.runtimeState.getCapState('battery')` →
59
- * `{percentage, charging, sleeping, lastUpdated}` for any
59
+ * `{level, charging, sleeping, lastUpdated}` for any
60
60
  * provider that registers `batteryCapability`.
61
61
  * Write: `this.runtimeState.setCapState('battery', { … })`.
62
62
  *
@@ -40,7 +40,7 @@ export interface IDeviceRuntimeState {
40
40
  getCapState<K extends keyof import('../generated/device-local-state.js').CapNameToRuntimeStateMap>(capName: K): Readonly<import('../generated/device-local-state.js').CapNameToRuntimeStateMap[K]> | undefined;
41
41
  getCapState<T extends Record<string, unknown> = Record<string, unknown>>(capName: string): Readonly<T> | undefined;
42
42
  /** Read a single key inside a slice. Convenience for the common
43
- * case of reading a primitive (`battery.percentage`). */
43
+ * case of reading a primitive (`battery.level`). */
44
44
  getCapField(capName: string, key: string): unknown;
45
45
  /**
46
46
  * Replace the slice for `capName`. The schema bound to `capName`
@@ -182,7 +182,7 @@ export declare function createMirrorSource(mirror: ReadonlyMap<number, ReadonlyM
182
182
  *
183
183
  * const dev = createDeviceProxy(api, binding)
184
184
  * dev.state.battery.value // BatteryStatus | undefined
185
- * dev.state.battery.value?.percentage
185
+ * dev.state.battery.value?.level
186
186
  *
187
187
  * Two-arg form (deprecated path, kept for spec compatibility):
188
188
  * passes the api directly, builds a per-handle lazy source. New
@@ -33,7 +33,7 @@
33
33
  * await dev?.snapshot?.getSnapshot({...}) // method dispatch via cap-router
34
34
  *
35
35
  * sm.query({ addonId: 'reolink', online: true })
36
- * sm.whereState('battery', s => s.percentage < 20)
36
+ * sm.whereState('battery', s => s.level < 20)
37
37
  * sm.listenCap('motion', (id, slice) => …)
38
38
  * await sm.waitForState(8, 'battery', s => !s.sleeping, 30_000)
39
39
  *
@@ -5,7 +5,7 @@
5
5
  * `ALL_CAPABILITY_DEFINITIONS` (the whole Zod schema graph, ~+100 MB heap per
6
6
  * runner). See docs/decisions/adr-0028.md.
7
7
  *
8
- * Coverage: 1 advance-derived caps, 77 caps with 356 state leaves.
8
+ * Coverage: 1 advance-derived caps, 77 caps with 355 state leaves.
9
9
  */
10
10
  /** A bindable scalar in a capability's runtime state. */
11
11
  export interface CapStateLeaf {
@@ -7,12 +7,12 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
7
7
  readonly battery: {
8
8
  readonly version: 1;
9
9
  readonly targets: readonly [{
10
- readonly id: 'percentage';
10
+ readonly id: 'level';
11
11
  readonly cardinality: 'scalar';
12
12
  readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter];
13
13
  readonly apply: 'add';
14
14
  readonly vocabularyCap: 'battery';
15
- readonly vocabularyStateField: 'percentage';
15
+ readonly vocabularyStateField: 'level';
16
16
  readonly sources: readonly [{
17
17
  readonly kind: 'field';
18
18
  readonly valueKinds: readonly ["number", "string"];
@@ -31,7 +31,7 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
31
31
  readonly status: 'assignment-status';
32
32
  };
33
33
  readonly advancedExpression: true;
34
- readonly path: 'percentage';
34
+ readonly path: 'level';
35
35
  readonly valueKind: 'number';
36
36
  readonly nullable: true;
37
37
  readonly companions: readonly [{
@@ -209,12 +209,12 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
209
209
  readonly 'power-meter': {
210
210
  readonly version: 1;
211
211
  readonly targets: readonly [{
212
- readonly id: 'watts';
212
+ readonly id: 'power';
213
213
  readonly cardinality: 'scalar';
214
214
  readonly deviceTypes: readonly [DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder];
215
215
  readonly apply: 'add';
216
216
  readonly vocabularyCap: 'power-meter';
217
- readonly vocabularyStateField: 'watts';
217
+ readonly vocabularyStateField: 'power';
218
218
  readonly sources: readonly [{
219
219
  readonly kind: 'numeric';
220
220
  readonly requiredUnit: 'W';
@@ -227,7 +227,7 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
227
227
  readonly status: 'assignment-status';
228
228
  };
229
229
  readonly advancedExpression: true;
230
- readonly path: 'watts';
230
+ readonly path: 'power';
231
231
  readonly valueKind: 'number';
232
232
  readonly nullable: false;
233
233
  readonly companions: readonly [{
@@ -236,12 +236,12 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
236
236
  readonly when: 'always';
237
237
  }];
238
238
  }, {
239
- readonly id: 'kwhTotal';
239
+ readonly id: 'energy';
240
240
  readonly cardinality: 'scalar';
241
241
  readonly deviceTypes: readonly [DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder];
242
242
  readonly apply: 'add';
243
243
  readonly vocabularyCap: 'power-meter';
244
- readonly vocabularyStateField: 'kwhTotal';
244
+ readonly vocabularyStateField: 'energy';
245
245
  readonly sources: readonly [{
246
246
  readonly kind: 'numeric';
247
247
  readonly requiredUnit: 'kWh';
@@ -254,7 +254,7 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
254
254
  readonly status: 'assignment-status';
255
255
  };
256
256
  readonly advancedExpression: true;
257
- readonly path: 'kwhTotal';
257
+ readonly path: 'energy';
258
258
  readonly valueKind: 'number';
259
259
  readonly nullable: false;
260
260
  readonly companions: readonly [{
@@ -263,12 +263,12 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
263
263
  readonly when: 'always';
264
264
  }];
265
265
  }, {
266
- readonly id: 'volts';
266
+ readonly id: 'voltage';
267
267
  readonly cardinality: 'scalar';
268
268
  readonly deviceTypes: readonly [DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder];
269
269
  readonly apply: 'add';
270
270
  readonly vocabularyCap: 'power-meter';
271
- readonly vocabularyStateField: 'volts';
271
+ readonly vocabularyStateField: 'voltage';
272
272
  readonly sources: readonly [{
273
273
  readonly kind: 'numeric';
274
274
  readonly requiredUnit: 'V';
@@ -281,7 +281,7 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
281
281
  readonly status: 'assignment-status';
282
282
  };
283
283
  readonly advancedExpression: true;
284
- readonly path: 'volts';
284
+ readonly path: 'voltage';
285
285
  readonly valueKind: 'number';
286
286
  readonly nullable: false;
287
287
  readonly companions: readonly [{
@@ -290,12 +290,12 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
290
290
  readonly when: 'always';
291
291
  }];
292
292
  }, {
293
- readonly id: 'amps';
293
+ readonly id: 'current';
294
294
  readonly cardinality: 'scalar';
295
295
  readonly deviceTypes: readonly [DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder];
296
296
  readonly apply: 'add';
297
297
  readonly vocabularyCap: 'power-meter';
298
- readonly vocabularyStateField: 'amps';
298
+ readonly vocabularyStateField: 'current';
299
299
  readonly sources: readonly [{
300
300
  readonly kind: 'numeric';
301
301
  readonly requiredUnit: 'A';
@@ -308,7 +308,7 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
308
308
  readonly status: 'assignment-status';
309
309
  };
310
310
  readonly advancedExpression: true;
311
- readonly path: 'amps';
311
+ readonly path: 'current';
312
312
  readonly valueKind: 'number';
313
313
  readonly nullable: false;
314
314
  readonly companions: readonly [{
@@ -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
- * 42 caps with series (77 series), 33 caps answered `'none'`.
4
+ * 41 caps with series (76 series), 34 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>>>>;
package/dist/index.d.ts CHANGED
@@ -293,6 +293,7 @@ export { AUDIO_SCALE_EPOCH_ISO, AUDIO_SCALE_EPOCH_MS, type AudioScaleEra, audioS
293
293
  export { audioIsFailClosed, audioKindId, audioLabelChoices, audioModeOf, audioOrDefaults, isAudioLabelSelected, NC_AUDIO_CONFIRM_HITS_DEFAULT, NC_AUDIO_CONFIRM_HITS_MAX, NC_AUDIO_CONFIRM_HITS_MIN, NC_AUDIO_CONFIRM_WINDOW_MAX_SEC, NC_AUDIO_CONFIRM_WINDOW_MIN_SEC, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, NC_AUDIO_DB_MAX, NC_AUDIO_DB_MIN, NC_AUDIO_DB_OFFERED, NC_AUDIO_DB_STEP, NC_AUDIO_DEFAULTS, NC_AUDIO_HIT_PERCENT_MAX, NC_AUDIO_HIT_PERCENT_MIN, NC_AUDIO_SAMPLING_MAX_SEC, NC_AUDIO_SAMPLING_MIN_SEC, type NcAudioLabelChoice, type NcAudioMode, type NcAudioPatch, normalizeAudioLabel, patchAudio, toggleAudioLabel, } from './notification/audio-condition.js';
294
294
  export { isAudioClassName, isBaseConditionKey, knownValues, NC_BASE_CONDITION_KEYS, type NcBaseConditionKey, pickerForCondition, pickerForRuleClasses, type TaxonomyGroup, type TaxonomyOption, type TaxonomyPicker, } from './notification/condition-taxonomy.js';
295
295
  export { type PreparedAction, type PreparedAttachment, type PreparedNotification, prepareNotification, type ResolvedLevel, } from './notification/degrade-engine.js';
296
+ export { deliveryParamsDeclaredBy, resolveDeliveryParams } from './notification/delivery-params.js';
296
297
  export { htmlToText, markdownToHtmlLite, markdownToText, type NotificationFormat as NotificationBodyFormat, resolveFormat, textToHtml, transcodeBody, } from './notification/format-transcode.js';
297
298
  export { conditionExclusionReason, conditionVisibleForKind, defaultDeliveryForSection, droppedConditionsForKind, isAudioRule, isOccupancyRule, isSystemDelivery, isSystemRuleKind, kindsForDiscriminator, NC_AUDIO_SEED, NC_CAMERA_SCOPE_CAP_NAME, NC_OCCUPANCY_DEFAULTS, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_RULE_SECTIONS, NC_SYSTEM_DELIVERY, NC_SYSTEM_RULE_KINDS, type NcDroppedCondition, type NcKindVisibilitySubject, type NcRuleEditorSection, type NcRuleEditorSectionKey, type NcRuleKind, type NcRuleKindSpec, type NcRuleOwningSectionKey, type NcRuleSection, type NcRuleSectionKey, type NcRuleConditionsSubject, type NcRuleSectionSubject, type NcRuleSeed, parseRuleSection, ruleDeviceCompatCapNames, ruleDeviceCompatCapQueries, ruleEditorSectionsForKind, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, systemFamilyOfKind, systemRuleKindOf, } from './notification/rule-kinds.js';
298
299
  export { imageModesForKind, legacyImageMode, NC_MEDIA_IMAGE_MODES, type NcMediaRuleSubject, ncMediaPolicyError, normalizeNcMediaPolicy, resolveNcMediaImage, ruleTriggerZoneIds, subjectHasPath, } from './notification/media-image.js';