@camstack/types 1.2.312 → 1.2.314

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.
@@ -108,6 +108,12 @@ export declare const CustomModelDescriptorSchema: z.ZodObject<{
108
108
  }>>;
109
109
  postprocessor: z.ZodOptional<z.ZodCustom<import("../index.js").PostprocessorType, import("../index.js").PostprocessorType>>;
110
110
  defaultConfidence: z.ZodOptional<z.ZodNumber>;
111
+ defaultClassFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
112
+ gpuInferencePrecision: z.ZodOptional<z.ZodEnum<{
113
+ f32: "f32";
114
+ f16: "f16";
115
+ }>>;
116
+ suppliedLabelFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
111
117
  faceAlignment: z.ZodOptional<z.ZodBoolean>;
112
118
  extraFiles: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
113
119
  url: z.ZodString;
@@ -194,6 +200,11 @@ export declare const CustomModelDescriptorSchema: z.ZodObject<{
194
200
  plate: "plate";
195
201
  }>;
196
202
  rootInputPx: z.ZodOptional<z.ZodNumber>;
203
+ }, z.core.$strip>, z.ZodObject<{
204
+ kind: z.ZodLiteral<"mask">;
205
+ stepId: z.ZodEnum<{
206
+ segmentation: "segmentation";
207
+ }>;
197
208
  }, z.core.$strip>], "kind">>>>;
198
209
  clip: z.ZodOptional<z.ZodObject<{
199
210
  textModelId: z.ZodString;
@@ -313,6 +324,12 @@ export declare const customModelRegistryCapability: {
313
324
  }>>;
314
325
  postprocessor: z.ZodOptional<z.ZodCustom<import("../index.js").PostprocessorType, import("../index.js").PostprocessorType>>;
315
326
  defaultConfidence: z.ZodOptional<z.ZodNumber>;
327
+ defaultClassFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
328
+ gpuInferencePrecision: z.ZodOptional<z.ZodEnum<{
329
+ f32: "f32";
330
+ f16: "f16";
331
+ }>>;
332
+ suppliedLabelFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
316
333
  faceAlignment: z.ZodOptional<z.ZodBoolean>;
317
334
  extraFiles: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
318
335
  url: z.ZodString;
@@ -399,6 +416,11 @@ export declare const customModelRegistryCapability: {
399
416
  plate: "plate";
400
417
  }>;
401
418
  rootInputPx: z.ZodOptional<z.ZodNumber>;
419
+ }, z.core.$strip>, z.ZodObject<{
420
+ kind: z.ZodLiteral<"mask">;
421
+ stepId: z.ZodEnum<{
422
+ segmentation: "segmentation";
423
+ }>;
402
424
  }, z.core.$strip>], "kind">>>>;
