@vizij/node-graph-authoring 0.0.4 → 0.0.5

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.
package/dist/index.d.ts CHANGED
@@ -1,40 +1,11 @@
1
- import { NodeType, GraphSpec } from '@vizij/node-graph-wasm';
2
- import { RigBindingDefinition, RigBindingSlot, BindingValueType, AnimatableComponent, StandardRigInput, RemapSettings, AnimatableValue } from '@vizij/utils';
1
+ import { GraphSpec, NodeType } from '@vizij/node-graph-wasm';
2
+ import { RigBindingDefinition, RigBindingSlot, BindingValueType, AnimatableComponent, StandardRigInput, RemapSettings, AnimatableValue, RigBindingMetadata } from '@vizij/utils';
3
3
  export { BindingValueType } from '@vizij/utils';
4
4
 
5
- type BindingOperatorType = "spring" | "damp" | "slew";
6
- interface BindingOperatorState {
7
- type: BindingOperatorType;
8
- enabled: boolean;
9
- params: Record<string, number>;
10
- }
11
- interface BindingOperatorParamDefinition {
12
- id: string;
13
- label: string;
14
- doc?: string;
15
- min?: number;
16
- max?: number;
17
- defaultValue: number;
18
- }
19
- interface BindingOperatorDefinition {
20
- type: BindingOperatorType;
21
- nodeType: NodeType;
22
- label: string;
23
- description?: string;
24
- inputs: string[];
25
- params: BindingOperatorParamDefinition[];
26
- }
27
- declare function getBindingOperatorDefinition(type: BindingOperatorType): BindingOperatorDefinition;
28
- declare const bindingOperatorDefinitions: BindingOperatorDefinition[];
29
- declare function createDefaultOperatorSettings(type: BindingOperatorType): BindingOperatorState;
30
- declare function ensureOperatorParams(operator: BindingOperatorState): BindingOperatorState;
31
- declare const bindingOperatorTypes: readonly BindingOperatorType[];
32
-
33
5
  type AnimatableBindingSlot = RigBindingSlot;
34
6
  interface AnimatableBinding extends RigBindingDefinition {
35
7
  targetId: string;
36
8
  slots: AnimatableBindingSlot[];
37
- operators?: BindingOperator[];
38
9
  }