403
425
  clip: z.ZodOptional<z.ZodObject<{
404
426
  textModelId: z.ZodString;
@@ -32,11 +32,11 @@ export declare const ModelConvertInputSchema: z.ZodObject<{
32
32
  }>>;
33
33
  outputFormat: z.ZodEnum<{
34
34
  classification: "classification";
35
+ segmentation: "segmentation";
35
36
  yolo: "yolo";
36
37
  ssd: "ssd";
37
38
  embedding: "embedding";
38
39
  ocr: "ocr";
39
- segmentation: "segmentation";
40
40
  }>;
41
41
  faceAlignment: z.ZodOptional<z.ZodBoolean>;
42
42
  classMap: z.ZodOptional<z.ZodObject<{
@@ -100,11 +100,11 @@ export declare const modelConvertCapability: {
100
100
  }>>;
101
101
  outputFormat: z.ZodEnum<{
102
102
  classification: "classification";
103
+ segmentation: "segmentation";
103
104
  yolo: "yolo";
104
105
  ssd: "ssd";
105
106
  embedding: "embedding";
106
107
  ocr: "ocr";
107
- segmentation: "segmentation";
108
108
  }>;
109
109
  faceAlignment: z.ZodOptional<z.ZodBoolean>;
110
110
  classMap: z.ZodOptional<z.ZodObject<{
@@ -218,6 +218,12 @@ export declare const modelConvertCapability: {
218
218
  }>>;
219
219
  postprocessor: z.ZodOptional<z.ZodCustom<import("../index.js").PostprocessorType, import("../index.js").PostprocessorType>>;
220
220
  defaultConfidence: z.ZodOptional<z.ZodNumber>;
221
+ defaultClassFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
222
+ gpuInferencePrecision: z.ZodOptional<z.ZodEnum<{
223
+ f32: "f32";
224
+ f16: "f16";
225
+ }>>;
226
+ suppliedLabelFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
221
227
  faceAlignment: z.ZodOptional<z.ZodBoolean>;
222
228
  extraFiles: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
223
229
  url: z.ZodString;
@@ -304,6 +310,11 @@ export declare const modelConvertCapability: {
304
310
  plate: "plate";
305
311
  }>;
306
312
  rootInputPx: z.ZodOptional<z.ZodNumber>;
313
+ }, z.core.$strip>, z.ZodObject<{
314
+ kind: z.ZodLiteral<"mask">;
315
+ stepId: z.ZodEnum<{
316
+ segmentation: "segmentation";
317
+ }>;
307
318
  }, z.core.$strip>], "kind">>>>;
308
319
  clip: z.ZodOptional<z.ZodObject<{
309
320
  textModelId: z.ZodString;
@@ -116,6 +116,12 @@ export declare const ModelDistributeInputSchema: z.ZodObject<{
116
116
  }>>;
117
117
  postprocessor: z.ZodOptional<z.ZodCustom<import("../index.js").PostprocessorType, import("../index.js").PostprocessorType>>;
118
118
  defaultConfidence: z.ZodOptional<z.ZodNumber>;
119
+ defaultClassFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
120
+ gpuInferencePrecision: z.ZodOptional<z.ZodEnum<{
121
+ f32: "f32";
122
+ f16: "f16";
123
+ }>>;
124
+ suppliedLabelFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
119
125
  faceAlignment: z.ZodOptional<z.ZodBoolean>;
120
126
  extraFiles: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
121
127
  url: z.ZodString;
@@ -202,6 +208,11 @@ export declare const ModelDistributeInputSchema: z.ZodObject<{
202
208
  plate: "plate";
203
209
  }>;
204
210
  rootInputPx: z.ZodOptional<z.ZodNumber>;
211
+ }, z.core.$strip>, z.ZodObject<{
212
+ kind: z.ZodLiteral<"mask">;
213
+ stepId: z.ZodEnum<{
214
+ segmentation: "segmentation";
215
+ }>;
205
216
  }, z.core.$strip>], "kind">>>>;
206
217
  clip: z.ZodOptional<z.ZodObject<{
207
218
  textModelId: z.ZodString;
@@ -326,6 +337,12 @@ export declare const modelDistributorCapability: {
326
337
  }>>;
327
338
  postprocessor: z.ZodOptional<z.ZodCustom<import("../index.js").PostprocessorType, import("../index.js").PostprocessorType>>;
328
339
  defaultConfidence: z.ZodOptional<z.ZodNumber>;
340
+ defaultClassFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
341
+ gpuInferencePrecision: z.ZodOptional<z.ZodEnum<{
342
+ f32: "f32";
343
+ f16: "f16";
344
+ }>>;
345
+ suppliedLabelFloors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
329
346
  faceAlignment: z.ZodOptional<z.ZodBoolean>;
330
347
  extraFiles: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
331
348
  url: z.ZodString;
@@ -412,6 +429,11 @@ export declare const modelDistributorCapability: {
412
429
  plate: "plate";
413
430
  }>;
414
431
  rootInputPx: z.ZodOptional<z.ZodNumber>;
432
+ }, z.core.$strip>, z.ZodObject<{
433
+ kind: z.ZodLiteral<"mask">;
434
+ stepId: z.ZodEnum<{
435
+ segmentation: "segmentation";
436
+ }>;
415
437
  }, z.core.$strip>], "kind">>>>;
416
438
  clip: z.ZodOptional<z.ZodObject<{
417
439
  textModelId: z.ZodString;
@@ -246,6 +246,11 @@ declare const PipelineModelOptionSchema: z.ZodObject<{
246
246
  plate: "plate";
247
247
  }>;
248
248
  rootInputPx: z.ZodOptional<z.ZodNumber>;
249
+ }, z.core.$strip>, z.ZodObject<{
250
+ kind: z.ZodLiteral<"mask">;
251
+ stepId: z.ZodEnum<{
252
+ segmentation: "segmentation";
253
+ }>;
249
254
  }, z.core.$strip>], "kind">>>>;
250
255
  }, z.core.$strip>;