39
10
  interface BindingTarget {
40
11
  id: string;
@@ -52,7 +23,6 @@ type InputBindingMap = Record<string, AnimatableBinding>;
52
23
  type StandardInputValues = Record<string, number>;
53
24
  declare const PRIMARY_SLOT_ID = "s1";
54
25
  declare const PRIMARY_SLOT_ALIAS = "s1";
55
- type BindingOperator = BindingOperatorState;
56
26
  declare function createDefaultRemap(target: BindingTarget): RemapSettings;
57
27
  declare function createDefaultBindings(components: BindingTarget[]): BindingMap;
58
28
  declare function createDefaultBinding(component: BindingTarget): AnimatableBinding;
@@ -63,8 +33,7 @@ declare function getPrimaryBindingSlot(binding: AnimatableBinding): AnimatableBi
63
33
  declare function addBindingSlot(binding: AnimatableBinding, target: BindingTarget): AnimatableBinding;
64
34
  declare function removeBindingSlot(binding: AnimatableBinding, target: BindingTarget, slotId: string): AnimatableBinding;
65
35
  declare function updateBindingSlotAlias(binding: AnimatableBinding, target: BindingTarget, slotId: string, nextAlias: string): AnimatableBinding;
66
- declare function setBindingOperatorEnabled(binding: AnimatableBinding, type: BindingOperatorType, enabled: boolean): AnimatableBinding;
67
- declare function updateBindingOperatorParam(binding: AnimatableBinding, type: BindingOperatorType, paramId: string, value: number): AnimatableBinding;
36
+ declare function updateBindingSlotValueType(binding: AnimatableBinding, target: BindingTarget, slotId: string, nextValueType: BindingValueType): AnimatableBinding;
68
37
  declare function updateBindingExpression(binding: AnimatableBinding, target: BindingTarget, expression: string): AnimatableBinding;
69
38
  declare function updateBindingSlotRemap(binding: AnimatableBinding, target: BindingTarget, slotId: string, field: keyof RemapSettings, value: number): AnimatableBinding;
70
39
  declare function updateBindingWithInput(binding: AnimatableBinding, target: BindingTarget, input: StandardRigInput | undefined, slotId?: string): AnimatableBinding;
@@ -72,8 +41,110 @@ declare function remapValue(value: number, remap: RemapSettings): number;
72
41
  declare function reconcileBindings(previous: BindingMap, components: BindingTarget[]): BindingMap;
73
42
  declare function bindingToDefinition(binding: AnimatableBinding): RigBindingDefinition;
74
43
  declare function bindingFromDefinition(target: BindingTarget, definition: RigBindingDefinition | null | undefined): AnimatableBinding;
44
+ declare function buildPiecewiseRemapExpression(alias: string, remap: RemapSettings): string;
45
+ declare function buildDefaultSlotExpression(alias: string, inputId: string | null, remap: RemapSettings): string;
46
+ declare function buildCanonicalBindingExpression(binding: AnimatableBinding): string;
47
+
48
+ type IrValueType = "scalar" | "vector" | "boolean" | "color" | "quaternion" | "transform" | "unknown";
49
+ interface IrPortRef {
50
+ nodeId: string;
51
+ portId?: string;
52
+ component?: string;
53
+ }
54
+ interface IrNodeInput {
55
+ id: string;
56
+ valueType: IrValueType;
57
+ cardinality?: "single" | "variadic";
58
+ required?: boolean;
59
+ }
60
+ interface IrNodeOutput {
61
+ id: string;
62
+ valueType: IrValueType;
63
+ cardinality?: "single" | "variadic";
64
+ }
65
+ interface IrNode {
66
+ id: string;
67
+ type: string;
68
+ category?: string;
69
+ label?: string;
70
+ description?: string;
71
+ params?: Record<string, unknown>;
72
+ inputDefaults?: Record<string, unknown>;
73
+ metadata?: Record<string, unknown>;
74
+ }
75
+ interface IrEdge {
76
+ id?: string;
77
+ from: IrPortRef;
78
+ to: IrPortRef;
79
+ metadata?: Record<string, unknown>;
80
+ }
81
+ interface IrConstant {
82
+ id: string;
83
+ value: number;
84
+ valueType: IrValueType;
85
+ metadata?: Record<string, unknown>;
86
+ }
87
+ interface IrIssue {
88
+ id: string;
89
+ severity: "error" | "warning" | "info";
90
+ message: string;
91
+ targetId?: string;
92
+ tags?: string[];
93
+ details?: Record<string, unknown>;
94
+ }
95
+ interface IrBindingSummary {
96
+ targetId: string;
97
+ animatableId: string;
98
+ component?: string;
99
+ slotId: string;
100
+ slotAlias: string;
101
+ inputId: string | null;
102
+ remap: Record<string, unknown>;
103
+ expression: string;
104
+ valueType: "scalar" | "vector";
105
+ nodeId: string;
106
+ expressionNodeId: string;
107
+ issues?: string[];
108
+ }
109
+ interface IrGraphSummary {
110
+ faceId: string;
111
+ inputs: string[];
112
+ outputs: string[];
113
+ bindings: IrBindingSummary[];
114
+ }
115
+ interface IrGraphMetadata {
116
+ source: string;
117
+ registryVersion?: string;
118
+ generatedAt?: string;
119
+ annotations?: Record<string, unknown>;
120
+ }
121
+ interface IrLegacyArtifacts {
122
+ spec?: GraphSpec;
123
+ }
124
+ interface IrGraph {
125
+ id: string;
126
+ faceId: string;
127
+ nodes: IrNode[];
128
+ edges: IrEdge[];
129
+ constants: IrConstant[];
130
+ issues: IrIssue[];
131
+ summary: IrGraphSummary;
132
+ metadata: IrGraphMetadata;
133
+ legacy?: IrLegacyArtifacts;
134
+ }
135
+ interface IrCompileOptions {
136
+ preferLegacySpec?: boolean;
137
+ }
138
+ interface IrCompileResult {
139
+ spec: GraphSpec;
140
+ issues: IrIssue[];
141
+ }
75
142
 
76
143
  type VectorComponent = "x" | "y" | "z" | "r" | "g" | "b";
144
+ interface InputExportMetadata {
145
+ source?: "auto" | "custom" | "preset";
146
+ root?: string;
147
+ }
77
148
  interface BuildGraphOptions {
78
149
  faceId: string;
79
150
  animatables: Record<string, AnimatableValue>;
@@ -81,6 +152,7 @@ interface BuildGraphOptions {
81
152
  bindings: BindingMap;
82
153
  inputsById: Map<string, StandardRigInput>;
83
154
  inputBindings: InputBindingMap;
155
+ inputMetadata?: Map<string, InputExportMetadata>;
84
156
  }
85
157
  interface GraphBindingSummary {
86
158
  targetId: string;
@@ -92,7 +164,10 @@ interface GraphBindingSummary {
92
164
  remap: RemapSettings;
93
165
  expression: string;
94
166
  valueType: BindingValueType;
167
+ nodeId: string;
168
+ expressionNodeId: string;
95
169
  issues?: string[];
170
+ metadata?: RigBindingMetadata;
96
171
  }
97
172
  interface BuildGraphResult {
98
173
  spec: GraphSpec;
@@ -106,12 +181,19 @@ interface BuildGraphResult {
106
181
  byTarget: Record<string, string[]>;
107
182
  fatal: string[];
108
183
  };
184
+ ir?: {
185
+ graph: IrGraph;
186
+ compile: (options?: IrCompileOptions) => IrCompileResult;
187
+ };
109
188
  }
110
- declare function buildRigGraphSpec({ faceId, animatables, components, bindings, inputsById, inputBindings, }: BuildGraphOptions): BuildGraphResult;
189
+ declare function buildRigGraphSpec({ faceId, animatables, components, bindings, inputsById, inputBindings, inputMetadata, }: BuildGraphOptions): BuildGraphResult;
111
190
 
112
191
  type ControlExpressionNode = {
113
192
  type: "Literal";
114
193
  value: number;
194
+ } | {
195
+ type: "VectorLiteral";
196
+ values: number[];
115
197
  } | {
116
198
  type: "Reference";
117
199
  name: string;
@@ -143,4 +225,273 @@ declare function parseControlExpression(expression: string): ExpressionParseResu
143
225
  declare function collectExpressionReferences(node: ControlExpressionNode | null, target?: Set<string>): Set<string>;
144
226
  declare function mapExpression(node: ControlExpressionNode, visit: (node: ControlExpressionNode) => void): void;
145
227
 
146
- export { type AnimatableBinding, type AnimatableBindingSlot, type BindingMap, type BindingOperator, type BindingOperatorDefinition, type BindingOperatorParamDefinition, type BindingOperatorState, type BindingOperatorType, type BindingTarget, type BuildGraphResult, type ControlExpressionNode, type ExpressionParseError, type ExpressionParseResult, type GraphBindingSummary, type InputBindingMap, PRIMARY_SLOT_ALIAS, PRIMARY_SLOT_ID, type StandardInputValues, addBindingSlot, bindingFromDefinition, bindingOperatorDefinitions, bindingOperatorTypes, bindingTargetFromComponent, bindingTargetFromInput, bindingToDefinition, buildRigGraphSpec, collectExpressionReferences, createDefaultBinding, createDefaultBindings, createDefaultInputValues, createDefaultOperatorSettings, createDefaultParentBinding, createDefaultRemap, ensureBindingStructure, ensureOperatorParams, getBindingOperatorDefinition, getPrimaryBindingSlot, mapExpression, parseControlExpression, reconcileBindings, remapValue, removeBindingSlot, setBindingOperatorEnabled, updateBindingExpression, updateBindingOperatorParam, updateBindingSlotAlias, updateBindingSlotRemap, updateBindingWithInput };
228
+ type ExpressionVariableKind = "slot" | "reserved";
229
+ interface SlotVariableMetadata {
230
+ slotId: string;
231
+ slotAlias: string;
232
+ inputId: string | null;
233
+ targetId: string;
234
+ animatableId: string;
235
+ component?: string;
236
+ valueType: BindingValueType;
237
+ remap?: RemapSettings;
238
+ autoRemap?: boolean;
239
+ }
240
+ interface ReservedVariableMetadata {
241
+ targetId?: string;
242
+ animatableId?: string;
243
+ component?: string;
244
+ }
245
+ interface ExpressionVariableEntry {
246
+ name: string;
247
+ kind: ExpressionVariableKind;
248
+ nodeId: string | null;
249
+ metadata?: SlotVariableMetadata | ReservedVariableMetadata;
250
+ description?: string;
251
+ }
252
+ interface RegisterSlotVariableOptions extends SlotVariableMetadata {
253
+ name: string;
254
+ nodeId: string;
255
+ }
256
+ interface RegisterReservedVariableOptions extends ReservedVariableMetadata {
257
+ name: string;
258
+ nodeId: string | null;
259
+ description?: string;
260
+ }
261
+ interface ExpressionVariableMissing {
262
+ name: string;
263
+ reason: "unknown" | "unresolved";
264
+ entry?: ExpressionVariableEntry;
265
+ }
266
+ interface ExpressionVariableTable {
267
+ registerSlotVariable(options: RegisterSlotVariableOptions): void;
268
+ registerReservedVariable(options: RegisterReservedVariableOptions): void;
269
+ resolve(name: string): ExpressionVariableEntry | null;
270
+ resolveNodeId(name: string): string | null;
271
+ entries(): ExpressionVariableEntry[];
272
+ firstNodeId(): string | null;
273
+ missing(names: Iterable<string>): ExpressionVariableMissing[];
274
+ }
275
+ declare function createExpressionVariableTable(): ExpressionVariableTable;
276
+
277
+ type ExpressionFunctionCategory = "math" | "logic" | "time" | "utility" | "vector";
278
+ type ExpressionValueType = "scalar" | "vector" | "boolean" | "any";
279
+ interface OrderedInputSpec {
280
+ id: string;
281
+ optional: boolean;
282
+ valueType: ExpressionValueType;
283
+ }
284
+ interface VariadicInputSpec {
285
+ id: string;
286
+ min: number;
287
+ max: number | null;
288
+ valueType: ExpressionValueType;
289
+ }
290
+ interface ParamArgumentSpec {
291
+ id: string;
292
+ label: string;
293
+ doc?: string;
294
+ optional: boolean;
295
+ valueType: ExpressionValueType;
296
+ min?: number;
297
+ max?: number;
298
+ }
299
+ interface ScalarFunctionDefinition {
300
+ nodeType: NodeType;
301
+ inputs: OrderedInputSpec[];
302
+ variadic: VariadicInputSpec | null;
303
+ params: ParamArgumentSpec[];
304
+ minArgs: number;
305
+ maxArgs: number | null;
306
+ resultValueType: ExpressionValueType;
307
+ }
308
+ interface ScalarFunctionVocabularyEntry {
309
+ name: string;
310
+ aliases: string[];
311
+ nodeType: NodeType;
312
+ category: ExpressionFunctionCategory;
313
+ description?: string;
314
+ }
315
+ declare const SCALAR_FUNCTIONS: Map<string, ScalarFunctionDefinition>;
316
+ declare const SCALAR_FUNCTION_VOCABULARY: ScalarFunctionVocabularyEntry[];
317
+
318
+ type ReservedExpressionScope = "binding" | "graph";
319
+ interface ReservedExpressionVariableDefinition {
320
+ name: string;
321
+ description: string;
322
+ scope: ReservedExpressionScope;
323
+ defaultValueType?: BindingValueType;
324
+ available?: boolean;
325
+ }
326
+ declare const RESERVED_EXPRESSION_VARIABLES: ReservedExpressionVariableDefinition[];
327
+ declare const EXPRESSION_FUNCTION_VOCABULARY: ScalarFunctionVocabularyEntry[];
328
+
329
+ interface IrGraphBuilderOptions {
330
+ faceId: string;
331
+ source?: string;
332
+ registryVersion?: string;
333
+ generatedAt?: string;
334
+ annotations?: Record<string, unknown>;
335
+ }
336
+ interface IrGraphBuilder {
337
+ addNode(node: IrNode): IrNode;
338
+ addEdge(edge: IrEdge): IrEdge;
339
+ addConstant(constant: IrConstant): IrConstant;
340
+ addIssue(issue: IrIssue): IrIssue;
341
+ setSummary(summary: IrGraphSummary): void;
342
+ updateMetadata(metadata: Partial<IrGraphMetadata>): void;
343
+ build(): IrGraph;
344
+ }
345
+ declare function createIrGraphBuilder(options: IrGraphBuilderOptions): IrGraphBuilder;
346
+ interface LegacyIrGraphPayload {
347
+ faceId: string;
348
+ summary: IrGraphSummary;
349
+ issues?: IrIssue[];
350
+ registryVersion?: string;
351
+ source?: string;
352
+ annotations?: Record<string, unknown>;
353
+ spec: GraphSpec;
354
+ }
355
+ declare function createLegacyIrGraph(payload: LegacyIrGraphPayload): IrGraph;
356
+ declare function toIrBindingSummary(summaries: {
357
+ targetId: string;
358
+ animatableId: string;
359
+ component?: string;
360
+ slotId: string;
361
+ slotAlias: string;
362
+ inputId: string | null;
363
+ remap: Record<string, unknown>;
364
+ expression: string;
365
+ valueType: "scalar" | "vector";
366
+ issues?: string[];
367
+ nodeId: string;
368
+ expressionNodeId: string;
369
+ }[]): IrBindingSummary[];
370
+
371
+ /**
372
+ * Compile an IR graph into a runtime-ready GraphSpec. The current implementation
373
+ * falls back to any legacy GraphSpec that was attached during migration,
374
+ * allowing the IR surface to land incrementally while the dedicated compiler
375
+ * is built.
376
+ */
377
+ declare function compileIrGraph(graph: IrGraph, options?: IrCompileOptions): IrCompileResult;
378
+
379
+ declare const MACHINE_REPORT_VERSION = 1;
380
+ interface MachineReport {
381
+ reportVersion: number;
382
+ faceId: string;
383
+ summary: MachineSummary;
384
+ issues: MachineIssues;
385
+ irGraph?: NormalizedIrGraph;
386
+ }
387
+ interface MachineSummary {
388
+ faceId: string;
389
+ inputs: string[];
390
+ outputs: string[];
391
+ bindings: MachineBindingSummary[];
392
+ }
393
+ interface MachineBindingSummary {
394
+ targetId: string;
395
+ animatableId: string;
396
+ component?: string;
397
+ slotId: string;
398
+ slotAlias: string;
399
+ inputId: string | null;
400
+ remap: RemapSettings;
401
+ expression: string;
402
+ valueType: "scalar" | "vector";
403
+ nodeId: string;
404
+ expressionNodeId: string;
405
+ issues?: string[];
406
+ metadata?: RigBindingMetadata;
407
+ }
408
+ interface MachineIssues {
409
+ fatal: string[];
410
+ byTarget: Record<string, string[]>;
411
+ }
412
+ interface NormalizedIrGraph {
413
+ id: string;
414
+ faceId: string;
415
+ nodes: NormalizedIrNode[];
416
+ edges: NormalizedIrEdge[];
417
+ constants: NormalizedIrConstant[];
418
+ issues: NormalizedIrIssue[];
419
+ summary: NormalizedIrGraphSummary;
420
+ metadata: NormalizedIrGraphMetadata;
421
+ }
422
+ interface NormalizedIrNode extends IrNode {
423
+ annotations?: NodeInspectionAnnotations;
424
+ }
425
+ type NormalizedIrEdge = IrEdge;
426
+ type NormalizedIrConstant = IrConstant;
427
+ type NormalizedIrIssue = IrIssue & {
428
+ tags?: string[];
429
+ };
430
+ interface NormalizedIrGraphSummary extends IrGraphSummary {
431
+ bindings: NormalizedIrBindingSummary[];
432
+ }
433
+ type NormalizedIrBindingSummary = IrBindingSummary & {
434
+ issues?: string[];
435
+ };
436
+ interface NormalizedIrGraphMetadata {
437
+ source: string;
438
+ registryVersion?: string;
439
+ annotations?: Record<string, unknown>;
440
+ }
441
+ interface NodeInspectionAnnotations {
442
+ registry?: NormalizedRegistrySignature;
443
+ }
444
+ interface NormalizedRegistrySignature {
445
+ typeId: NodeType;
446
+ name: string;
447
+ category: string;
448
+ doc?: string;
449
+ inputs: NormalizedRegistryPortSpec[];
450
+ variadicInputs?: NormalizedRegistryVariadicSpec;
451
+ outputs: NormalizedRegistryPortSpec[];
452
+ variadicOutputs?: NormalizedRegistryVariadicSpec;
453
+ params: NormalizedRegistryParamSpec[];
454
+ }
455
+ interface NormalizedRegistryPortSpec {
456
+ id: string;
457
+ label: string;
458
+ doc?: string;
459
+ optional?: boolean;
460
+ type: string;
461
+ }
462
+ interface NormalizedRegistryVariadicSpec {
463
+ id: string;
464
+ label: string;
465
+ doc?: string;
466
+ type: string;
467
+ min: number;
468
+ max?: number;
469
+ }
470
+ interface NormalizedRegistryParamSpec {
471
+ id: string;
472
+ label: string;
473
+ doc?: string;
474
+ type: string;
475
+ defaultValue?: unknown;
476
+ min?: number;
477
+ max?: number;
478
+ }
479
+ type DiffKind = "mismatch" | "missing" | "unexpected";
480
+ interface MachineDiffEntry {
481
+ kind: DiffKind;
482
+ path: string;
483
+ actual?: unknown;
484
+ expected?: unknown;
485
+ }
486
+ interface MachineDiffResult {
487
+ equal: boolean;
488
+ differences: MachineDiffEntry[];
489
+ limitReached: boolean;
490
+ }
491
+ interface MachineDiffOptions {
492
+ limit?: number;
493
+ }
494
+ declare function buildMachineReport(result: BuildGraphResult): MachineReport;
495
+ declare function diffMachineReports(actual: MachineReport, expected: MachineReport, options?: MachineDiffOptions): MachineDiffResult;
496
+
497
+ export { type AnimatableBinding, type AnimatableBindingSlot, type BindingMap, type BindingTarget, type BuildGraphOptions, type BuildGraphResult, type ControlExpressionNode, type DiffKind, EXPRESSION_FUNCTION_VOCABULARY, type ExpressionFunctionCategory, type ExpressionParseError, type ExpressionParseResult, type ExpressionValueType, type ExpressionVariableEntry, type ExpressionVariableKind, type ExpressionVariableMissing, type ExpressionVariableTable, type GraphBindingSummary, type InputBindingMap, type IrBindingSummary, type IrCompileOptions, type IrCompileResult, type IrConstant, type IrEdge, type IrGraph, type IrGraphBuilder, type IrGraphBuilderOptions, type IrGraphMetadata, type IrGraphSummary, type IrIssue, type IrLegacyArtifacts, type IrNode, type IrNodeInput, type IrNodeOutput, type IrPortRef, type IrValueType, type LegacyIrGraphPayload, MACHINE_REPORT_VERSION, type MachineBindingSummary, type MachineDiffEntry, type MachineDiffOptions, type MachineDiffResult, type MachineIssues, type MachineReport, type MachineSummary, type NodeInspectionAnnotations, type NormalizedIrBindingSummary, type NormalizedIrConstant, type NormalizedIrEdge, type NormalizedIrGraph, type NormalizedIrGraphMetadata, type NormalizedIrGraphSummary, type NormalizedIrIssue, type NormalizedIrNode, type NormalizedRegistryParamSpec, type NormalizedRegistryPortSpec, type NormalizedRegistrySignature, type NormalizedRegistryVariadicSpec, PRIMARY_SLOT_ALIAS, PRIMARY_SLOT_ID, RESERVED_EXPRESSION_VARIABLES, type RegisterReservedVariableOptions, type RegisterSlotVariableOptions, type ReservedExpressionScope, type ReservedExpressionVariableDefinition, type ReservedVariableMetadata, SCALAR_FUNCTIONS, SCALAR_FUNCTION_VOCABULARY, type ScalarFunctionDefinition, type ScalarFunctionVocabularyEntry, type SlotVariableMetadata, type StandardInputValues, addBindingSlot, bindingFromDefinition, bindingTargetFromComponent, bindingTargetFromInput, bindingToDefinition, buildCanonicalBindingExpression, buildDefaultSlotExpression, buildMachineReport, buildPiecewiseRemapExpression, buildRigGraphSpec, collectExpressionReferences, compileIrGraph, createDefaultBinding, createDefaultBindings, createDefaultInputValues, createDefaultParentBinding, createDefaultRemap, createExpressionVariableTable, createIrGraphBuilder, createLegacyIrGraph, diffMachineReports, ensureBindingStructure, getPrimaryBindingSlot, mapExpression, parseControlExpression, reconcileBindings, remapValue, removeBindingSlot, toIrBindingSummary, updateBindingExpression, updateBindingSlotAlias, updateBindingSlotRemap, updateBindingSlotValueType, updateBindingWithInput };