251
256
  declare const PipelineAddonSchemaSchema: z.ZodObject<{
@@ -320,6 +325,11 @@ declare const PipelineAddonSchemaSchema: z.ZodObject<{
320
325
  plate: "plate";
321
326
  }>;
322
327
  rootInputPx: z.ZodOptional<z.ZodNumber>;
328
+ }, z.core.$strip>, z.ZodObject<{
329
+ kind: z.ZodLiteral<"mask">;
330
+ stepId: z.ZodEnum<{
331
+ segmentation: "segmentation";
332
+ }>;
323
333
  }, z.core.$strip>], "kind">>>>;
324
334
  }, z.core.$strip>>>;
325
335
  defaultModelId: z.ZodString;
@@ -419,6 +429,11 @@ declare const PipelineSlotSchemaSchema: z.ZodObject<{
419
429
  plate: "plate";
420
430
  }>;
421
431
  rootInputPx: z.ZodOptional<z.ZodNumber>;
432
+ }, z.core.$strip>, z.ZodObject<{
433
+ kind: z.ZodLiteral<"mask">;
434
+ stepId: z.ZodEnum<{
435
+ segmentation: "segmentation";
436
+ }>;
422
437
  }, z.core.$strip>], "kind">>>>;
423
438
  }, z.core.$strip>>>;
424
439
  defaultModelId: z.ZodString;
@@ -554,6 +569,11 @@ declare const PipelineSchemaSchema: z.ZodObject<{
554
569
  plate: "plate";
555
570
  }>;
556
571
  rootInputPx: z.ZodOptional<z.ZodNumber>;
572
+ }, z.core.$strip>, z.ZodObject<{
573
+ kind: z.ZodLiteral<"mask">;
574
+ stepId: z.ZodEnum<{
575
+ segmentation: "segmentation";
576
+ }>;
557
577
  }, z.core.$strip>], "kind">>>>;
558
578
  }, z.core.$strip>>>;
559
579
  defaultModelId: z.ZodString;
@@ -935,6 +955,11 @@ export declare const pipelineExecutorCapability: {
935
955
  plate: "plate";
936
956
  }>;
937
957
  rootInputPx: z.ZodOptional<z.ZodNumber>;
958
+ }, z.core.$strip>, z.ZodObject<{
959
+ kind: z.ZodLiteral<"mask">;
960
+ stepId: z.ZodEnum<{
961
+ segmentation: "segmentation";
962
+ }>;
938
963
  }, z.core.$strip>], "kind">>>>;
939
964
  }, z.core.$strip>>>;
940
965
  defaultModelId: z.ZodString;
@@ -50,3 +50,23 @@ export interface FrigateLabelFields {
50
50
  * does not list.
51
51
  */
52
52
  export declare function frigateLabelFields(labels: readonly string[]): FrigateLabelFields;
53
+ /**
54
+ * Per-class confidence-floor defaults of an imported stock Frigate detector
55
+ * (D738): its per-detection `min_score` default, 0.5, for every class. Its
56
+ * track-level `threshold` (the median of a track's recent scores) has no
57
+ * counterpart in CamStack's per-detection floors and is not carried.
58
+ */
59
+ export declare const FRIGATE_STOCK_CLASS_FLOORS: Readonly<Record<string, number>>;
60
+ /**
61
+ * Per-class floor defaults of an imported Frigate+ detector (D738): the
62
+ * documented starting `min_score` values for Frigate+ models, which score
63
+ * higher than the stock ones (person 0.65, car 0.65, cat 0.65, dog 0.70). The
64
+ * macro `animal` takes the lower of its classes, so no class is cut above its
65
+ * documented value.
66
+ */
67
+ export declare const FRIGATE_PLUS_CLASS_FLOORS: Readonly<Record<string, number>>;
68
+ /**
69
+ * The `defaultClassFloors` an imported Frigate entry carries: the import's
70
+ * own, when it states them, else the defaults of its kind. A fresh object.
71
+ */
72
+ export declare function frigateDefaultClassFloors(kind: 'stock' | 'plus', carried?: Readonly<Record<string, number>>): Record<string, number>;
@@ -13,25 +13,36 @@
13
13
  * and never touching it (D730). {@link resolveRootSupply} is the one decision
14
14
  * the runner, the detail dispatcher and the admin UI all read.
15
15
  *
16
- * Two kinds of supply:
16
+ * Three kinds of supply:
17
17
  * - `label` — the root's raw class IS the step's answer (`deer` for the animal
18
18
  * classifier). The detection carries it as a linked label.
19
19
  * - `crop` — the root draws the box the step would have found (a plate inside
20
20
  * a vehicle). The box becomes a detail child of the parent that contains it,
21
21
  * never a track of its own (D683).
22
+ * - `mask` — the root's decode emits an instance mask per detection (a
23
+ * YOLO26-seg root), which IS the `segmentation` step's result (D737).
22
24
  *
23
25
  * Pure — no I/O, no clock.
24
26
  */
25
27
  import type { ModelCatalogEntry, RootStepSupply } from '../types/models.js';
28
+ import type { PostprocessorType } from '../types/pipeline-step.js';
26
29
  /** Steps whose effect a root label can BE. */
27
30
  export declare const LABEL_SUPPLY_STEP_IDS: readonly ["animal-classifier", "vehicle-classifier", "package-detection"];
28
31
  export type LabelSupplyStepId = (typeof LABEL_SUPPLY_STEP_IDS)[number];
29
32
  /** Steps whose box a root detection can BE. */
30
33
  export declare const CROP_SUPPLY_STEP_IDS: readonly ["plate-detection", "face-detection"];
31
34
  export type CropSupplyStepId = (typeof CROP_SUPPLY_STEP_IDS)[number];
35
+ /**
36
+ * Steps whose per-detection MASK a root detection can carry (D737). The live
37
+ * mask step is `segmentation` — a frame-plane refiner that runs its own model
38
+ * once per detection crop. (`instance-segmentation` is a dormant step id that
39
+ * no camera tree carries.)
40
+ */
41
+ export declare const MASK_SUPPLY_STEP_IDS: readonly ["segmentation"];
42
+ export type MaskSupplyStepId = (typeof MASK_SUPPLY_STEP_IDS)[number];
32
43
  /** Every step a root model can supply. */
33
- export declare const ROOT_SUPPLIABLE_STEP_IDS: readonly ["animal-classifier", "vehicle-classifier", "package-detection", "plate-detection", "face-detection"];
34
- export type RootSuppliableStepId = LabelSupplyStepId | CropSupplyStepId;
44
+ export declare const ROOT_SUPPLIABLE_STEP_IDS: readonly ["animal-classifier", "vehicle-classifier", "package-detection", "plate-detection", "face-detection", "segmentation"];
45
+ export type RootSuppliableStepId = LabelSupplyStepId | CropSupplyStepId | MaskSupplyStepId;
35
46
  /** Narrow a step id to a suppliable one — type guard, not a cast. */
36
47
  export declare function isRootSuppliableStepId(value: string): value is RootSuppliableStepId;
37
48
  /** Narrow a step id to a label-kind one. */
@@ -89,7 +100,12 @@ export declare const CROP_SUPPLY_SOURCES: Readonly<Record<CropSupplyStepId, Crop
89
100
  * Whether an operator intends a step to take the root's output when the
90
101
  * root declares it — the default of the `useRootModel` flag. The label kinds
91
102
  * default ON: the detector's answer is the cheaper one and the classifier
92
- * keeps its model for the day the root changes. The crop kinds default OFF: a
103
+ * keeps its model for the day the root changes. The animal and vehicle
104
+ * classifiers are also ENABLED by default (their catalog `enabledByDefault`,
105
+ * D736), so out of the box a root that declares them names animals and
106
+ * vehicles and a root that does not runs the classifier; `package-detection`
107
+ * stays zone-driven and takes this default whenever a zone switches it on.
108
+ * The crop kinds default OFF: a
93
109
  * root plate box has an uncalibrated OCR margin, and root-face refinement has
94
110
  * not run on live traffic yet.
95
111
  */
@@ -120,6 +136,17 @@ export interface SupplyClassMap {
120
136
  * No classMap ⇒ no label supply (nothing says which macro a label lives under).
121
137
  */
122
138
  export declare function deriveRootSupplies(labels: readonly string[], classMap: SupplyClassMap | undefined): readonly RootStepSupply[];
139
+ /**
140
+ * The decodes that emit an instance mask with every detection — a fact of the
141
+ * model's OUTPUT, read from its postprocessor (`yolo-seg`: per-instance mask
142
+ * coefficients times the prototype masks), never assumed per family.
143
+ */
144
+ export declare const MASK_EMITTING_POSTPROCESSORS: readonly PostprocessorType[];
145
+ /**
146
+ * The mask supplies a root declares from its decode: `segmentation` when the
147
+ * postprocessor emits a mask per detection, nothing otherwise.
148
+ */
149
+ export declare function deriveMaskSupplies(postprocessor: PostprocessorType | undefined): readonly RootStepSupply[];
123
150
  /** What a step definition contributes when a model entry carries no labels/classMap of its own. */
124
151
  export interface RootSupplyStepDefaults {
125
152
  readonly labels: readonly string[];
@@ -131,7 +158,7 @@ export interface RootSupplyStepDefaults {
131
158
  * labelmap); a row without one — a built-in entry, or a custom row registered
132
159
  * before the field existed — is derived here, on read, from the same inputs.
133
160
  */
134
- export declare function rootSuppliesOf(entry: Pick<ModelCatalogEntry, 'labels' | 'classMap' | 'suppliesSteps' | 'inputSize'> | undefined, stepDefaults: RootSupplyStepDefaults): readonly RootStepSupply[];
161
+ export declare function rootSuppliesOf(entry: Pick<ModelCatalogEntry, 'labels' | 'classMap' | 'suppliesSteps' | 'inputSize' | 'postprocessor'> | undefined, stepDefaults: RootSupplyStepDefaults): readonly RootStepSupply[];
135
162
  /** The supply a root declares for one step, if any. */
136
163
  export declare function supplyFor(supplies: readonly RootStepSupply[] | undefined, stepId: string): RootStepSupply | undefined;
137
164
  /**
@@ -196,7 +223,7 @@ export interface SupplyBox {
196
223
  * — the box then belongs to nobody and makes nothing.
197
224
  */
198
225
  export declare function containingParentIndex(child: SupplyBox, parents: readonly SupplyBox[]): number;
199
- /** One short phrase per supply — `animals 6/8`, `plates`. */
226
+ /** One short phrase per supply — `animals 6/8`, `plates`, `masks`. */
200
227
  export declare function describeRootSupply(supply: RootStepSupply): string;
201
- /** `animals 6/8 · vehicles 5/8 · plates · faces` — empty string for none. */
228
+ /** `animals 6/8 · vehicles 5/8 · plates · faces · masks` — empty string for none. */
202
229
  export declare function describeRootSupplies(supplies: readonly RootStepSupply[] | undefined): string;
package/dist/index.d.ts CHANGED
@@ -152,8 +152,8 @@ export * from './device-extension/index.js';
152
152
  export * from './composition/index.js';
153
153
  export { APPLE_SA_TO_MACRO, AUDIO_MACRO_LABELS, getAudioMacroClassIds, mapAudioLabelToMacro, YAMNET_TO_MACRO, } from './catalogs/audio-classmap.js';
154
154
  export { COCO_80_LABELS, COCO_TO_MACRO, DETECTION_MACRO_CLASSES, isDetectionMacroClass, MACRO_LABELS, } from './catalogs/coco-classmap.js';
155
- export { buildFrigateClassMap, type ClassMapMacroTarget, FRIGATE_PLUS_TO_MACRO, FRIGATE_PLUS_UNMAPPED_LABELS, type FrigateLabelFields, frigateLabelFields, } from './catalogs/frigate-plus-classmap.js';
156
- export { allowedSuppliedEffect, containingParentIndex, CROP_SUPPLY_SOURCES, CROP_SUPPLY_STEP_IDS, type CropSupplySource, type CropSupplyStepId, deriveRootSupplies, describeRootSupplies, describeRootSupply, isLabelSupplyStepId, isRootSuppliableStepId, LABEL_SUPPLY_MACRO, LABEL_SUPPLY_STEP_IDS, LABEL_SUPPLY_VOCABULARIES, type LabelSupplyStepId, LINKED_LABEL_STEP_PREFIX, linkedLabelStepId, linkedStepOf, readUseRootModel, resolveRootSupply, ROOT_CHILD_CONTAINMENT_MIN, ROOT_SUPPLIABLE_STEP_IDS, rootSuppliesOf, rootSupplyServes, type RootSuppliableStepId, type RootSupplyInactiveReason, type RootSupplyState, type RootSupplyStepDefaults, type SupplyBox, type SupplyClassMap, supplyFor, USE_ROOT_MODEL_DEFAULTS, USE_ROOT_MODEL_SETTING_KEY, } from './catalogs/root-model-supply.js';
155
+ export { buildFrigateClassMap, type ClassMapMacroTarget, FRIGATE_PLUS_CLASS_FLOORS, FRIGATE_PLUS_TO_MACRO, FRIGATE_PLUS_UNMAPPED_LABELS, FRIGATE_STOCK_CLASS_FLOORS, frigateDefaultClassFloors, type FrigateLabelFields, frigateLabelFields, } from './catalogs/frigate-plus-classmap.js';
156
+ export { allowedSuppliedEffect, containingParentIndex, CROP_SUPPLY_SOURCES, CROP_SUPPLY_STEP_IDS, type CropSupplySource, type CropSupplyStepId, deriveMaskSupplies, deriveRootSupplies, describeRootSupplies, describeRootSupply, isLabelSupplyStepId, isRootSuppliableStepId, LABEL_SUPPLY_MACRO, LABEL_SUPPLY_STEP_IDS, LABEL_SUPPLY_VOCABULARIES, type LabelSupplyStepId, LINKED_LABEL_STEP_PREFIX, linkedLabelStepId, MASK_EMITTING_POSTPROCESSORS, MASK_SUPPLY_STEP_IDS, type MaskSupplyStepId, linkedStepOf, readUseRootModel, resolveRootSupply, ROOT_CHILD_CONTAINMENT_MIN, ROOT_SUPPLIABLE_STEP_IDS, rootSuppliesOf, rootSupplyServes, type RootSuppliableStepId, type RootSupplyInactiveReason, type RootSupplyState, type RootSupplyStepDefaults, type SupplyBox, type SupplyClassMap, supplyFor, USE_ROOT_MODEL_DEFAULTS, USE_ROOT_MODEL_SETTING_KEY, } from './catalogs/root-model-supply.js';
157
157
  export { DEVICE_STATE_READERS, readDeviceStateFrom, stateVocabularyFor, } from './catalogs/device-state-vocabulary.js';
158
158
  export { colorForKind, DEFAULT_EVENT_COLOR, EVENT_TAXONOMY, type EventTaxonomyCategory, type EventTaxonomyEntry, type EventTaxonomyLevel, getTaxonomyEntry, subKindsOf, TAXONOMY_COLORS, } from './catalogs/event-taxonomy.js';
159
159
  export { buildNcTaxonomy, NC_TAXONOMY, type NcTaxonomy, type NcTaxonomyEntry, NcTaxonomyEntrySchema, NcTaxonomySchema, } from './catalogs/nc-taxonomy.js';
@@ -267,6 +267,7 @@ export { hubMotionNativeProvider, readHubMotionDetected, readHubMotionStatus, }
267
267
  export { type ProviderMotionData, ProviderMotionDataSchema, providerMotionEvent, } from './pipeline/provider-motion.js';
268
268
  export { type FormatRunnableModel, stepModelRunsOnFormat, } from './pipeline/step-format-runnable.js';
269
269
  export { isRemovedModelId, REMOVED_MODEL_IDS } from './pipeline/removed-model-ids.js';
270
+ export { applyModelBoundSettings, clearModelBoundOverrides, clearModelBoundSetting, hasModelBoundOverrides, type InapplicableModelBoundOverride, modelBindingKey, type ModelBoundSettingsBag, type ModelBoundSettingSource, type ModelBoundSettingState, resolveModelBoundSetting, writeModelBoundSetting, } from './pipeline/model-bound-settings.js';
270
271
  export { deriveRootFaceRefineRect, ROOT_FACE_REFINE_INPUT_PX, ROOT_FACE_REFINE_SCALE, } from './pipeline/root-face-crop.js';
271
272
  export { DEFAULT_DETAIL_CROP_CONVENTION, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, type DetailCropConvention, DetailCropConventionSchema, type DetailCropRect, deriveDetailCropRect, FULL_IMAGE_BBOX, type HydratedSettingsSection, type HydratedSettingsView, pickDetailCropConvention, readDetailCropConvention, } from './pipeline/detail-crop.js';
272
273
  export { DEFAULT_NATIVE_LEASE_SETTINGS, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_HOLD_FIELD, NATIVE_LEASE_HOLD_KEY, NATIVE_LEASE_SCENE_BUDGET_FIELD, NATIVE_LEASE_SCENE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, type NativeLeaseAdmission, NativeLeaseAdmissionSchema, type NativeLeaseKnob, type NativeLeaseNumberKnob, type NativeLeaseSettings, type NativeLeaseSettingsOverride, NativeLeaseSettingsSchema, pickNativeLeaseOverride, readNativeLeaseOverride, } from './pipeline/native-lease.js';