@svgsketch/core 6.0.0 → 6.2.0

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
@@ -716,6 +716,27 @@ interface AnimatablePropertyDescriptor {
716
716
  /** Logical category for UI grouping. */
717
717
  category?: 'position' | 'size' | 'transform' | 'style' | 'path' | 'pathNodes';
718
718
  }
719
+ /**
720
+ * Track properties whose keyframe values are SVG path data strings,
721
+ * interpolated per SVG 2 §9.3.12 ("Interpolating path data"): two values
722
+ * animate smoothly only when their command lists share one structure,
723
+ * otherwise the animation is discrete.
724
+ *
725
+ * - `pathMorph`: the `d` of a path shape.
726
+ * - `textPathMorph`: the geometry a text's `<textPath>` follows - the text's
727
+ * private `<path d>` or, for the SVG 2 inline form, `<textPath path>`.
728
+ */
729
+ declare const PATH_DATA_TRACK_PROPERTIES: ReadonlySet<string>;
730
+ /** Whether a track's keyframe values are SVG path data strings. */
731
+ declare function isPathDataTrackProperty(property: string): boolean;
732
+ /**
733
+ * Whole-geometry tracks authored by capturing the shape on the canvas: the
734
+ * path-data tracks plus `polylinePoints`. Hosts unlock vertex editing in
735
+ * animation mode for these and offer "capture current shape" per keyframe.
736
+ */
737
+ declare const GEOMETRY_TRACK_PROPERTIES: ReadonlySet<string>;
738
+ /** Whether a track stores whole captured geometry rather than a scalar channel. */
739
+ declare function isGeometryTrackProperty(property: string): boolean;
719
740
 
720
741
  /**
721
742
  * @svgsketch/core — Enums used by the document format.
@@ -6196,6 +6217,18 @@ interface SceneTreeReplayHost {
6196
6217
  */
6197
6218
  declare function replaySceneTreePlacements(sceneTree: readonly SerializedSceneNodePlacement[], host: SceneTreeReplayHost): void;
6198
6219
 
6220
+ /**
6221
+ * The root font size a document is resolved against when nothing authors one.
6222
+ *
6223
+ * CSS Values 4 gives `rem` the root element's computed font size, and SVG 2
6224
+ * inherits that. A document carries no browser, so the initial value is the
6225
+ * only answer available to a model-side resolver: reading the host page's
6226
+ * root font size instead would make the same authored `2em` mean different
6227
+ * geometry for a reader who has raised their browser's default text size.
6228
+ * Every path that resolves authored lengths shares this, so a length resolved
6229
+ * at import and the same length re-resolved during an edit agree.
6230
+ */
6231
+ declare const INITIAL_ROOT_FONT_SIZE = 16;
6199
6232
  interface SvgLengthContext {
6200
6233
  readonly percentBasis?: number;
6201
6234
  readonly viewportWidth?: number;
@@ -7081,9 +7114,26 @@ interface SvgTextSpanTreeCandidate {
7081
7114
  readonly rotate?: readonly number[];
7082
7115
  readonly spans: readonly SvgTextSpanNodeCandidate[];
7083
7116
  }
7117
+ /**
7118
+ * A parked `<path>` that is the private geometry of exactly one text on a
7119
+ * path: the renderer-generated `text-path-*` definition an exported document
7120
+ * carries in `<defs>`, referenced by that text's `<textPath href>` and by
7121
+ * nothing else. The text bakes the geometry as its own inline points, so the
7122
+ * path is never promoted to a library definition, and an
7123
+ * `<animate attributeName="d">` it carries binds to the text as
7124
+ * `textPathMorph`.
7125
+ */
7126
+ interface SvgPrivateTextPathGeometry {
7127
+ readonly pathSourceNodeId: string;
7128
+ readonly textSourceNodeId: string;
7129
+ readonly textOccurrenceId: string;
7130
+ }
7084
7131
  interface SvgLeafGeometryPlan {
7085
7132
  readonly candidates: readonly SvgLeafGeometryCandidate[];
7086
7133
  candidate(occurrenceId: string): SvgLeafGeometryCandidate | null;
7134
+ /** Parked paths owned outright by one text on a path. */
7135
+ readonly privateTextPathGeometry: readonly SvgPrivateTextPathGeometry[];
7136
+ privateTextPathOwner(pathSourceNodeId: string): SvgPrivateTextPathGeometry | null;
7087
7137
  }
7088
7138
  /** Canonical address of one authored tspan inside a materialized text occurrence. */
7089
7139
  interface SvgTextSpanTarget {
@@ -8416,6 +8466,14 @@ interface PlanSvgSymbolUsesOptions {
8416
8466
  readonly entrypoint: IngressIntent;
8417
8467
  /** Definition-owned leaf products represented directly by the native model. */
8418
8468
  readonly nativeDefinitionSourceNodeIds?: ReadonlySet<string>;
8469
+ /**
8470
+ * Parked `<path>` elements that are the private geometry of exactly one
8471
+ * text on a path (the renderer-generated `text-path-*` definition, see
8472
+ * `planSvgLeafGeometry`). The owning text bakes that geometry as its own
8473
+ * inline points, so promoting the path to a library definition would make
8474
+ * the text a linked reference to a copy of itself.
8475
+ */
8476
+ readonly privateGeometrySourceNodeIds?: ReadonlySet<string>;
8419
8477
  }
8420
8478
  /**
8421
8479
  * Plan the representation of every SVG 2 section 5.5 use occurrence.
@@ -8537,6 +8595,18 @@ interface SvgAnimationTimelineProjectionHost {
8537
8595
  cssTransformContextForOccurrence?(occurrenceId: string, transformBox: string): CssTransformOriginContext | null;
8538
8596
  /** Addressable canonical definition content that has no native Shape product. */
8539
8597
  definitionTargetForOccurrence?(occurrenceId: string): SvgAnimationTimelineDefinitionTarget | null;
8598
+ /**
8599
+ * The text that owns a parked private text-path `<path>` occurrence (the
8600
+ * leaf-geometry ownership rule), with the path's authored `d` as the
8601
+ * animation base value. `<animate attributeName="d">` on that path binds to
8602
+ * the text as `textPathMorph`.
8603
+ */
8604
+ textPathGeometryTargetForOccurrence?(occurrenceId: string): {
8605
+ readonly binding: SvgAnimationTimelineShapeBinding;
8606
+ readonly baseData: string;
8607
+ } | null;
8608
+ /** Authored path data behind a text occurrence's `<textPath>` (inline `path` or the referenced `d`). */
8609
+ textPathAuthoredDataForOccurrence?(occurrenceId: string): string | null;
8540
8610
  /** Resolve one authored local fragment value to its canonical Shape identity. */
8541
8611
  shapeIdForLocalReference?(value: string): string | null;
8542
8612
  /** Authored sibling order for an animation element owned by `<defs>`. */
@@ -10903,6 +10973,15 @@ declare function patternTileSize(pattern: Omit<PatternFill, 'id' | 'sourceId' |
10903
10973
  * `isReusablePatternTile`).
10904
10974
  */
10905
10975
  declare function patternLibraryDefToCustomPatternDef(def: PatternLibraryDef): CustomPatternDef | null;
10976
+ /**
10977
+ * The reusable tile a pattern def paints with, as the flat view the editor's
10978
+ * pattern pickers speak.
10979
+ *
10980
+ * Resolves both halves of the question a picker asks: which def owns the tile
10981
+ * (see `patternTileOwner`) and how big that tile is once the chain's geometry
10982
+ * is merged, so an alias and the pattern it inherits from answer identically.
10983
+ */
10984
+ declare function resolvePatternTile(definitionOrId: PatternLibraryDef | string, library: readonly LibraryDef[]): CustomPatternDef | null;
10906
10985
 
10907
10986
  /**
10908
10987
  * What kind of string a payload slot holds.
@@ -11960,6 +12039,29 @@ declare function buildSvgDestinationIdentityIndex(snapshot: HistorySnapshot, opt
11960
12039
  /** Create one deterministic, request-idempotent allocator for one plan. */
11961
12040
  declare function createSvgDestinationIdAllocator(seed: SvgDestinationIdentityIndex): SvgDestinationIdAllocator;
11962
12041
 
12042
+ /**
12043
+ * Identity of the private path a text-on-path shape owns.
12044
+ *
12045
+ * A text in the default `defs-path` mode follows a `<path>` the renderer
12046
+ * generates for it and parks in the document `<defs>`; `<textPath href>`
12047
+ * points at that element by id. The spelling of that id is shared by
12048
+ * three parties that must never disagree:
12049
+ *
12050
+ * - the headless renderer, which emits the definition and the href;
12051
+ * - the destination-identity registry, which reserves the id in the
12052
+ * `shape-generated` channel so authored ids cannot collide with it;
12053
+ * - the SVG importer, which recognises a parked path carrying this
12054
+ * spelling (and referenced by exactly one `<textPath>`) as the text's
12055
+ * own inline geometry rather than a shared library definition, so an
12056
+ * exported document round-trips to the same inline text and its
12057
+ * `textPathMorph` animation stays on the text.
12058
+ */
12059
+ declare const TEXT_PATH_GENERATED_ID_PREFIX = "text-path-";
12060
+ /** The element id of the private path generated for a text-on-path shape. */
12061
+ declare function textPathGeneratedId(shapeId: string): string;
12062
+ /** Whether an element id carries the renderer-generated text-path spelling. */
12063
+ declare function isTextPathGeneratedId(id: string): boolean;
12064
+
11963
12065
  type GradientLibraryDef = LinearGradientLibraryDef | RadialGradientLibraryDef;
11964
12066
  type ResolvedLibraryGradient = LinearGradient | RadialGradient;
11965
12067
  /** True for an authored gradient-root attribute owned by `rootAttributes`. */
@@ -11974,6 +12076,58 @@ declare function isSafeGradientRootAttributeName(name: string): boolean;
11974
12076
  * chain. A circular chain is invalid and resolves to `null`.
11975
12077
  */
11976
12078
  declare function resolveGradientLibraryDef(definitionOrId: GradientLibraryDef | string, library: readonly LibraryDef[]): ResolvedLibraryGradient | null;
12079
+ /**
12080
+ * Apply an effective interaction value back to its local SVG definition.
12081
+ * Only changed declarations become local overrides; template edges, metadata,
12082
+ * untouched coordinate spellings, and inherited stops retain their authority.
12083
+ */
12084
+ declare function updateGradientLibraryDef(definition: GradientLibraryDef, edited: ResolvedLibraryGradient, library: readonly LibraryDef[]): GradientLibraryDef;
12085
+
12086
+ /** The SVG transform emitted by both library and inline gradient renderers. */
12087
+ declare function gradientTransformAttribute(gradient: Pick<LinearGradient, 'authoredGeometry' | 'gradientTransform'> & Pick<RadialGradientLibraryValue, 'r' | 'ry' | 'rotation' | 'cx' | 'cy'>): string | undefined;
12088
+ interface GradientGeometryContext extends SvgLengthContext {
12089
+ readonly bounds: {
12090
+ readonly x: number;
12091
+ readonly y: number;
12092
+ readonly width: number;
12093
+ readonly height: number;
12094
+ };
12095
+ readonly viewportWidth: number;
12096
+ readonly viewportHeight: number;
12097
+ }
12098
+ interface GradientSpace {
12099
+ /** SVG 2 14.2: bounding-box mapping (when applicable) times gradientTransform. */
12100
+ readonly gradientToUser: Affine2D;
12101
+ readonly userToGradient: Affine2D | null;
12102
+ readonly transform: Affine2D;
12103
+ }
12104
+ interface LinearGradientGeometry extends GradientSpace {
12105
+ readonly type: 'linear-gradient';
12106
+ readonly start: Point;
12107
+ readonly end: Point;
12108
+ }
12109
+ interface RadialGradientGeometry extends GradientSpace {
12110
+ readonly type: 'radial-gradient';
12111
+ readonly center: Point;
12112
+ readonly focus: Point;
12113
+ readonly r: number;
12114
+ readonly fr: number;
12115
+ readonly start: Point;
12116
+ readonly end: Point;
12117
+ }
12118
+ type GradientGeometry = LinearGradientGeometry | RadialGradientGeometry;
12119
+ /**
12120
+ * Resolve SVG gradient geometry for one referencing element, without changing
12121
+ * the definition. Percentages use its viewport (radius: normalized diagonal),
12122
+ * or the unit bounding box. Coordinates remain in gradient space so the same
12123
+ * affine and its inverse serve rendering, hit testing, and editing.
12124
+ * SVG 2 14.2.2/14.2.3 and 8.3/8.11.
12125
+ */
12126
+ declare function resolveGradientGeometry(gradient: LinearGradient | RadialGradient, context: GradientGeometryContext): GradientGeometry | null;
12127
+ /** The position of an offset on the selected SVG gradient vector, in user space. */
12128
+ declare function gradientStopPoint(geometry: GradientGeometry, offset: number): Point;
12129
+ /** Change SVG units without changing the paint mapping for this occurrence. */
12130
+ declare function convertGradientUnits<T extends LinearGradient | RadialGradient>(gradient: T, units: 'objectBoundingBox' | 'userSpaceOnUse', context: GradientGeometryContext): T;
11977
12131
 
11978
12132
  /** True for a non-executable pattern-root attribute not owned by a typed field. */
11979
12133
  declare function isSafePatternRootAttributeName(name: string): boolean;
@@ -12219,8 +12373,21 @@ type RenderDiagnosticSeverity = 'warning' | 'error';
12219
12373
  * - `reference-cycle`: a cyclic use instance is invalid and was not emitted.
12220
12374
  * - `unresolved-svg-viewport`: an auto-sized embedded viewport lacks the
12221
12375
  * parent geometry required by a decomposed transform pivot.
12222
- */
12223
- declare const RENDER_DIAGNOSTIC_CODES: readonly ["unsupported-shape-type", "unsupported-polygon-type", "unresolved-reference", "undeclarable-namespace-prefix", "unresolved-container-pivot", "unresolved-reference-pivot", "duplicate-shape-id", "reference-cycle", "unresolved-svg-viewport", "symbol-cycle", "unresolved-symbol-definition", "duplicate-library-id", "invalid-symbol-viewport", "unresolved-symbol-viewport", "unresolved-symbol-pivot", "unknown-symbol-variant", "ambiguous-symbol-override-target", "unresolved-symbol-override-target", "unexpandable-appearance-stack"];
12376
+ * - `inert-text-path-morph`: a text shape carries a `textPathMorph` track
12377
+ * but does not own the geometry its `<textPath>` follows (it links another
12378
+ * shape or definition, or is not on a path), so the track was not emitted.
12379
+ * - `inert-variant-transition-content`: an `instanceVariant` segment adds or
12380
+ * crossfades an inner shape, but the definition is a native-shape def whose
12381
+ * single root element cannot host siblings (SVG 2 §5.5), so that content
12382
+ * was not emitted. Property animations on the root still are.
12383
+ * - `unresolved-variant-transition-pivot`: a variant segment rotates an inner
12384
+ * shape whose center is not analytic (text, containers) and no measurement
12385
+ * host was supplied, so the pivot-following rotation was not emitted.
12386
+ * - `shared-variant-transition-gradient`: a variant segment animates a
12387
+ * gradient definition that more than one shape references, so the animation
12388
+ * is visible on every referent rather than only the transitioning instance.
12389
+ */
12390
+ declare const RENDER_DIAGNOSTIC_CODES: readonly ["unsupported-shape-type", "unsupported-polygon-type", "unresolved-reference", "undeclarable-namespace-prefix", "unresolved-container-pivot", "unresolved-reference-pivot", "duplicate-shape-id", "reference-cycle", "unresolved-svg-viewport", "symbol-cycle", "unresolved-symbol-definition", "duplicate-library-id", "invalid-symbol-viewport", "unresolved-symbol-viewport", "unresolved-symbol-pivot", "unknown-symbol-variant", "ambiguous-symbol-override-target", "unresolved-symbol-override-target", "unexpandable-appearance-stack", "inert-text-path-morph", "inert-variant-transition-content", "unresolved-variant-transition-pivot", "shared-variant-transition-gradient"];
12224
12391
  type RenderDiagnosticCode = (typeof RENDER_DIAGNOSTIC_CODES)[number];
12225
12392
  /** One machine-readable problem reported while producing render output. */
12226
12393
  interface RenderDiagnostic {
@@ -12234,811 +12401,252 @@ interface RenderDiagnostic {
12234
12401
  }
12235
12402
 
12236
12403
  /**
12237
- * Symbol-instance resolution - the single definition of what a
12238
- * `symbol-instance` shape points at.
12239
- *
12240
- * A `symbol-instance` renders as `<use href="#target">` (SVG 2 §5.6), and
12241
- * the target is not always the library def's own id. Variants and
12242
- * per-instance overrides have no representation in the library - a
12243
- * `SymbolLibraryDef` carries every variant's shapes, but which one an
12244
- * instance selects, and what its overrides do to them, is instance state.
12245
- * The renderer therefore MATERIALIZES a `<symbol>` per referenced
12246
- * (def, variant, override) combination under a synthetic id:
12247
- *
12248
- * - no variant, no overrides -> `<def id>` (the library def)
12249
- * - variant `state=hover` -> `<def id>--state_hover`
12250
- * - any overrides -> `<def id>--ovr-<instance id>`
12251
- *
12252
- * Two call sites depend on that mapping and MUST agree on it, or a `<use>`
12253
- * points at a def that was never emitted:
12254
- *
12255
- * 1. `renderShape` (shape-renderers.ts) writes the `<use href>`.
12256
- * 2. `renderSymbolDefs` (svg-renderer.ts) emits the `<symbol>` bodies.
12257
- *
12258
- * They agree because both go through this module. `targetId` and
12259
- * `resolveShapes` are two halves of one decision - the `--ovr-` id is
12260
- * exactly the case where overrides are applied, the `--<variant>` id
12261
- * exactly the case where a variant array replaces `def.shapes` - so they
12262
- * live together and are never re-derived elsewhere.
12263
- *
12264
- * Dependency-free apart from types, so both the shape dispatcher and the
12265
- * document renderer can import it without an import cycle.
12404
+ * Shared transform ownership for serialized container shapes.
12266
12405
  *
12267
- * @packageDocumentation
12406
+ * Imported groups preserve their source transform in `groupData.transform`.
12407
+ * Canonical shape transform state owns the SVG attribute whenever it produces
12408
+ * a non-identity matrix; the imported spelling is only the fallback. Rendering
12409
+ * and analytic tree bounds use this module so the two projections cannot pick
12410
+ * different owners.
12268
12411
  */
12269
12412
 
12270
- type SymbolResolutionDiagnosticCode = 'unknown-symbol-variant' | 'ambiguous-symbol-override-target' | 'unresolved-symbol-override-target';
12271
- interface SymbolResolutionDiagnostic {
12272
- code: SymbolResolutionDiagnosticCode;
12273
- shapeId: string;
12274
- message: string;
12413
+ type ContainerTransformOwner = 'canonical' | 'group-data' | 'none';
12414
+ interface ResolvedContainerTransform {
12415
+ matrix: Affine2D;
12416
+ attribute: string | null;
12417
+ owner: ContainerTransformOwner;
12275
12418
  }
12276
- interface ResolvedSymbolInstanceContent {
12277
- readonly shapes: readonly SerializedShape[];
12278
- readonly requestedVariantKey: string;
12279
- readonly effectiveVariantKey: string;
12280
- readonly candidateTargetId: string;
12281
- readonly materializationKey: string;
12282
- readonly materialized: boolean;
12283
- readonly diagnostics: readonly SymbolResolutionDiagnostic[];
12419
+ interface ContainerContentBounds {
12420
+ minX: number;
12421
+ minY: number;
12422
+ maxX: number;
12423
+ maxY: number;
12284
12424
  }
12285
- /** Resolve variant selection and recursive immutable overrides once for every surface. */
12286
- declare function resolveSymbolInstanceContent(def: SymbolLibraryDef, instance: SerializedShape): ResolvedSymbolInstanceContent;
12287
12425
  /**
12288
- * The `<symbol>` id an instance's `<use href>` resolves to.
12289
- *
12290
- * Mirrors the editor-side `exportSymbolInstances` in
12291
- * `apps/editor/src/canvas/svg-export-finalizer.ts` so an editor export and
12292
- * a headless render of the same document target the same ids.
12293
- *
12294
- * `dedicated` forces the per-instance `--ovr-` id even without
12295
- * overrides — the animated-export policy for instances driven by an
12296
- * `instanceVariant` timeline track, whose injected variant-transition
12297
- * animations must not bleed into sibling instances of the same def. The
12298
- * editor's animated export materializes those dedicated defs and passes
12299
- * the flag here so its `<use href>` retargeting and the def id agree.
12426
+ * Resolve the transform emitted on a container and the equivalent affine.
12427
+ * SVG 2 section 8.5 applies the transform to the container coordinate system.
12300
12428
  */
12301
- declare function symbolInstanceTargetId(instance: SerializedShape, dedicated?: boolean): string;
12429
+ declare function resolveContainerTransform(state: SerializedShapeState, defaultPivot?: Point): ResolvedContainerTransform;
12430
+ /** Whether decomposed rotation, scale, or skew channels need a geometry pivot. */
12431
+ declare function containerTransformNeedsContentPivot(state: SerializedShapeState): boolean;
12432
+ /** Resolve container transform channels around the exact local content center. */
12433
+ declare function resolveContainerTransformFromContentBounds(state: SerializedShapeState, bounds: ContainerContentBounds | null): ResolvedContainerTransform;
12434
+
12302
12435
  /**
12303
- * The shapes that make up the `<symbol>` body an instance resolves to:
12304
- * the selected variant (falling back to `def.shapes`, the default
12305
- * variant, when the key is absent or unknown) with the instance's
12306
- * per-shape overrides merged on top.
12436
+ * Pure geometry functions for computing shape vertices and paths.
12307
12437
  *
12308
- * Overrides are keyed by INNER shape id and merge shallowly into that
12309
- * shape's state, which is what keeps the inner ids - and therefore any
12310
- * shape-derived def ids such as `filter-<id>` - stable across
12311
- * materializations.
12438
+ * These are headless — no DOM required. They take numeric parameters
12439
+ * and return vertex arrays or SVG path-data strings.
12312
12440
  */
12313
- declare function resolveSymbolInstanceShapes(def: SymbolLibraryDef, instance: SerializedShape): SerializedShape[];
12314
12441
 
12315
- type SymbolViewportDiagnosticCode = 'invalid-symbol-length' | 'invalid-symbol-viewbox' | 'unresolved-symbol-viewport';
12316
- interface SymbolViewportDiagnostic {
12317
- code: SymbolViewportDiagnosticCode;
12318
- message: string;
12319
- }
12320
- interface SymbolLengthContext {
12321
- axis: 'x' | 'y' | 'width' | 'height' | 'refX' | 'refY';
12322
- percentBasis?: number;
12323
- }
12324
- interface SymbolViewportHost {
12325
- resolveLength?: (value: string, context: SymbolLengthContext) => number | null;
12326
- }
12327
- interface ResolvedSymbolViewport {
12328
- readonly kind: 'symbol' | 'group';
12329
- readonly renders: boolean;
12330
- readonly useX: number;
12331
- readonly useY: number;
12332
- readonly useAttributes: Readonly<AuthoredUseGeometry>;
12333
- /** Mapping after the use element's own transform. Includes use x/y and def root. */
12334
- readonly contentMatrix: Affine2D;
12335
- readonly childPercentBasis: SvgViewportSize | null;
12336
- readonly viewport: ResolvedSvgViewport | null;
12337
- readonly diagnostics: readonly SymbolViewportDiagnostic[];
12338
- }
12339
12442
  /**
12340
- * Resolve SVG 2 sections 5.4, 5.5.2, 8.2, and 8.6 through 8.8 for one
12341
- * symbol instance. The use translation is on the right of its own transform;
12342
- * this result intentionally starts after that own transform.
12443
+ * Compute equally-spaced vertices around a circle (for triangle, ngon).
12444
+ * Path is centered at origin; caller applies translate(cx, cy).
12343
12445
  */
12344
- declare function resolveSymbolViewport(shape: SerializedShape, def: SymbolLibraryDef, parentViewport?: SvgViewportSize, host?: SymbolViewportHost): ResolvedSymbolViewport;
12345
-
12346
- type SymbolMaterializationDiagnosticCode = SymbolResolutionDiagnosticCode | 'unresolved-symbol-definition' | 'duplicate-library-id' | 'symbol-cycle';
12347
- interface SymbolMaterializationDiagnostic {
12348
- readonly code: SymbolMaterializationDiagnosticCode;
12349
- readonly shapeId: string;
12350
- readonly message: string;
12351
- }
12352
- interface SymbolMaterialization {
12353
- readonly materializationKey: string;
12354
- readonly targetId: string;
12355
- readonly candidateTargetId: string;
12356
- readonly definition: SymbolLibraryDef;
12357
- readonly shapes: readonly SerializedShape[];
12358
- readonly parentViewport?: Readonly<SvgViewportSize>;
12359
- readonly viewport: ResolvedSymbolViewport;
12360
- }
12361
- interface SymbolInstanceMaterialization {
12362
- readonly targetId: string | null;
12363
- readonly definition: SymbolLibraryDef | null;
12364
- readonly materializationKey: string | null;
12365
- /** Final occurrence-local materialization used by every render surface. */
12366
- readonly materialization: SymbolMaterialization | null;
12367
- readonly diagnostics: readonly SymbolMaterializationDiagnostic[];
12368
- readonly parentViewport?: Readonly<SvgViewportSize>;
12369
- readonly viewport: ResolvedSymbolViewport | null;
12370
- }
12371
- interface SymbolMaterializationPlan {
12372
- readonly materializations: readonly SymbolMaterialization[];
12373
- readonly diagnostics: readonly SymbolMaterializationDiagnostic[];
12374
- resolve(instance: SerializedShape): SymbolInstanceMaterialization | undefined;
12375
- }
12376
- interface SymbolMaterializationPlanOptions {
12377
- readonly reservedIds?: ReadonlySet<string>;
12378
- readonly parentViewport?: Readonly<SvgViewportSize>;
12379
- readonly viewportHost?: SymbolViewportHost;
12380
- /**
12381
- * Per-occurrence render policy supplied by a document surface.
12382
- *
12383
- * An `instanceVariant` animation starts from its first keyed state and
12384
- * needs a dedicated target so injected animation never changes sibling
12385
- * instances that otherwise share the same definition.
12386
- */
12387
- readonly instancePolicy?: (instance: SerializedShape) => {
12388
- readonly initialVariantKey?: string;
12389
- readonly dedicated?: boolean;
12390
- } | undefined;
12391
- }
12446
+ declare function computePolygonVertices(sides: number, radius: number, shiftAngleDeg?: number): Point[];
12392
12447
  /**
12393
- * Build the complete SVG 2 section 5.5 shadow-tree materialization plan for
12394
- * one document. Cycle identity is semantic definition + variant + override
12395
- * content, so finite cross-variant recursion remains legal while an actual
12396
- * repeated shadow root is pruned before markup emission.
12448
+ * Compute star vertices with alternating outer/inner radii.
12397
12449
  */
12398
- declare function buildSymbolMaterializationPlan(library: readonly LibraryDef[], roots: readonly SerializedShape[], options?: SymbolMaterializationPlanOptions): SymbolMaterializationPlan;
12399
-
12450
+ declare function computeStarVertices(arms: number, radius: number, innerRadiusPercent: number, shiftAngleDeg?: number): Point[];
12400
12451
  /**
12401
- * Reachability walk over the shapes a rendered document actually paints.
12402
- *
12403
- * `<defs>` emission is reference-driven: a def is emitted only when
12404
- * something in the rendered output points at it with `url(#id)`. Getting
12405
- * that set right means walking more than the top-level shape array,
12406
- * because two nesting mechanisms put `url(#…)` references into the output
12407
- * without a top-level shape carrying them:
12408
- *
12409
- * 1. **Container children.** `<g>`, `<a>`, `<switch>` and nested `<svg>`
12410
- * render `state.children` inline (see `renderContainerChildren` in
12411
- * shape-renderers.ts), so a child's fill / filter / marker reference
12412
- * is live in the document.
12413
- * 2. **Library def contents.** A `<symbol>` or `<marker>` def emits its
12414
- * inner shapes verbatim, so those shapes' references are live too -
12415
- * SVG 2 §5.5 resolves them against the document `<defs>`, not against
12416
- * any def-local scope.
12417
- *
12418
- * Both are transitive: a symbol's inner shape can be a group whose child
12419
- * instantiates another symbol. Reachability is therefore a fixpoint, and
12420
- * a symbol that (directly or indirectly) instantiates itself must not
12421
- * spin - each def's contents are expanded at most once.
12422
- *
12423
- * This module is intentionally dependency-free apart from types so that
12424
- * both `library-renderers.ts` (which emits the defs) and
12425
- * `shape-renderers.ts` (which emits built-in `<marker>` defs) can share
12426
- * one definition of "reachable" without an import cycle. The editor's
12427
- * live `<defs>` reconciler (`MarkerManager`) shares it too, through
12428
- * `forEachShapeInLibraryDefs` - which is what stops the canvas and the
12429
- * exported file from disagreeing about which defs a document needs.
12430
- *
12431
- * @packageDocumentation
12452
+ * Compute cross vertices (12 points forming a plus shape).
12432
12453
  */
12433
-
12454
+ declare function computeCrossVertices(radius: number, armWidthPercent: number, shiftAngleDeg?: number): Point[];
12434
12455
  /**
12435
- * Id → def lookup for the reachability walks.
12436
- *
12437
- * A caller that already owns a keyed store of its defs (the editor's
12438
- * `LibraryRegistry` is exactly such a map) can hand it straight to the
12439
- * walkers instead of paying to rebuild an index per call - which matters
12440
- * because the editor runs `collectReferencedMarkerIds` on the animation
12441
- * path.
12456
+ * Compute arrow vertices (7 points forming an arrow).
12442
12457
  */
12443
- type LibraryIndex = ReadonlyMap<string, LibraryDef>;
12444
- /** Accept either the array form or a prebuilt index. */
12445
- type LibrarySource = readonly LibraryDef[] | LibraryIndex;
12458
+ declare function computeArrowVertices(radius: number, headWidthPercent: number, headLengthPercent: number, shaftWidthPercent: number, shiftAngleDeg?: number): Point[];
12446
12459
  /**
12447
- * Call `visit` once for every shape whose rendered form can appear in the
12448
- * document: each top-level shape, every container descendant, and the
12449
- * inner shapes (plus symbol variants) of the `<symbol>` / `<marker>`
12450
- * library defs those shapes reach.
12451
- *
12452
- * Visit order is deterministic and stable: top-level shapes in document
12453
- * order first, then the transitive frontier discovered from them. Callers
12454
- * whose output order depends on discovery order can rely on that - and on
12455
- * the fact that the top-level prefix is exactly the pre-transitive walk.
12456
- *
12457
- * `visit` may be called more than once for the same shape only if the
12458
- * document itself contains it more than once (e.g. two symbols sharing an
12459
- * inner shape object); accumulating callers should be idempotent.
12460
+ * Compute speech-bubble vertices — square body with a tail protruding at a
12461
+ * chosen angle. The base endpoints lie on the chosen body edge (keeping the
12462
+ * body outline continuous); the tip extends in the direction of `tailAngleDeg`
12463
+ * at length `tailLengthPercent * radius`.
12460
12464
  *
12461
- * @param shapes Top-level shapes of the rendered document.
12462
- * @param library Library defs available for reference resolution. Pass an
12463
- * empty array to walk containers only.
12464
- * @param visit Callback invoked per reachable shape.
12465
+ * The `shiftAngleDeg` rotates the entire shape (body + tail).
12465
12466
  */
12466
- declare function forEachReachableShape(shapes: readonly SerializedShape[], library: LibrarySource, visit: (shape: SerializedShape) => void): void;
12467
+ declare function computeSpeechBubbleVertices(radius: number, tailAngleDeg: number, tailLengthPercent: number, tailWidthPercent: number, shiftAngleDeg?: number): Point[];
12467
12468
  /**
12468
- * Same walk, seeded from library def ids rather than from shapes: visits
12469
- * the contents of each named `<symbol>` / `<marker>` def and everything
12470
- * those contents transitively reach.
12471
- *
12472
- * This is the half of reachability that a LIVE editor cannot answer from
12473
- * its shape registry. Symbol-instance content is materialized as
12474
- * temporary shapes that never enter the registry or the scene graph, so
12475
- * a document-side walk sees the `symbolId` but nothing inside it. Seeding
12476
- * from the def ids the document reaches recovers exactly the missing
12477
- * frontier, and - because it is the same engine the export collector runs
12478
- * - recovers it with identical nesting, variant, and cycle semantics.
12479
- *
12480
- * Ids that are absent from `library`, or that name a def with no contents
12481
- * (paint servers, filters), are skipped.
12469
+ * Compute lightning-bolt vertices — a zigzag ribbon from top tip to bottom tip.
12470
+ * `boltSegments` line segments make the zigzag (alternating x offsets of
12471
+ * `boltJaggednessPercent * radius`); the ribbon is `boltWidthPercent * radius`
12472
+ * wide, perpendicular to each segment's bisector normal.
12482
12473
  */
12483
- declare function forEachShapeInLibraryDefs(rootDefIds: Iterable<string>, library: LibrarySource, visit: (shape: SerializedShape) => void): void;
12474
+ declare function computeLightningVertices(radius: number, boltSegments: number, boltJaggednessPercent: number, boltWidthPercent: number, shiftAngleDeg?: number): Point[];
12484
12475
  /**
12485
- * Marker ids a single shape's state puts into the rendered output: the
12486
- * three explicit `marker-*` refs, plus the built-in ids the legacy
12487
- * `startEndpoint` / `endEndpoint` dropdowns resolve to (`Line` and
12488
- * `Path` fold those into their painted refs - see
12489
- * `endpointMarkerAttributes` in codegen/helpers.ts and
12490
- * `Line.getEffectiveMarkerRefs()` in the editor).
12491
- *
12492
- * One definition, shared by the export collector and by the editor's live
12493
- * `<defs>` reconciler, so the two cannot disagree about what a given
12494
- * state means.
12476
+ * Compute heart path — two cubic Béziers meeting at the bottom tip and the
12477
+ * upper cleft. `lobeRadiusPercent` controls the horizontal extent of the two
12478
+ * top lobes; `cleftDepthPercent` controls how deep the central dip sits.
12495
12479
  */
12496
- declare function forEachMarkerRefInState(state: SerializedShape['state'] | Record<string, unknown> | undefined, visit: (markerId: string) => void): void;
12497
- /** The built-in `<marker>` id a legacy endpoint name resolves to. */
12498
- declare function legacyEndpointMarkerId(endpoint: string): string;
12480
+ declare function computeHeartPath(radius: number, lobeRadiusPercent: number, cleftDepthPercent: number, shiftAngleDeg?: number): string;
12499
12481
  /**
12500
- * Library def ids a single shape's state references: fill / stroke paint
12501
- * servers, the filter chain, the marker refs, and the symbol it
12502
- * instantiates.
12482
+ * Compute cloud path — a classic cartoon-cloud silhouette built as the outer
12483
+ * boundary of N overlapping circles placed around an elongated ellipse.
12484
+ * Circles go all the way around (top, sides, bottom), and the silhouette is
12485
+ * closed by walking each circle's outer arc via the intersection with its
12486
+ * next neighbor. Every transition between bumps is tangent-smooth — no flat
12487
+ * edges, no corners.
12503
12488
  *
12504
- * Mirrors the reference set `collectReferencedLibraryDefs` scans per
12505
- * shape, including the legacy fallbacks - an inline `fillGradient`
12506
- * payload with no `fillLibraryId` still names a def, and a populated
12507
- * `filters` array with no `filterLibraryIds` names the shape-derived
12508
- * `filter-<shapeId>`. It reports RAW ids and makes no library lookup, so
12509
- * a caller can use it against a live document whose defs are stored
12510
- * somewhere other than a `LibraryDef[]`.
12489
+ * `cloudBumps` (3..8) — number of bump circles forming the silhouette.
12490
+ * `cloudPuffinessPercent` (40..80) — drives bump overlap; higher values
12491
+ * smooth the underside; lower values leave the bumps more pronounced.
12492
+ */
12493
+ declare function computeCloudPath(radius: number, cloudBumps: number, cloudPuffinessPercent: number, shiftAngleDeg?: number): string;
12494
+ /**
12495
+ * Convert an array of vertices to an SVG path string.
12496
+ * Supports optional rounded corners via quadratic Bézier.
12497
+ */
12498
+ declare function verticesToPath(vertices: Point[], cornerRadius?: number, radius?: number): string;
12499
+ /**
12500
+ * Generate SVG path for a ring (two concentric circles).
12501
+ */
12502
+ declare function computeRingPath(radius: number, innerRadiusPercent: number, fillRule?: 'nonzero' | 'evenodd'): string;
12503
+ /**
12504
+ * Generate SVG path for an Archimedean spiral.
12505
+ */
12506
+ declare function computeSpiralPath(radius: number, turns: number, thicknessPercent: number, spiralDirection?: number, shiftAngleDeg?: number): string;
12507
+ declare function computeGearVertices(teeth: number, radius: number, toothDepthPercent: number, shiftAngleDeg?: number): Point[];
12508
+ /**
12509
+ * Generate full gear path including optional center hole.
12510
+ */
12511
+ declare function computeGearPath(teeth: number, radius: number, toothDepthPercent: number, cornerRadius?: number, holeRadiusPercent?: number, fillRule?: 'nonzero' | 'evenodd', shiftAngleDeg?: number): string;
12512
+ type CornerShape = 'round' | 'bevel' | 'notch' | 'scoop';
12513
+ /**
12514
+ * Generate SVG path for a rectangle with per-corner radius and shape.
12515
+ * Returns null if all corners are simple (use <rect> instead).
12516
+ */
12517
+ declare function computeRectanglePath(x: number, y: number, width: number, height: number, cornerRadius: number, cornerShape?: CornerShape, cornerMode?: 'uniform' | 'non-uniform', perCorner?: {
12518
+ radiusTL?: number;
12519
+ radiusTR?: number;
12520
+ radiusBR?: number;
12521
+ radiusBL?: number;
12522
+ shapeTL?: CornerShape;
12523
+ shapeTR?: CornerShape;
12524
+ shapeBR?: CornerShape;
12525
+ shapeBL?: CornerShape;
12526
+ }): string | null;
12527
+ /** The six flowchart shapes that fit an axis-aligned (x, y, w, h) box. */
12528
+ type FlowchartBoxType = 'diamond' | 'parallelogram' | 'trapezoid' | 'terminator' | 'cylinder' | 'document-shape';
12529
+ /** Per-shape knob, expressed as a percentage of width or height. */
12530
+ interface FlowchartBoxParams {
12531
+ /** Parallelogram: horizontal slant as a percentage of width. */
12532
+ slantPercent?: number;
12533
+ /** Trapezoid: top edge width as a percentage of the bottom edge. */
12534
+ topWidthPercent?: number;
12535
+ /** Cylinder: elliptical cap height as a percentage of total height. */
12536
+ capHeightPercent?: number;
12537
+ /** Document: bottom wave amplitude as a percentage of height. */
12538
+ waveAmplitudePercent?: number;
12539
+ }
12540
+ /**
12541
+ * SVG path data for a flowchart box, in absolute canvas coordinates.
12511
12542
  *
12512
- * Deliberately NOT shared with `collectReferencedLibraryDefs` itself:
12513
- * that function has to decide, per id, between emitting the library
12514
- * entry and synthesizing a transient def from the inline payload, and
12515
- * the order in which it resolves the two is observable in the emitted
12516
- * `<defs>`. Keeping the two separate leaves that byte-order contract
12517
- * untouched; that they agree on the reference SET is enforced by test
12518
- * rather than by shared code.
12543
+ * Kept numerically identical to the editor's `generatePath()` methods in
12544
+ * `apps/editor/src/shapes/flowchart-shapes.ts` and `diamond.ts` so a
12545
+ * headless render and an editor export of the same document produce the
12546
+ * same silhouette. The defaults below mirror the editor's property
12547
+ * getters, which are what a document authored before a knob existed
12548
+ * falls back to.
12519
12549
  */
12520
- declare function forEachLibraryRefInState(state: SerializedShape['state'] | Record<string, unknown> | undefined, shapeId: string, visit: (libraryId: string) => void): void;
12550
+ declare function computeFlowchartBoxPath(type: FlowchartBoxType, x: number, y: number, width: number, height: number, params?: FlowchartBoxParams): string;
12521
12551
  /**
12522
- * Marker references found by walking a document, split the way
12523
- * `renderBuiltinMarkerDefs` consumes them:
12524
- * - `ids`: raw marker ids from `state.markerStart` / `markerMid` /
12525
- * `markerEnd` - built-in (`mkr-builtin-arrow`, `line-marker-arrow`)
12526
- * or user marker ids.
12527
- * - `legacyEndpoints`: endpoint names from `state.startEndpoint` /
12528
- * `endEndpoint` (e.g. `'arrow'`), which `Line` / `Path` emit as a
12529
- * shortcut to built-in markers without explicit `marker-*` attrs.
12552
+ * Structural shape of one point in a spline/path model. Deliberately
12553
+ * looser than the `PathPoint` document type (string `pointType` /
12554
+ * `segmentType`) so editor and SDK point arrays both satisfy it.
12530
12555
  */
12531
- interface MarkerReferenceSets {
12532
- ids: Set<string>;
12533
- legacyEndpoints: Set<string>;
12556
+ interface SplinePointInput {
12557
+ x: number;
12558
+ y: number;
12559
+ handleIn?: Point;
12560
+ handleOut?: Point;
12561
+ pointType?: string;
12562
+ isSubpathStart?: boolean;
12563
+ subpathClosed?: boolean;
12564
+ moveRelative?: boolean;
12565
+ segmentRelative?: boolean;
12566
+ segmentType?: string;
12567
+ arcParams?: ArcParams;
12534
12568
  }
12535
12569
  /**
12536
- * Walk a document for marker references. Reachability, not just the top
12537
- * level: container children render inline and `<symbol>` / `<marker>`
12538
- * inner shapes emit verbatim, so a `marker-start="url(#line-marker-arrow)"`
12539
- * written from inside a symbol needs its built-in def as much as a
12540
- * top-level one does.
12570
+ * Compute SVG path data from spline points.
12541
12571
  */
12542
- declare function collectMarkerReferences(shapes: readonly SerializedShape[], library?: LibrarySource): MarkerReferenceSets;
12543
12572
  /**
12544
- * Every `<marker>` id a rendered document needs a def for, as one flat
12545
- * set: the raw `marker-*` refs plus the built-in ids the legacy endpoint
12546
- * dropdowns resolve to.
12573
+ * How the serializer treats the shorthand path commands whose validity
12574
+ * depends on measured geometry (`H`/`V` for axis-aligned lines, `S`/`T`
12575
+ * for reflected control points).
12547
12576
  *
12548
- * This is the reference answer to "which markers must be in `<defs>`?".
12549
- * The editor's live reconciler computes the same set incrementally from
12550
- * its model; that the two agree is what keeps canvas and export from
12551
- * diverging.
12577
+ * - `'preserve'` (default) — emit the shorthand whenever the geometry
12578
+ * satisfies it. This is what authored path data round-trips through.
12579
+ * - `'expand'` — always emit the long form (`L`, `C`, `Q`). Required
12580
+ * when serializing a sequence of `d` values that must interpolate:
12581
+ * SVG only animates between path values with identical command
12582
+ * structure (SVG 1.1 §19.2.15.3), and a vertex crossing into or out of
12583
+ * axis alignment silently changes which shorthand applies, which would
12584
+ * break the animation partway through.
12552
12585
  */
12553
- declare function collectReferencedMarkerIds(shapes: readonly SerializedShape[], library: LibrarySource): Set<string>;
12554
-
12555
- type PresentationValueReader = (key: string) => unknown;
12556
- interface PresentationSemanticContext {
12557
- shapeId: string;
12558
- includeAuthoredAttributes?: boolean;
12559
- includeContainerPresentation?: boolean;
12560
- retainCssAnimationDeclarations?: boolean;
12561
- /**
12562
- * The live editor projects resolved static stylesheet values inline so its
12563
- * structural scaffolding cannot alter selector matching. Serialized SVG
12564
- * renderers leave both stylesheet channels to the canonical stylesheet.
12565
- */
12566
- projectStaticStylesheetValues?: boolean;
12567
- }
12568
- interface PresentationWrite {
12569
- channel: 'attribute' | 'style';
12570
- name: string;
12571
- value: string | number | null;
12572
- allowEmpty?: boolean;
12573
- ifAbsent?: boolean;
12574
- }
12575
- interface PresentationSemanticEntry {
12576
- id: string;
12577
- keys: readonly string[];
12578
- project: (read: PresentationValueReader, context: PresentationSemanticContext) => readonly PresentationWrite[];
12579
- }
12586
+ type PathShorthandPolicy = 'preserve' | 'expand';
12587
+ declare function computeSplinePath(points: readonly SplinePointInput[], curveType: string, closed?: boolean, tension?: number, arcParams?: readonly ArcParams[], shorthand?: PathShorthandPolicy): string;
12580
12588
  /**
12581
- * Ordered common-presentation semantics shared by headless rendering,
12582
- * component code generation, and the editor's incremental apply layer.
12589
+ * Compute a dash-array string for a given line style.
12583
12590
  *
12584
- * Order is part of the contract. The dash row follows linecap so dotted
12585
- * style can make the final cap round, and unmodeled authored attributes
12586
- * remain the final row so typed state keeps one deterministic owner.
12591
+ * @returns A `stroke-dasharray` value like `"8 4"`, or `null` for solid lines.
12587
12592
  */
12588
- declare const PRESENTATION_SEMANTICS: readonly [{
12589
- readonly id: "fill";
12590
- readonly keys: readonly ["fillColor", "fillType", "fillGradient", "fillLibraryId", "inheritFill", "authoredFillPaint"];
12591
- readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
12592
- }, {
12593
- readonly id: "element-opacity";
12594
- readonly keys: readonly ["opacity", "preserveOpacity"];
12595
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12596
- }, {
12597
- readonly id: "fill-opacity";
12598
- readonly keys: readonly ["fillOpacity", "preserveFillOpacity", "fillType", "fillGradient", "inheritFill"];
12599
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12600
- }, {
12601
- readonly id: "fill-rule";
12602
- readonly keys: readonly ["fillRule"];
12603
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12604
- }, {
12605
- readonly id: "stroke";
12606
- readonly keys: readonly ["borderColor", "strokeType", "strokeGradient", "strokeLibraryId", "inheritStroke", "authoredStrokePaint"];
12607
- readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
12608
- }, {
12609
- readonly id: "stroke-width";
12610
- readonly keys: readonly ["borderWidth"];
12611
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12612
- }, {
12613
- readonly id: "stroke-opacity";
12614
- readonly keys: readonly ["strokeOpacity", "preserveStrokeOpacity", "strokeType", "strokeGradient", "inheritStroke"];
12615
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12616
- }, {
12617
- readonly id: "blend-mode";
12618
- readonly keys: readonly ["blendMode"];
12619
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12620
- }, {
12621
- readonly id: "paint-order";
12622
- readonly keys: readonly ["paintOrder"];
12623
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12624
- }, {
12625
- readonly id: "inline-style";
12626
- readonly keys: readonly ["inlineStyle"];
12627
- readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
12628
- }, {
12629
- readonly id: "markers";
12630
- readonly keys: readonly ["markerStart", "markerMid", "markerEnd"];
12631
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12632
- }, {
12633
- readonly id: "stroke-linejoin";
12634
- readonly keys: readonly ["strokeLinejoin"];
12635
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12636
- }, {
12637
- readonly id: "stroke-linecap";
12638
- readonly keys: readonly ["strokeLinecap"];
12639
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12640
- }, {
12641
- readonly id: "stroke-miterlimit";
12642
- readonly keys: readonly ["strokeMiterlimit"];
12643
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12644
- }, {
12645
- readonly id: "stroke-dasharray";
12646
- readonly keys: readonly ["lineStyle", "dashLength", "gapLength", "strokeDasharray", "strokeLinecap"];
12647
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12648
- }, {
12649
- readonly id: "stroke-dashoffset";
12650
- readonly keys: readonly ["dashOffset"];
12651
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12652
- }, {
12653
- readonly id: "shape-rendering";
12654
- readonly keys: readonly ["shapeRendering"];
12655
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12656
- }, {
12657
- readonly id: "text-rendering";
12658
- readonly keys: readonly ["textRendering"];
12659
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12660
- }, {
12661
- readonly id: "image-rendering";
12662
- readonly keys: readonly ["imageRendering"];
12663
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12664
- }, {
12665
- readonly id: "color-rendering";
12666
- readonly keys: readonly ["colorRendering"];
12667
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12668
- }, {
12669
- readonly id: "color-interpolation";
12670
- readonly keys: readonly ["colorInterpolation"];
12671
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12672
- }, {
12673
- readonly id: "filter";
12674
- readonly keys: readonly ["filters", "filterLibraryIds"];
12675
- readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
12676
- }, {
12677
- readonly id: "system-language";
12678
- readonly keys: readonly ["systemLanguage"];
12679
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12680
- }, {
12681
- readonly id: "required-extensions";
12682
- readonly keys: readonly ["requiredExtensions"];
12683
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12684
- }, {
12685
- readonly id: "vector-effect";
12686
- readonly keys: readonly ["vectorEffect"];
12687
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12688
- }, {
12689
- readonly id: "visibility";
12690
- readonly keys: readonly ["visibility"];
12691
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12692
- }, {
12693
- readonly id: "display";
12694
- readonly keys: readonly ["displayAttr"];
12695
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12696
- }, {
12697
- readonly id: "visible";
12698
- readonly keys: readonly ["visible"];
12699
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12700
- }, {
12701
- readonly id: "path-length";
12702
- readonly keys: readonly ["pathLength"];
12703
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12704
- }, {
12705
- readonly id: "transform-box";
12706
- readonly keys: readonly ["transformBox"];
12707
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12708
- }, {
12709
- readonly id: "transform";
12710
- readonly keys: readonly ["rotation", "transformMatrix", "translateX", "translateY", "skewX", "skewY", "scaleX", "scaleY", "customPivot", "rawTransform"];
12711
- readonly project: () => never[];
12712
- }, {
12713
- readonly id: "locked";
12714
- readonly keys: readonly ["locked"];
12715
- readonly project: () => never[];
12716
- }, {
12717
- readonly id: "metadata";
12718
- readonly keys: readonly ["metadata"];
12719
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12720
- }, {
12721
- readonly id: "css-clip-path";
12722
- readonly keys: readonly ["cssClipPath"];
12723
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12724
- }, {
12725
- readonly id: "css-mask-properties";
12726
- readonly keys: readonly ["cssMaskProperties"];
12727
- readonly project: (read: PresentationValueReader) => PresentationWrite[];
12728
- }, {
12729
- readonly id: "container-presentation";
12730
- readonly keys: readonly ["containerPresentation"];
12731
- readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
12732
- }, {
12733
- readonly id: "authored-attributes";
12734
- readonly keys: readonly ["authoredAttributes"];
12735
- readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
12736
- }];
12737
- type PresentationSemanticId = (typeof PRESENTATION_SEMANTICS)[number]['id'];
12738
- declare function projectPresentationEntry(entry: PresentationSemanticEntry, read: PresentationValueReader, context: PresentationSemanticContext): readonly PresentationWrite[];
12739
- declare function projectPresentation(read: PresentationValueReader, context: PresentationSemanticContext): PresentationWrite[];
12740
- declare function serializedPresentationReader(state: SerializedShapeState): PresentationValueReader;
12741
-
12742
- type DefinitionAttribute = readonly [name: string, value: string | number];
12743
- interface GradientStopEnvelope {
12744
- attributes: readonly DefinitionAttribute[];
12745
- }
12746
- interface GradientDefinitionEnvelope {
12747
- element: 'linearGradient' | 'radialGradient';
12748
- attributes: readonly DefinitionAttribute[];
12749
- stops: readonly GradientStopEnvelope[];
12750
- }
12751
- interface PatternDefinitionEnvelope {
12752
- attributes: readonly DefinitionAttribute[];
12753
- content: string;
12754
- }
12755
- type FilterColorInterpolation = 'auto' | 'sRGB' | 'linearRGB';
12756
- type FilterUnits = 'userSpaceOnUse' | 'objectBoundingBox';
12757
- interface FilterElementAttrs {
12758
- colorInterpolation?: FilterColorInterpolation | null;
12759
- filterUnits?: FilterUnits;
12760
- primitiveUnits?: FilterUnits;
12761
- x?: string;
12762
- y?: string;
12763
- width?: string;
12764
- height?: string;
12765
- }
12766
- interface FilterEnvelopeBase {
12767
- attributes: readonly DefinitionAttribute[];
12768
- }
12769
- interface RawFilterEnvelope extends FilterEnvelopeBase {
12770
- kind: 'raw';
12771
- content: string;
12772
- }
12773
- interface PrimitiveChainFilterEnvelope extends FilterEnvelopeBase {
12774
- kind: 'primitive-chain';
12775
- chain: SvgPrimitiveChainFilter;
12776
- }
12777
- interface GeneratedFilterEnvelope extends FilterEnvelopeBase {
12778
- kind: 'generated';
12779
- filters: readonly ShapeFilter[];
12780
- primitiveUnits: FilterUnits;
12781
- }
12782
- type FilterDefinitionEnvelope = RawFilterEnvelope | PrimitiveChainFilterEnvelope | GeneratedFilterEnvelope;
12783
- /**
12784
- * Build the one portable pattern definition consumed by static rendering and
12785
- * platform projections. SVG 2 section 14.3 keeps tile lengths on the pattern
12786
- * resource, so valid source spellings remain authoritative over the numeric
12787
- * editor projection.
12788
- */
12789
- declare function patternDefinitionEnvelope(id: string, pattern: PatternFill): PatternDefinitionEnvelope;
12790
- declare function linearGradientEnvelope(id: string, gradient: LinearGradient): GradientDefinitionEnvelope;
12791
- declare function radialGradientEnvelope(id: string, gradient: RadialGradient): GradientDefinitionEnvelope;
12792
- declare function filterChainExtendsBounds(filters: readonly ShapeFilter[]): boolean;
12793
- declare function filterDefinitionEnvelope(filterId: string, filters: readonly ShapeFilter[], attrs?: FilterElementAttrs): FilterDefinitionEnvelope | null;
12593
+ declare function computeDashArray(style: string, dashLength: number, gapLength: number): string | null;
12794
12594
 
12795
12595
  /**
12796
- * Shared transform ownership for serialized container shapes.
12596
+ * Analytic bounds for SVG path geometry.
12797
12597
  *
12798
- * Imported groups preserve their source transform in `groupData.transform`.
12799
- * Canonical shape transform state owns the SVG attribute whenever it produces
12800
- * a non-identity matrix; the imported spelling is only the fallback. Rendering
12801
- * and analytic tree bounds use this module so the two projections cannot pick
12802
- * different owners.
12598
+ * Computes the FILL-geometry axis-aligned bounding box of path data,
12599
+ * the same rectangle `SVGGraphicsElement.getBBox()` reports (SVG 2 section 8.10:
12600
+ * fill geometry only, with no stroke, no markers, no clip, and no
12601
+ * element transform) with no DOM, no layout, and no measurement. Callers may
12602
+ * supply an affine map to request the exact box in another user coordinate
12603
+ * system, as defined by SVG 2 sections 8.2, 8.6, 8.7, and 8.10.
12604
+ *
12605
+ * ## Shared command geometry
12606
+ *
12607
+ * `computeSplinePath` in `./geometry` is the single source of truth for
12608
+ * what a point model *denotes*: it resolves curve type (linear, cubic,
12609
+ * quadratic, arc, catmull-rom, basis, mixed), subpath breaks, closing
12610
+ * segments, and the H/V/S/T shorthand demotions. Deriving bounds from a
12611
+ * second, independent traversal of the point model would duplicate those
12612
+ * rules. The model entry point consumes the serializer's numeric command
12613
+ * stream directly, avoiding text construction and parsing. Dedicated
12614
+ * whole-path generators retain the text route. Both routes use the same
12615
+ * extrema kernel and preserve the geometry represented by the rendered d.
12616
+ *
12617
+ * `pathDataBounds` is equally useful on its own for imported or
12618
+ * hand-authored `d` strings, so both layers are public.
12619
+ *
12620
+ * ## Precision
12621
+ *
12622
+ * Cubic and quadratic extrema are exact (roots of the derivative).
12623
+ * Elliptical-arc extrema are exact for the true ellipse. Browsers
12624
+ * decompose arcs into ≤90° cubic Bézier approximations before measuring
12625
+ * (Blink: `SVGPathNormalizer::DecomposeArcToCubic`), so a browser's
12626
+ * `getBBox` can differ from the exact ellipse extent by the
12627
+ * approximation error of that decomposition — bounded by roughly
12628
+ * 2.7e-4 · r, and zero whenever the extremum lands on a segment
12629
+ * endpoint or midpoint (the classic k = 4/3·tan(Δθ/4) construction
12630
+ * interpolates both). The exact value is the spec-correct one, so this
12631
+ * module reports it rather than reproducing the browser's
12632
+ * approximation.
12803
12633
  */
12804
12634
 
12805
- type ContainerTransformOwner = 'canonical' | 'group-data' | 'none';
12806
- interface ResolvedContainerTransform {
12807
- matrix: Affine2D;
12808
- attribute: string | null;
12809
- owner: ContainerTransformOwner;
12810
- }
12811
- interface ContainerContentBounds {
12635
+ /** Axis-aligned rectangle in the coordinate system of the path data. */
12636
+ interface PathBoundsRect {
12812
12637
  minX: number;
12813
12638
  minY: number;
12814
12639
  maxX: number;
12815
12640
  maxY: number;
12816
12641
  }
12642
+ /** One-dimensional interval, the per-axis result of a curve extent. */
12643
+ interface Extent1D {
12644
+ min: number;
12645
+ max: number;
12646
+ }
12817
12647
  /**
12818
- * Resolve the transform emitted on a container and the equivalent affine.
12819
- * SVG 2 section 8.5 applies the transform to the container coordinate system.
12820
- */
12821
- declare function resolveContainerTransform(state: SerializedShapeState, defaultPivot?: Point): ResolvedContainerTransform;
12822
- /** Whether decomposed rotation, scale, or skew channels need a geometry pivot. */
12823
- declare function containerTransformNeedsContentPivot(state: SerializedShapeState): boolean;
12824
- /** Resolve container transform channels around the exact local content center. */
12825
- declare function resolveContainerTransformFromContentBounds(state: SerializedShapeState, bounds: ContainerContentBounds | null): ResolvedContainerTransform;
12826
-
12827
- /**
12828
- * Pure geometry functions for computing shape vertices and paths.
12829
- *
12830
- * These are headless — no DOM required. They take numeric parameters
12831
- * and return vertex arrays or SVG path-data strings.
12832
- */
12833
-
12834
- /**
12835
- * Compute equally-spaced vertices around a circle (for triangle, ngon).
12836
- * Path is centered at origin; caller applies translate(cx, cy).
12837
- */
12838
- declare function computePolygonVertices(sides: number, radius: number, shiftAngleDeg?: number): Point[];
12839
- /**
12840
- * Compute star vertices with alternating outer/inner radii.
12841
- */
12842
- declare function computeStarVertices(arms: number, radius: number, innerRadiusPercent: number, shiftAngleDeg?: number): Point[];
12843
- /**
12844
- * Compute cross vertices (12 points forming a plus shape).
12845
- */
12846
- declare function computeCrossVertices(radius: number, armWidthPercent: number, shiftAngleDeg?: number): Point[];
12847
- /**
12848
- * Compute arrow vertices (7 points forming an arrow).
12849
- */
12850
- declare function computeArrowVertices(radius: number, headWidthPercent: number, headLengthPercent: number, shaftWidthPercent: number, shiftAngleDeg?: number): Point[];
12851
- /**
12852
- * Compute speech-bubble vertices — square body with a tail protruding at a
12853
- * chosen angle. The base endpoints lie on the chosen body edge (keeping the
12854
- * body outline continuous); the tip extends in the direction of `tailAngleDeg`
12855
- * at length `tailLengthPercent * radius`.
12856
- *
12857
- * The `shiftAngleDeg` rotates the entire shape (body + tail).
12858
- */
12859
- declare function computeSpeechBubbleVertices(radius: number, tailAngleDeg: number, tailLengthPercent: number, tailWidthPercent: number, shiftAngleDeg?: number): Point[];
12860
- /**
12861
- * Compute lightning-bolt vertices — a zigzag ribbon from top tip to bottom tip.
12862
- * `boltSegments` line segments make the zigzag (alternating x offsets of
12863
- * `boltJaggednessPercent * radius`); the ribbon is `boltWidthPercent * radius`
12864
- * wide, perpendicular to each segment's bisector normal.
12865
- */
12866
- declare function computeLightningVertices(radius: number, boltSegments: number, boltJaggednessPercent: number, boltWidthPercent: number, shiftAngleDeg?: number): Point[];
12867
- /**
12868
- * Compute heart path — two cubic Béziers meeting at the bottom tip and the
12869
- * upper cleft. `lobeRadiusPercent` controls the horizontal extent of the two
12870
- * top lobes; `cleftDepthPercent` controls how deep the central dip sits.
12871
- */
12872
- declare function computeHeartPath(radius: number, lobeRadiusPercent: number, cleftDepthPercent: number, shiftAngleDeg?: number): string;
12873
- /**
12874
- * Compute cloud path — a classic cartoon-cloud silhouette built as the outer
12875
- * boundary of N overlapping circles placed around an elongated ellipse.
12876
- * Circles go all the way around (top, sides, bottom), and the silhouette is
12877
- * closed by walking each circle's outer arc via the intersection with its
12878
- * next neighbor. Every transition between bumps is tangent-smooth — no flat
12879
- * edges, no corners.
12880
- *
12881
- * `cloudBumps` (3..8) — number of bump circles forming the silhouette.
12882
- * `cloudPuffinessPercent` (40..80) — drives bump overlap; higher values
12883
- * smooth the underside; lower values leave the bumps more pronounced.
12884
- */
12885
- declare function computeCloudPath(radius: number, cloudBumps: number, cloudPuffinessPercent: number, shiftAngleDeg?: number): string;
12886
- /**
12887
- * Convert an array of vertices to an SVG path string.
12888
- * Supports optional rounded corners via quadratic Bézier.
12889
- */
12890
- declare function verticesToPath(vertices: Point[], cornerRadius?: number, radius?: number): string;
12891
- /**
12892
- * Generate SVG path for a ring (two concentric circles).
12893
- */
12894
- declare function computeRingPath(radius: number, innerRadiusPercent: number, fillRule?: 'nonzero' | 'evenodd'): string;
12895
- /**
12896
- * Generate SVG path for an Archimedean spiral.
12897
- */
12898
- declare function computeSpiralPath(radius: number, turns: number, thicknessPercent: number, spiralDirection?: number, shiftAngleDeg?: number): string;
12899
- declare function computeGearVertices(teeth: number, radius: number, toothDepthPercent: number, shiftAngleDeg?: number): Point[];
12900
- /**
12901
- * Generate full gear path including optional center hole.
12902
- */
12903
- declare function computeGearPath(teeth: number, radius: number, toothDepthPercent: number, cornerRadius?: number, holeRadiusPercent?: number, fillRule?: 'nonzero' | 'evenodd', shiftAngleDeg?: number): string;
12904
- type CornerShape = 'round' | 'bevel' | 'notch' | 'scoop';
12905
- /**
12906
- * Generate SVG path for a rectangle with per-corner radius and shape.
12907
- * Returns null if all corners are simple (use <rect> instead).
12908
- */
12909
- declare function computeRectanglePath(x: number, y: number, width: number, height: number, cornerRadius: number, cornerShape?: CornerShape, cornerMode?: 'uniform' | 'non-uniform', perCorner?: {
12910
- radiusTL?: number;
12911
- radiusTR?: number;
12912
- radiusBR?: number;
12913
- radiusBL?: number;
12914
- shapeTL?: CornerShape;
12915
- shapeTR?: CornerShape;
12916
- shapeBR?: CornerShape;
12917
- shapeBL?: CornerShape;
12918
- }): string | null;
12919
- /** The six flowchart shapes that fit an axis-aligned (x, y, w, h) box. */
12920
- type FlowchartBoxType = 'diamond' | 'parallelogram' | 'trapezoid' | 'terminator' | 'cylinder' | 'document-shape';
12921
- /** Per-shape knob, expressed as a percentage of width or height. */
12922
- interface FlowchartBoxParams {
12923
- /** Parallelogram: horizontal slant as a percentage of width. */
12924
- slantPercent?: number;
12925
- /** Trapezoid: top edge width as a percentage of the bottom edge. */
12926
- topWidthPercent?: number;
12927
- /** Cylinder: elliptical cap height as a percentage of total height. */
12928
- capHeightPercent?: number;
12929
- /** Document: bottom wave amplitude as a percentage of height. */
12930
- waveAmplitudePercent?: number;
12931
- }
12932
- /**
12933
- * SVG path data for a flowchart box, in absolute canvas coordinates.
12934
- *
12935
- * Kept numerically identical to the editor's `generatePath()` methods in
12936
- * `apps/editor/src/shapes/flowchart-shapes.ts` and `diamond.ts` so a
12937
- * headless render and an editor export of the same document produce the
12938
- * same silhouette. The defaults below mirror the editor's property
12939
- * getters, which are what a document authored before a knob existed
12940
- * falls back to.
12941
- */
12942
- declare function computeFlowchartBoxPath(type: FlowchartBoxType, x: number, y: number, width: number, height: number, params?: FlowchartBoxParams): string;
12943
- /**
12944
- * Structural shape of one point in a spline/path model. Deliberately
12945
- * looser than the `PathPoint` document type (string `pointType` /
12946
- * `segmentType`) so editor and SDK point arrays both satisfy it.
12947
- */
12948
- interface SplinePointInput {
12949
- x: number;
12950
- y: number;
12951
- handleIn?: Point;
12952
- handleOut?: Point;
12953
- pointType?: string;
12954
- isSubpathStart?: boolean;
12955
- subpathClosed?: boolean;
12956
- moveRelative?: boolean;
12957
- segmentRelative?: boolean;
12958
- segmentType?: string;
12959
- arcParams?: ArcParams;
12960
- }
12961
- /**
12962
- * Compute SVG path data from spline points.
12963
- */
12964
- /**
12965
- * How the serializer treats the shorthand path commands whose validity
12966
- * depends on measured geometry (`H`/`V` for axis-aligned lines, `S`/`T`
12967
- * for reflected control points).
12968
- *
12969
- * - `'preserve'` (default) — emit the shorthand whenever the geometry
12970
- * satisfies it. This is what authored path data round-trips through.
12971
- * - `'expand'` — always emit the long form (`L`, `C`, `Q`). Required
12972
- * when serializing a sequence of `d` values that must interpolate:
12973
- * SVG only animates between path values with identical command
12974
- * structure (SVG 1.1 §19.2.15.3), and a vertex crossing into or out of
12975
- * axis alignment silently changes which shorthand applies, which would
12976
- * break the animation partway through.
12977
- */
12978
- type PathShorthandPolicy = 'preserve' | 'expand';
12979
- declare function computeSplinePath(points: readonly SplinePointInput[], curveType: string, closed?: boolean, tension?: number, arcParams?: readonly ArcParams[], shorthand?: PathShorthandPolicy): string;
12980
- /**
12981
- * Compute a dash-array string for a given line style.
12982
- *
12983
- * @returns A `stroke-dasharray` value like `"8 4"`, or `null` for solid lines.
12984
- */
12985
- declare function computeDashArray(style: string, dashLength: number, gapLength: number): string | null;
12986
-
12987
- /**
12988
- * Analytic bounds for SVG path geometry.
12989
- *
12990
- * Computes the FILL-geometry axis-aligned bounding box of path data,
12991
- * the same rectangle `SVGGraphicsElement.getBBox()` reports (SVG 2 section 8.10:
12992
- * fill geometry only, with no stroke, no markers, no clip, and no
12993
- * element transform) with no DOM, no layout, and no measurement. Callers may
12994
- * supply an affine map to request the exact box in another user coordinate
12995
- * system, as defined by SVG 2 sections 8.2, 8.6, 8.7, and 8.10.
12996
- *
12997
- * ## Why the path-data string is the input
12998
- *
12999
- * `computeSplinePath` in `./geometry` is the single source of truth for
13000
- * what a point model *denotes*: it resolves curve type (linear, cubic,
13001
- * quadratic, arc, catmull-rom, basis, mixed), subpath breaks, closing
13002
- * segments, and the H/V/S/T shorthand demotions. Deriving bounds from a
13003
- * second, independent traversal of the point model would duplicate all
13004
- * of that and drift from it on the first generator change. So the model
13005
- * entry point (`splinePathBounds`) generates the same `d` the DOM gets
13006
- * and measures THAT — parity with the rendered geometry is structural,
13007
- * not coincidental.
13008
- *
13009
- * `pathDataBounds` is equally useful on its own for imported or
13010
- * hand-authored `d` strings, so both layers are public.
13011
- *
13012
- * ## Precision
13013
- *
13014
- * Cubic and quadratic extrema are exact (roots of the derivative).
13015
- * Elliptical-arc extrema are exact for the true ellipse. Browsers
13016
- * decompose arcs into ≤90° cubic Bézier approximations before measuring
13017
- * (Blink: `SVGPathNormalizer::DecomposeArcToCubic`), so a browser's
13018
- * `getBBox` can differ from the exact ellipse extent by the
13019
- * approximation error of that decomposition — bounded by roughly
13020
- * 2.7e-4 · r, and zero whenever the extremum lands on a segment
13021
- * endpoint or midpoint (the classic k = 4/3·tan(Δθ/4) construction
13022
- * interpolates both). The exact value is the spec-correct one, so this
13023
- * module reports it rather than reproducing the browser's
13024
- * approximation.
13025
- */
13026
-
13027
- /** Axis-aligned rectangle in the coordinate system of the path data. */
13028
- interface PathBoundsRect {
13029
- minX: number;
13030
- minY: number;
13031
- maxX: number;
13032
- maxY: number;
13033
- }
13034
- /** One-dimensional interval, the per-axis result of a curve extent. */
13035
- interface Extent1D {
13036
- min: number;
13037
- max: number;
13038
- }
13039
- /**
13040
- * Center parameterization of an elliptical arc — the form in which the
13041
- * arc's extrema are solvable. See SVG 2 Appendix B.2.2.
12648
+ * Center parameterization of an elliptical arc — the form in which the
12649
+ * arc's extrema are solvable. See SVG 2 Appendix B.2.2.
13042
12650
  */
13043
12651
  interface ArcCenterParameterization {
13044
12652
  /** Ellipse center, user space. */
@@ -13335,140 +12943,699 @@ declare function shapeLocalObjectBounds(shape: SerializedShape, host?: ShapeLoca
13335
12943
  /** Center of {@link shapeLocalObjectBounds}, sharing the same host contract. */
13336
12944
  declare function shapeLocalObjectCenter(shape: SerializedShape, host?: ShapeLocalObjectBoundsHost): Point | null;
13337
12945
 
13338
- type BoundsRect = PathBoundsRect;
13339
- type BoundsStatus = 'resolved' | 'empty' | 'unresolved' | 'cycle' | 'unsupported';
13340
- type BoundsDiagnosticCode = 'container-cycle' | 'reference-cycle' | 'unresolved-shape' | 'unresolved-reference-target' | 'unresolved-reference-pivot' | 'duplicate-shape-id' | 'invalid-svg-viewport' | 'unresolved-svg-viewport' | 'symbol-cycle' | 'unresolved-symbol-definition' | 'duplicate-library-id' | 'invalid-symbol-viewport' | 'unresolved-symbol-viewport' | 'unresolved-symbol-pivot' | 'unknown-symbol-variant' | 'ambiguous-symbol-override-target' | 'unresolved-symbol-override-target' | 'unsupported-shape' | 'deferred-tree-kind';
13341
- interface BoundsDiagnostic {
13342
- code: BoundsDiagnosticCode;
13343
- shapeId: string;
13344
- message: string;
13345
- path: readonly string[];
13346
- }
13347
- interface BoundsResult {
13348
- bounds: BoundsRect | null;
13349
- status: BoundsStatus;
13350
- diagnostics: readonly BoundsDiagnostic[];
13351
- }
13352
- type TextObjectBoundsMeasurement = BoundsRect | readonly BoundsRect[];
13353
- interface ShapeObjectBoundsHost {
13354
- /**
13355
- * SVG 2 section 8.10 defines text object bounds as the union of full glyph
13356
- * cells. Returning individual cells preserves exact extrema after shear.
13357
- * A single rectangle remains accepted for aggregate measurement hosts.
13358
- */
13359
- measureText?: (shape: SerializedShape, geometry: TextShapeGeometry) => TextObjectBoundsMeasurement | null;
13360
- }
13361
- interface DocumentBoundsHost extends ShapeObjectBoundsHost {
13362
- /**
13363
- * Replace the authored own matrix with a platform runtime projection.
13364
- *
13365
- * The editor uses this seam for active SMIL and CSS transform state that
13366
- * is intentionally not persisted in the document. Supplemental reference,
13367
- * symbol, and embedded-viewport placement remains owned by the tree walker.
13368
- */
13369
- resolveOwnTransform?: (shape: SerializedShape, authored: Affine2D) => Affine2D;
13370
- /** Runtime conditional-processing hook. `false` removes the branch. */
13371
- participatesInRendering?: (shape: SerializedShape) => boolean;
13372
- /**
13373
- * Runtime conditional-processing hook for a resolved symbol shadow root.
13374
- * Pure bounds already honor authored `display:none`; a host can additionally
13375
- * decide media-query, switch, or cascade participation without a DOM read.
13376
- */
13377
- participatesSymbolDefinition?: (definition: SymbolLibraryDef, instance: SerializedShape) => boolean;
13378
- /** Resolve non-px symbol/use lengths that require a platform metrics host. */
13379
- resolveSymbolLength?: SymbolViewportHost['resolveLength'];
12946
+ type SymbolViewportDiagnosticCode = 'invalid-symbol-length' | 'invalid-symbol-viewbox' | 'unresolved-symbol-viewport';
12947
+ interface SymbolViewportDiagnostic {
12948
+ code: SymbolViewportDiagnosticCode;
12949
+ message: string;
12950
+ }
12951
+ interface SymbolLengthContext {
12952
+ axis: 'x' | 'y' | 'width' | 'height' | 'refX' | 'refY';
12953
+ percentBasis?: number;
12954
+ }
12955
+ interface SymbolViewportHost {
12956
+ resolveLength?: (value: string, context: SymbolLengthContext) => number | null;
12957
+ }
12958
+ interface ResolvedSymbolViewport {
12959
+ readonly kind: 'symbol' | 'group';
12960
+ readonly renders: boolean;
12961
+ readonly useX: number;
12962
+ readonly useY: number;
12963
+ readonly useAttributes: Readonly<AuthoredUseGeometry>;
12964
+ /** Mapping after the use element's own transform. Includes use x/y and def root. */
12965
+ readonly contentMatrix: Affine2D;
12966
+ readonly childPercentBasis: SvgViewportSize | null;
12967
+ readonly viewport: ResolvedSvgViewport | null;
12968
+ readonly diagnostics: readonly SymbolViewportDiagnostic[];
12969
+ }
12970
+ /**
12971
+ * Resolve SVG 2 sections 5.4, 5.5.2, 8.2, and 8.6 through 8.8 for one
12972
+ * symbol instance. The use translation is on the right of its own transform;
12973
+ * this result intentionally starts after that own transform.
12974
+ */
12975
+ declare function resolveSymbolViewport(shape: SerializedShape, def: SymbolLibraryDef, parentViewport?: SvgViewportSize, host?: SymbolViewportHost): ResolvedSymbolViewport;
12976
+
12977
+ type BoundsRect = PathBoundsRect;
12978
+ type BoundsStatus = 'resolved' | 'empty' | 'unresolved' | 'cycle' | 'unsupported';
12979
+ type BoundsDiagnosticCode = 'container-cycle' | 'reference-cycle' | 'unresolved-shape' | 'unresolved-reference-target' | 'unresolved-reference-pivot' | 'duplicate-shape-id' | 'invalid-svg-viewport' | 'unresolved-svg-viewport' | 'symbol-cycle' | 'unresolved-symbol-definition' | 'duplicate-library-id' | 'invalid-symbol-viewport' | 'unresolved-symbol-viewport' | 'unresolved-symbol-pivot' | 'unknown-symbol-variant' | 'ambiguous-symbol-override-target' | 'unresolved-symbol-override-target' | 'unsupported-shape' | 'deferred-tree-kind';
12980
+ interface BoundsDiagnostic {
12981
+ code: BoundsDiagnosticCode;
12982
+ shapeId: string;
12983
+ message: string;
12984
+ path: readonly string[];
12985
+ }
12986
+ interface BoundsResult {
12987
+ bounds: BoundsRect | null;
12988
+ status: BoundsStatus;
12989
+ diagnostics: readonly BoundsDiagnostic[];
12990
+ }
12991
+ type TextObjectBoundsMeasurement = BoundsRect | readonly BoundsRect[];
12992
+ interface ShapeObjectBoundsHost {
12993
+ /**
12994
+ * SVG 2 section 8.10 defines text object bounds as the union of full glyph
12995
+ * cells. Returning individual cells preserves exact extrema after shear.
12996
+ * A single rectangle remains accepted for aggregate measurement hosts.
12997
+ */
12998
+ measureText?: (shape: SerializedShape, geometry: TextShapeGeometry) => TextObjectBoundsMeasurement | null;
12999
+ }
13000
+ interface DocumentBoundsHost extends ShapeObjectBoundsHost {
13001
+ /**
13002
+ * Replace the authored own matrix with a platform runtime projection.
13003
+ *
13004
+ * The editor uses this seam for active SMIL and CSS transform state that
13005
+ * is intentionally not persisted in the document. Supplemental reference,
13006
+ * symbol, and embedded-viewport placement remains owned by the tree walker.
13007
+ */
13008
+ resolveOwnTransform?: (shape: SerializedShape, authored: Affine2D) => Affine2D;
13009
+ /** Runtime conditional-processing hook. `false` removes the branch. */
13010
+ participatesInRendering?: (shape: SerializedShape) => boolean;
13011
+ /**
13012
+ * Runtime conditional-processing hook for a resolved symbol shadow root.
13013
+ * Pure bounds already honor authored `display:none`; a host can additionally
13014
+ * decide media-query, switch, or cascade participation without a DOM read.
13015
+ */
13016
+ participatesSymbolDefinition?: (definition: SymbolLibraryDef, instance: SerializedShape) => boolean;
13017
+ /** Resolve non-px symbol/use lengths that require a platform metrics host. */
13018
+ resolveSymbolLength?: SymbolViewportHost['resolveLength'];
13019
+ }
13020
+ interface DocumentBoundsView {
13021
+ roots(): readonly SerializedShape[];
13022
+ shape(id: string): SerializedShape | undefined;
13023
+ duplicateShapeIds?(): ReadonlySet<string>;
13024
+ libraryDefinition?(id: string): LibraryDef | undefined;
13025
+ duplicateLibraryIds?(): ReadonlySet<string>;
13026
+ children(shape: SerializedShape): readonly SerializedShape[];
13027
+ }
13028
+ interface DocumentBoundsOptions {
13029
+ toTarget?: Affine2D;
13030
+ parentViewport?: SvgViewportSize;
13031
+ }
13032
+ /**
13033
+ * Compute exact SVG object bounds for one registry geometry leaf in an
13034
+ * arbitrary target coordinate system. Own authored transforms are not added;
13035
+ * callers pass the complete affine that maps local geometry into the target.
13036
+ */
13037
+ declare function shapeObjectBoundsInSpace(shape: SerializedShape, toTarget: Affine2D, host?: ShapeObjectBoundsHost): BoundsResult;
13038
+ /**
13039
+ * Read-only snapshot adapter. `sceneTree` is document authority when present;
13040
+ * inline `state.children` is the maintained compatibility projection and the
13041
+ * fallback for older snapshots and unplaced hostile input.
13042
+ */
13043
+ declare function snapshotBoundsView(snapshot: HistorySnapshot): DocumentBoundsView;
13044
+ interface EmbeddedSvgViewportOverride {
13045
+ width?: number;
13046
+ height?: number;
13047
+ }
13048
+ interface EmbeddedSvgTransformResult {
13049
+ matrix: Affine2D;
13050
+ attribute: string | null;
13051
+ pivotRequired: boolean;
13052
+ pivotResolved: boolean;
13053
+ viewport: ResolvedSvgViewport;
13054
+ }
13055
+ /** Resolve the transform outside an embedded SVG viewport. */
13056
+ declare function resolveEmbeddedSvgTransform(shape: SerializedShape, parentViewport?: SvgViewportSize, override?: EmbeddedSvgViewportOverride): EmbeddedSvgTransformResult;
13057
+ /** Resolve the authored viewport frame used by editor selection and resizing. */
13058
+ declare function resolveEmbeddedSvgViewportFrameBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
13059
+ interface ShapeReferenceTransformResult {
13060
+ matrix: Affine2D;
13061
+ attribute: string | null;
13062
+ pivotRequired: boolean;
13063
+ pivotResolved: boolean;
13064
+ diagnostics: readonly BoundsDiagnostic[];
13065
+ }
13066
+ interface SymbolInstanceTransformResult {
13067
+ matrix: Affine2D;
13068
+ attribute: string | null;
13069
+ pivotRequired: boolean;
13070
+ pivotResolved: boolean;
13071
+ diagnostics: readonly BoundsDiagnostic[];
13072
+ }
13073
+ /** Resolve one shape subtree by object or document id. */
13074
+ declare function resolveShapeObjectBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
13075
+ /**
13076
+ * Resolve an element's object box in its own user coordinate system.
13077
+ *
13078
+ * The subject's authored transform is excluded while descendant transforms,
13079
+ * viewport mappings, references, and symbol placement remain authoritative.
13080
+ * This is the reference box CSS Transforms calls fill-box/content-box.
13081
+ */
13082
+ declare function resolveShapeLocalObjectBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: Pick<DocumentBoundsOptions, 'parentViewport'>, host?: DocumentBoundsHost): BoundsResult;
13083
+ /**
13084
+ * Resolve the use element's own transform for renderer parity.
13085
+ *
13086
+ * Canonical matrices need no geometry. Deprecated rotation/scale/skew
13087
+ * channels use the translated shadow subtree center, matching the bounds
13088
+ * walk instead of fabricating a pivot from non-authoritative width/height.
13089
+ */
13090
+ declare function resolveShapeReferenceTransform(view: DocumentBoundsView, shape: SerializedShape, host?: DocumentBoundsHost, parentViewport?: SvgViewportSize): ShapeReferenceTransformResult;
13091
+ /**
13092
+ * Resolve the transform emitted on one symbol-instance use element. SVG 2
13093
+ * section 5.5.2 orders imported use transform, canonical or legacy instance
13094
+ * transform, and then the supplemental x/y translation into the shadow tree.
13095
+ */
13096
+ declare function resolveSymbolInstanceTransform(view: DocumentBoundsView, shape: SerializedShape, host?: DocumentBoundsHost, parentViewport?: SvgViewportSize): SymbolInstanceTransformResult;
13097
+ /** Union every snapshot root in the requested target coordinate system. */
13098
+ declare function documentObjectBounds(view: DocumentBoundsView, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
13099
+ interface InlineContainerTransformResult {
13100
+ transform: ResolvedContainerTransform;
13101
+ contentBounds: BoundsResult | null;
13102
+ pivotRequired: boolean;
13103
+ pivotResolved: boolean;
13104
+ }
13105
+ /**
13106
+ * Resolve a serialized container's emitted transform from its inline content.
13107
+ * Renderers use this same local-content walk as analytic bounds so legacy
13108
+ * rotation/scale/skew channels cannot silently choose a different pivot.
13109
+ */
13110
+ declare function resolveInlineContainerTransform(shape: SerializedShape, host?: DocumentBoundsHost): InlineContainerTransformResult;
13111
+
13112
+ /**
13113
+ * Symbol-instance resolution - the single definition of what a
13114
+ * `symbol-instance` shape points at.
13115
+ *
13116
+ * A `symbol-instance` renders as `<use href="#target">` (SVG 2 §5.6), and
13117
+ * the target is not always the library def's own id. Variants and
13118
+ * per-instance overrides have no representation in the library - a
13119
+ * `SymbolLibraryDef` carries every variant's shapes, but which one an
13120
+ * instance selects, and what its overrides do to them, is instance state.
13121
+ * The renderer therefore MATERIALIZES a `<symbol>` per referenced
13122
+ * (def, variant, override) combination under a synthetic id:
13123
+ *
13124
+ * - no variant, no overrides -> `<def id>` (the library def)
13125
+ * - variant `state=hover` -> `<def id>--state_hover`
13126
+ * - any overrides -> `<def id>--ovr-<instance id>`
13127
+ *
13128
+ * Two call sites depend on that mapping and MUST agree on it, or a `<use>`
13129
+ * points at a def that was never emitted:
13130
+ *
13131
+ * 1. `renderShape` (shape-renderers.ts) writes the `<use href>`.
13132
+ * 2. `renderSymbolDefs` (svg-renderer.ts) emits the `<symbol>` bodies.
13133
+ *
13134
+ * They agree because both go through this module. `targetId` and
13135
+ * `resolveShapes` are two halves of one decision - the `--ovr-` id is
13136
+ * exactly the case where overrides are applied, the `--<variant>` id
13137
+ * exactly the case where a variant array replaces `def.shapes` - so they
13138
+ * live together and are never re-derived elsewhere.
13139
+ *
13140
+ * Dependency-free apart from types, so both the shape dispatcher and the
13141
+ * document renderer can import it without an import cycle.
13142
+ *
13143
+ * @packageDocumentation
13144
+ */
13145
+
13146
+ type SymbolResolutionDiagnosticCode = 'unknown-symbol-variant' | 'ambiguous-symbol-override-target' | 'unresolved-symbol-override-target';
13147
+ interface SymbolResolutionDiagnostic {
13148
+ code: SymbolResolutionDiagnosticCode;
13149
+ shapeId: string;
13150
+ message: string;
13151
+ }
13152
+ interface ResolvedSymbolInstanceContent {
13153
+ readonly shapes: readonly SerializedShape[];
13154
+ readonly requestedVariantKey: string;
13155
+ readonly effectiveVariantKey: string;
13156
+ readonly candidateTargetId: string;
13157
+ readonly materializationKey: string;
13158
+ readonly materialized: boolean;
13159
+ readonly diagnostics: readonly SymbolResolutionDiagnostic[];
13160
+ }
13161
+ /** Resolve variant selection and recursive immutable overrides once for every surface. */
13162
+ declare function resolveSymbolInstanceContent(def: SymbolLibraryDef, instance: SerializedShape): ResolvedSymbolInstanceContent;
13163
+ /**
13164
+ * The `<symbol>` id an instance's `<use href>` resolves to.
13165
+ *
13166
+ * Mirrors the editor-side `exportSymbolInstances` in
13167
+ * `apps/editor/src/canvas/svg-export-finalizer.ts` so an editor export and
13168
+ * a headless render of the same document target the same ids.
13169
+ *
13170
+ * `dedicated` forces the per-instance `--ovr-` id even without
13171
+ * overrides — the animated-export policy for instances driven by an
13172
+ * `instanceVariant` timeline track, whose injected variant-transition
13173
+ * animations must not bleed into sibling instances of the same def. The
13174
+ * editor's animated export materializes those dedicated defs and passes
13175
+ * the flag here so its `<use href>` retargeting and the def id agree.
13176
+ */
13177
+ declare function symbolInstanceTargetId(instance: SerializedShape, dedicated?: boolean): string;
13178
+ /**
13179
+ * The shapes that make up the `<symbol>` body an instance resolves to:
13180
+ * the selected variant (falling back to `def.shapes`, the default
13181
+ * variant, when the key is absent or unknown) with the instance's
13182
+ * per-shape overrides merged on top.
13183
+ *
13184
+ * Overrides are keyed by INNER shape id and merge shallowly into that
13185
+ * shape's state, which is what keeps the inner ids - and therefore any
13186
+ * shape-derived def ids such as `filter-<id>` - stable across
13187
+ * materializations.
13188
+ */
13189
+ declare function resolveSymbolInstanceShapes(def: SymbolLibraryDef, instance: SerializedShape): SerializedShape[];
13190
+
13191
+ type SymbolMaterializationDiagnosticCode = SymbolResolutionDiagnosticCode | 'unresolved-symbol-definition' | 'duplicate-library-id' | 'symbol-cycle';
13192
+ interface SymbolMaterializationDiagnostic {
13193
+ readonly code: SymbolMaterializationDiagnosticCode;
13194
+ readonly shapeId: string;
13195
+ readonly message: string;
13196
+ }
13197
+ interface SymbolMaterialization {
13198
+ readonly materializationKey: string;
13199
+ readonly targetId: string;
13200
+ readonly candidateTargetId: string;
13201
+ readonly definition: SymbolLibraryDef;
13202
+ readonly shapes: readonly SerializedShape[];
13203
+ readonly parentViewport?: Readonly<SvgViewportSize>;
13204
+ readonly viewport: ResolvedSymbolViewport;
13205
+ }
13206
+ interface SymbolInstanceMaterialization {
13207
+ readonly targetId: string | null;
13208
+ readonly definition: SymbolLibraryDef | null;
13209
+ readonly materializationKey: string | null;
13210
+ /** Final occurrence-local materialization used by every render surface. */
13211
+ readonly materialization: SymbolMaterialization | null;
13212
+ readonly diagnostics: readonly SymbolMaterializationDiagnostic[];
13213
+ readonly parentViewport?: Readonly<SvgViewportSize>;
13214
+ readonly viewport: ResolvedSymbolViewport | null;
13215
+ }
13216
+ interface SymbolMaterializationPlan {
13217
+ readonly materializations: readonly SymbolMaterialization[];
13218
+ readonly diagnostics: readonly SymbolMaterializationDiagnostic[];
13219
+ resolve(instance: SerializedShape): SymbolInstanceMaterialization | undefined;
13220
+ }
13221
+ interface SymbolMaterializationPlanOptions {
13222
+ readonly reservedIds?: ReadonlySet<string>;
13223
+ readonly parentViewport?: Readonly<SvgViewportSize>;
13224
+ readonly viewportHost?: SymbolViewportHost;
13225
+ /**
13226
+ * Per-occurrence render policy supplied by a document surface.
13227
+ *
13228
+ * An `instanceVariant` animation starts from its first keyed state and
13229
+ * needs a dedicated target so injected animation never changes sibling
13230
+ * instances that otherwise share the same definition.
13231
+ */
13232
+ readonly instancePolicy?: (instance: SerializedShape) => {
13233
+ readonly initialVariantKey?: string;
13234
+ readonly dedicated?: boolean;
13235
+ } | undefined;
13236
+ }
13237
+ /**
13238
+ * Build the complete SVG 2 section 5.5 shadow-tree materialization plan for
13239
+ * one document. Cycle identity is semantic definition + variant + override
13240
+ * content, so finite cross-variant recursion remains legal while an actual
13241
+ * repeated shadow root is pruned before markup emission.
13242
+ */
13243
+ declare function buildSymbolMaterializationPlan(library: readonly LibraryDef[], roots: readonly SerializedShape[], options?: SymbolMaterializationPlanOptions): SymbolMaterializationPlan;
13244
+
13245
+ /**
13246
+ * Reachability walk over the shapes a rendered document actually paints.
13247
+ *
13248
+ * `<defs>` emission is reference-driven: a def is emitted only when
13249
+ * something in the rendered output points at it with `url(#id)`. Getting
13250
+ * that set right means walking more than the top-level shape array,
13251
+ * because two nesting mechanisms put `url(#…)` references into the output
13252
+ * without a top-level shape carrying them:
13253
+ *
13254
+ * 1. **Container children.** `<g>`, `<a>`, `<switch>` and nested `<svg>`
13255
+ * render `state.children` inline (see `renderContainerChildren` in
13256
+ * shape-renderers.ts), so a child's fill / filter / marker reference
13257
+ * is live in the document.
13258
+ * 2. **Library def contents.** A `<symbol>` or `<marker>` def emits its
13259
+ * inner shapes verbatim, so those shapes' references are live too -
13260
+ * SVG 2 §5.5 resolves them against the document `<defs>`, not against
13261
+ * any def-local scope.
13262
+ *
13263
+ * Both are transitive: a symbol's inner shape can be a group whose child
13264
+ * instantiates another symbol. Reachability is therefore a fixpoint, and
13265
+ * a symbol that (directly or indirectly) instantiates itself must not
13266
+ * spin - each def's contents are expanded at most once.
13267
+ *
13268
+ * This module is intentionally dependency-free apart from types so that
13269
+ * both `library-renderers.ts` (which emits the defs) and
13270
+ * `shape-renderers.ts` (which emits built-in `<marker>` defs) can share
13271
+ * one definition of "reachable" without an import cycle. The editor's
13272
+ * live `<defs>` reconciler (`MarkerManager`) shares it too, through
13273
+ * `forEachShapeInLibraryDefs` - which is what stops the canvas and the
13274
+ * exported file from disagreeing about which defs a document needs.
13275
+ *
13276
+ * @packageDocumentation
13277
+ */
13278
+
13279
+ /**
13280
+ * Id → def lookup for the reachability walks.
13281
+ *
13282
+ * A caller that already owns a keyed store of its defs (the editor's
13283
+ * `LibraryRegistry` is exactly such a map) can hand it straight to the
13284
+ * walkers instead of paying to rebuild an index per call - which matters
13285
+ * because the editor runs `collectReferencedMarkerIds` on the animation
13286
+ * path.
13287
+ */
13288
+ type LibraryIndex = ReadonlyMap<string, LibraryDef>;
13289
+ /** Accept either the array form or a prebuilt index. */
13290
+ type LibrarySource = readonly LibraryDef[] | LibraryIndex;
13291
+ /**
13292
+ * Call `visit` once for every shape whose rendered form can appear in the
13293
+ * document: each top-level shape, every container descendant, and the
13294
+ * inner shapes (plus symbol variants) of the `<symbol>` / `<marker>`
13295
+ * library defs those shapes reach.
13296
+ *
13297
+ * Visit order is deterministic and stable: top-level shapes in document
13298
+ * order first, then the transitive frontier discovered from them. Callers
13299
+ * whose output order depends on discovery order can rely on that - and on
13300
+ * the fact that the top-level prefix is exactly the pre-transitive walk.
13301
+ *
13302
+ * `visit` may be called more than once for the same shape only if the
13303
+ * document itself contains it more than once (e.g. two symbols sharing an
13304
+ * inner shape object); accumulating callers should be idempotent.
13305
+ *
13306
+ * @param shapes Top-level shapes of the rendered document.
13307
+ * @param library Library defs available for reference resolution. Pass an
13308
+ * empty array to walk containers only.
13309
+ * @param visit Callback invoked per reachable shape.
13310
+ */
13311
+ declare function forEachReachableShape(shapes: readonly SerializedShape[], library: LibrarySource, visit: (shape: SerializedShape) => void): void;
13312
+ /**
13313
+ * Same walk, seeded from library def ids rather than from shapes: visits
13314
+ * the contents of each named `<symbol>` / `<marker>` def and everything
13315
+ * those contents transitively reach.
13316
+ *
13317
+ * This is the half of reachability that a LIVE editor cannot answer from
13318
+ * its shape registry. Symbol-instance content is materialized as
13319
+ * temporary shapes that never enter the registry or the scene graph, so
13320
+ * a document-side walk sees the `symbolId` but nothing inside it. Seeding
13321
+ * from the def ids the document reaches recovers exactly the missing
13322
+ * frontier, and - because it is the same engine the export collector runs
13323
+ * - recovers it with identical nesting, variant, and cycle semantics.
13324
+ *
13325
+ * Ids that are absent from `library`, or that name a def with no contents
13326
+ * (paint servers, filters), are skipped.
13327
+ */
13328
+ declare function forEachShapeInLibraryDefs(rootDefIds: Iterable<string>, library: LibrarySource, visit: (shape: SerializedShape) => void): void;
13329
+ /**
13330
+ * Marker ids a single shape's state puts into the rendered output: the
13331
+ * three explicit `marker-*` refs, plus the built-in ids the legacy
13332
+ * `startEndpoint` / `endEndpoint` dropdowns resolve to (`Line` and
13333
+ * `Path` fold those into their painted refs - see
13334
+ * `endpointMarkerAttributes` in codegen/helpers.ts and
13335
+ * `Line.getEffectiveMarkerRefs()` in the editor).
13336
+ *
13337
+ * One definition, shared by the export collector and by the editor's live
13338
+ * `<defs>` reconciler, so the two cannot disagree about what a given
13339
+ * state means.
13340
+ */
13341
+ declare function forEachMarkerRefInState(state: SerializedShape['state'] | Record<string, unknown> | undefined, visit: (markerId: string) => void): void;
13342
+ /** The built-in `<marker>` id a legacy endpoint name resolves to. */
13343
+ declare function legacyEndpointMarkerId(endpoint: string): string;
13344
+ /**
13345
+ * Library def ids a single shape's state references: fill / stroke paint
13346
+ * servers, the filter chain, the marker refs, and the symbol it
13347
+ * instantiates.
13348
+ *
13349
+ * Mirrors the reference set `collectReferencedLibraryDefs` scans per
13350
+ * shape, including the legacy fallbacks - an inline `fillGradient`
13351
+ * payload with no `fillLibraryId` still names a def, and a populated
13352
+ * `filters` array with no `filterLibraryIds` names the shape-derived
13353
+ * `filter-<shapeId>`. It reports RAW ids and makes no library lookup, so
13354
+ * a caller can use it against a live document whose defs are stored
13355
+ * somewhere other than a `LibraryDef[]`.
13356
+ *
13357
+ * Deliberately NOT shared with `collectReferencedLibraryDefs` itself:
13358
+ * that function has to decide, per id, between emitting the library
13359
+ * entry and synthesizing a transient def from the inline payload, and
13360
+ * the order in which it resolves the two is observable in the emitted
13361
+ * `<defs>`. Keeping the two separate leaves that byte-order contract
13362
+ * untouched; that they agree on the reference SET is enforced by test
13363
+ * rather than by shared code.
13364
+ */
13365
+ declare function forEachLibraryRefInState(state: SerializedShape['state'] | Record<string, unknown> | undefined, shapeId: string, visit: (libraryId: string) => void): void;
13366
+ /**
13367
+ * Marker references found by walking a document, split the way
13368
+ * `renderBuiltinMarkerDefs` consumes them:
13369
+ * - `ids`: raw marker ids from `state.markerStart` / `markerMid` /
13370
+ * `markerEnd` - built-in (`mkr-builtin-arrow`, `line-marker-arrow`)
13371
+ * or user marker ids.
13372
+ * - `legacyEndpoints`: endpoint names from `state.startEndpoint` /
13373
+ * `endEndpoint` (e.g. `'arrow'`), which `Line` / `Path` emit as a
13374
+ * shortcut to built-in markers without explicit `marker-*` attrs.
13375
+ */
13376
+ interface MarkerReferenceSets {
13377
+ ids: Set<string>;
13378
+ legacyEndpoints: Set<string>;
13379
+ }
13380
+ /**
13381
+ * Walk a document for marker references. Reachability, not just the top
13382
+ * level: container children render inline and `<symbol>` / `<marker>`
13383
+ * inner shapes emit verbatim, so a `marker-start="url(#line-marker-arrow)"`
13384
+ * written from inside a symbol needs its built-in def as much as a
13385
+ * top-level one does.
13386
+ */
13387
+ declare function collectMarkerReferences(shapes: readonly SerializedShape[], library?: LibrarySource): MarkerReferenceSets;
13388
+ /**
13389
+ * Every `<marker>` id a rendered document needs a def for, as one flat
13390
+ * set: the raw `marker-*` refs plus the built-in ids the legacy endpoint
13391
+ * dropdowns resolve to.
13392
+ *
13393
+ * This is the reference answer to "which markers must be in `<defs>`?".
13394
+ * The editor's live reconciler computes the same set incrementally from
13395
+ * its model; that the two agree is what keeps canvas and export from
13396
+ * diverging.
13397
+ */
13398
+ declare function collectReferencedMarkerIds(shapes: readonly SerializedShape[], library: LibrarySource): Set<string>;
13399
+
13400
+ type PresentationValueReader = (key: string) => unknown;
13401
+ interface PresentationSemanticContext {
13402
+ shapeId: string;
13403
+ includeAuthoredAttributes?: boolean;
13404
+ includeContainerPresentation?: boolean;
13405
+ retainCssAnimationDeclarations?: boolean;
13406
+ /**
13407
+ * The live editor projects resolved static stylesheet values inline so its
13408
+ * structural scaffolding cannot alter selector matching. Serialized SVG
13409
+ * renderers leave both stylesheet channels to the canonical stylesheet.
13410
+ */
13411
+ projectStaticStylesheetValues?: boolean;
13412
+ }
13413
+ interface PresentationWrite {
13414
+ channel: 'attribute' | 'style';
13415
+ name: string;
13416
+ value: string | number | null;
13417
+ allowEmpty?: boolean;
13418
+ ifAbsent?: boolean;
13419
+ }
13420
+ interface PresentationSemanticEntry {
13421
+ id: string;
13422
+ keys: readonly string[];
13423
+ project: (read: PresentationValueReader, context: PresentationSemanticContext) => readonly PresentationWrite[];
13424
+ }
13425
+ /**
13426
+ * Ordered common-presentation semantics shared by headless rendering,
13427
+ * component code generation, and the editor's incremental apply layer.
13428
+ *
13429
+ * Order is part of the contract. The dash row follows linecap so dotted
13430
+ * style can make the final cap round, and unmodeled authored attributes
13431
+ * remain the final row so typed state keeps one deterministic owner.
13432
+ */
13433
+ declare const PRESENTATION_SEMANTICS: readonly [{
13434
+ readonly id: "fill";
13435
+ readonly keys: readonly ["fillColor", "fillType", "fillGradient", "fillLibraryId", "inheritFill", "authoredFillPaint"];
13436
+ readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
13437
+ }, {
13438
+ readonly id: "element-opacity";
13439
+ readonly keys: readonly ["opacity", "preserveOpacity"];
13440
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13441
+ }, {
13442
+ readonly id: "fill-opacity";
13443
+ readonly keys: readonly ["fillOpacity", "preserveFillOpacity", "fillType", "fillGradient", "inheritFill"];
13444
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13445
+ }, {
13446
+ readonly id: "fill-rule";
13447
+ readonly keys: readonly ["fillRule"];
13448
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13449
+ }, {
13450
+ readonly id: "stroke";
13451
+ readonly keys: readonly ["borderColor", "strokeType", "strokeGradient", "strokeLibraryId", "inheritStroke", "authoredStrokePaint"];
13452
+ readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
13453
+ }, {
13454
+ readonly id: "stroke-width";
13455
+ readonly keys: readonly ["borderWidth"];
13456
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13457
+ }, {
13458
+ readonly id: "stroke-opacity";
13459
+ readonly keys: readonly ["strokeOpacity", "preserveStrokeOpacity", "strokeType", "strokeGradient", "inheritStroke"];
13460
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13461
+ }, {
13462
+ readonly id: "blend-mode";
13463
+ readonly keys: readonly ["blendMode"];
13464
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13465
+ }, {
13466
+ readonly id: "paint-order";
13467
+ readonly keys: readonly ["paintOrder"];
13468
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13469
+ }, {
13470
+ readonly id: "inline-style";
13471
+ readonly keys: readonly ["inlineStyle"];
13472
+ readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
13473
+ }, {
13474
+ readonly id: "markers";
13475
+ readonly keys: readonly ["markerStart", "markerMid", "markerEnd"];
13476
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13477
+ }, {
13478
+ readonly id: "stroke-linejoin";
13479
+ readonly keys: readonly ["strokeLinejoin"];
13480
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13481
+ }, {
13482
+ readonly id: "stroke-linecap";
13483
+ readonly keys: readonly ["strokeLinecap"];
13484
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13485
+ }, {
13486
+ readonly id: "stroke-miterlimit";
13487
+ readonly keys: readonly ["strokeMiterlimit"];
13488
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13489
+ }, {
13490
+ readonly id: "stroke-dasharray";
13491
+ readonly keys: readonly ["lineStyle", "dashLength", "gapLength", "strokeDasharray", "strokeLinecap"];
13492
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13493
+ }, {
13494
+ readonly id: "stroke-dashoffset";
13495
+ readonly keys: readonly ["dashOffset"];
13496
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13497
+ }, {
13498
+ readonly id: "shape-rendering";
13499
+ readonly keys: readonly ["shapeRendering"];
13500
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13501
+ }, {
13502
+ readonly id: "text-rendering";
13503
+ readonly keys: readonly ["textRendering"];
13504
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13505
+ }, {
13506
+ readonly id: "image-rendering";
13507
+ readonly keys: readonly ["imageRendering"];
13508
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13509
+ }, {
13510
+ readonly id: "color-rendering";
13511
+ readonly keys: readonly ["colorRendering"];
13512
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13513
+ }, {
13514
+ readonly id: "color-interpolation";
13515
+ readonly keys: readonly ["colorInterpolation"];
13516
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13517
+ }, {
13518
+ readonly id: "filter";
13519
+ readonly keys: readonly ["filters", "filterLibraryIds"];
13520
+ readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
13521
+ }, {
13522
+ readonly id: "system-language";
13523
+ readonly keys: readonly ["systemLanguage"];
13524
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13525
+ }, {
13526
+ readonly id: "required-extensions";
13527
+ readonly keys: readonly ["requiredExtensions"];
13528
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13529
+ }, {
13530
+ readonly id: "vector-effect";
13531
+ readonly keys: readonly ["vectorEffect"];
13532
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13533
+ }, {
13534
+ readonly id: "visibility";
13535
+ readonly keys: readonly ["visibility"];
13536
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13537
+ }, {
13538
+ readonly id: "display";
13539
+ readonly keys: readonly ["displayAttr"];
13540
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13541
+ }, {
13542
+ readonly id: "visible";
13543
+ readonly keys: readonly ["visible"];
13544
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13545
+ }, {
13546
+ readonly id: "path-length";
13547
+ readonly keys: readonly ["pathLength"];
13548
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13549
+ }, {
13550
+ readonly id: "transform-box";
13551
+ readonly keys: readonly ["transformBox"];
13552
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13553
+ }, {
13554
+ readonly id: "transform";
13555
+ readonly keys: readonly ["rotation", "transformMatrix", "translateX", "translateY", "skewX", "skewY", "scaleX", "scaleY", "customPivot", "rawTransform"];
13556
+ readonly project: () => never[];
13557
+ }, {
13558
+ readonly id: "locked";
13559
+ readonly keys: readonly ["locked"];
13560
+ readonly project: () => never[];
13561
+ }, {
13562
+ readonly id: "metadata";
13563
+ readonly keys: readonly ["metadata"];
13564
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13565
+ }, {
13566
+ readonly id: "css-clip-path";
13567
+ readonly keys: readonly ["cssClipPath"];
13568
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13569
+ }, {
13570
+ readonly id: "css-mask-properties";
13571
+ readonly keys: readonly ["cssMaskProperties"];
13572
+ readonly project: (read: PresentationValueReader) => PresentationWrite[];
13573
+ }, {
13574
+ readonly id: "container-presentation";
13575
+ readonly keys: readonly ["containerPresentation"];
13576
+ readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
13577
+ }, {
13578
+ readonly id: "authored-attributes";
13579
+ readonly keys: readonly ["authoredAttributes"];
13580
+ readonly project: (read: PresentationValueReader, context: PresentationSemanticContext) => PresentationWrite[];
13581
+ }];
13582
+ type PresentationSemanticId = (typeof PRESENTATION_SEMANTICS)[number]['id'];
13583
+ declare function projectPresentationEntry(entry: PresentationSemanticEntry, read: PresentationValueReader, context: PresentationSemanticContext): readonly PresentationWrite[];
13584
+ declare function projectPresentation(read: PresentationValueReader, context: PresentationSemanticContext): PresentationWrite[];
13585
+ declare function serializedPresentationReader(state: SerializedShapeState): PresentationValueReader;
13586
+
13587
+ type DefinitionAttribute = readonly [name: string, value: string | number];
13588
+ interface GradientStopEnvelope {
13589
+ attributes: readonly DefinitionAttribute[];
13380
13590
  }
13381
- interface DocumentBoundsView {
13382
- roots(): readonly SerializedShape[];
13383
- shape(id: string): SerializedShape | undefined;
13384
- duplicateShapeIds?(): ReadonlySet<string>;
13385
- libraryDefinition?(id: string): LibraryDef | undefined;
13386
- duplicateLibraryIds?(): ReadonlySet<string>;
13387
- children(shape: SerializedShape): readonly SerializedShape[];
13591
+ interface GradientDefinitionEnvelope {
13592
+ element: 'linearGradient' | 'radialGradient';
13593
+ attributes: readonly DefinitionAttribute[];
13594
+ stops: readonly GradientStopEnvelope[];
13388
13595
  }
13389
- interface DocumentBoundsOptions {
13390
- toTarget?: Affine2D;
13391
- parentViewport?: SvgViewportSize;
13596
+ interface PatternDefinitionEnvelope {
13597
+ attributes: readonly DefinitionAttribute[];
13598
+ content: string;
13392
13599
  }
13393
- /**
13394
- * Compute exact SVG object bounds for one registry geometry leaf in an
13395
- * arbitrary target coordinate system. Own authored transforms are not added;
13396
- * callers pass the complete affine that maps local geometry into the target.
13397
- */
13398
- declare function shapeObjectBoundsInSpace(shape: SerializedShape, toTarget: Affine2D, host?: ShapeObjectBoundsHost): BoundsResult;
13399
- /**
13400
- * Read-only snapshot adapter. `sceneTree` is document authority when present;
13401
- * inline `state.children` is the maintained compatibility projection and the
13402
- * fallback for older snapshots and unplaced hostile input.
13403
- */
13404
- declare function snapshotBoundsView(snapshot: HistorySnapshot): DocumentBoundsView;
13405
- interface EmbeddedSvgViewportOverride {
13406
- width?: number;
13407
- height?: number;
13600
+ type FilterColorInterpolation = 'auto' | 'sRGB' | 'linearRGB';
13601
+ type FilterUnits = 'userSpaceOnUse' | 'objectBoundingBox';
13602
+ interface FilterElementAttrs {
13603
+ colorInterpolation?: FilterColorInterpolation | null;
13604
+ filterUnits?: FilterUnits;
13605
+ primitiveUnits?: FilterUnits;
13606
+ x?: string;
13607
+ y?: string;
13608
+ width?: string;
13609
+ height?: string;
13408
13610
  }
13409
- interface EmbeddedSvgTransformResult {
13410
- matrix: Affine2D;
13411
- attribute: string | null;
13412
- pivotRequired: boolean;
13413
- pivotResolved: boolean;
13414
- viewport: ResolvedSvgViewport;
13611
+ interface FilterEnvelopeBase {
13612
+ attributes: readonly DefinitionAttribute[];
13415
13613
  }
13416
- /** Resolve the transform outside an embedded SVG viewport. */
13417
- declare function resolveEmbeddedSvgTransform(shape: SerializedShape, parentViewport?: SvgViewportSize, override?: EmbeddedSvgViewportOverride): EmbeddedSvgTransformResult;
13418
- /** Resolve the authored viewport frame used by editor selection and resizing. */
13419
- declare function resolveEmbeddedSvgViewportFrameBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
13420
- interface ShapeReferenceTransformResult {
13421
- matrix: Affine2D;
13422
- attribute: string | null;
13423
- pivotRequired: boolean;
13424
- pivotResolved: boolean;
13425
- diagnostics: readonly BoundsDiagnostic[];
13614
+ interface RawFilterEnvelope extends FilterEnvelopeBase {
13615
+ kind: 'raw';
13616
+ content: string;
13426
13617
  }
13427
- interface SymbolInstanceTransformResult {
13428
- matrix: Affine2D;
13429
- attribute: string | null;
13430
- pivotRequired: boolean;
13431
- pivotResolved: boolean;
13432
- diagnostics: readonly BoundsDiagnostic[];
13618
+ interface PrimitiveChainFilterEnvelope extends FilterEnvelopeBase {
13619
+ kind: 'primitive-chain';
13620
+ chain: SvgPrimitiveChainFilter;
13433
13621
  }
13434
- /** Resolve one shape subtree by object or document id. */
13435
- declare function resolveShapeObjectBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
13436
- /**
13437
- * Resolve an element's object box in its own user coordinate system.
13438
- *
13439
- * The subject's authored transform is excluded while descendant transforms,
13440
- * viewport mappings, references, and symbol placement remain authoritative.
13441
- * This is the reference box CSS Transforms calls fill-box/content-box.
13442
- */
13443
- declare function resolveShapeLocalObjectBounds(view: DocumentBoundsView, shapeOrId: SerializedShape | string, options?: Pick<DocumentBoundsOptions, 'parentViewport'>, host?: DocumentBoundsHost): BoundsResult;
13444
- /**
13445
- * Resolve the use element's own transform for renderer parity.
13446
- *
13447
- * Canonical matrices need no geometry. Deprecated rotation/scale/skew
13448
- * channels use the translated shadow subtree center, matching the bounds
13449
- * walk instead of fabricating a pivot from non-authoritative width/height.
13450
- */
13451
- declare function resolveShapeReferenceTransform(view: DocumentBoundsView, shape: SerializedShape, host?: DocumentBoundsHost, parentViewport?: SvgViewportSize): ShapeReferenceTransformResult;
13452
- /**
13453
- * Resolve the transform emitted on one symbol-instance use element. SVG 2
13454
- * section 5.5.2 orders imported use transform, canonical or legacy instance
13455
- * transform, and then the supplemental x/y translation into the shadow tree.
13456
- */
13457
- declare function resolveSymbolInstanceTransform(view: DocumentBoundsView, shape: SerializedShape, host?: DocumentBoundsHost, parentViewport?: SvgViewportSize): SymbolInstanceTransformResult;
13458
- /** Union every snapshot root in the requested target coordinate system. */
13459
- declare function documentObjectBounds(view: DocumentBoundsView, options?: DocumentBoundsOptions, host?: DocumentBoundsHost): BoundsResult;
13460
- interface InlineContainerTransformResult {
13461
- transform: ResolvedContainerTransform;
13462
- contentBounds: BoundsResult | null;
13463
- pivotRequired: boolean;
13464
- pivotResolved: boolean;
13622
+ interface GeneratedFilterEnvelope extends FilterEnvelopeBase {
13623
+ kind: 'generated';
13624
+ filters: readonly ShapeFilter[];
13625
+ primitiveUnits: FilterUnits;
13465
13626
  }
13627
+ type FilterDefinitionEnvelope = RawFilterEnvelope | PrimitiveChainFilterEnvelope | GeneratedFilterEnvelope;
13466
13628
  /**
13467
- * Resolve a serialized container's emitted transform from its inline content.
13468
- * Renderers use this same local-content walk as analytic bounds so legacy
13469
- * rotation/scale/skew channels cannot silently choose a different pivot.
13629
+ * Build the one portable pattern definition consumed by static rendering and
13630
+ * platform projections. SVG 2 section 14.3 keeps tile lengths on the pattern
13631
+ * resource, so valid source spellings remain authoritative over the numeric
13632
+ * editor projection.
13470
13633
  */
13471
- declare function resolveInlineContainerTransform(shape: SerializedShape, host?: DocumentBoundsHost): InlineContainerTransformResult;
13634
+ declare function patternDefinitionEnvelope(id: string, pattern: PatternFill): PatternDefinitionEnvelope;
13635
+ declare function linearGradientEnvelope(id: string, gradient: LinearGradient): GradientDefinitionEnvelope;
13636
+ declare function radialGradientEnvelope(id: string, gradient: RadialGradient): GradientDefinitionEnvelope;
13637
+ declare function filterChainExtendsBounds(filters: readonly ShapeFilter[]): boolean;
13638
+ declare function filterDefinitionEnvelope(filterId: string, filters: readonly ShapeFilter[], attrs?: FilterElementAttrs): FilterDefinitionEnvelope | null;
13472
13639
 
13473
13640
  /**
13474
13641
  * Connector routing — pure path-math for line shapes acting as connectors,
@@ -13597,6 +13764,20 @@ declare function renderForeignObject(shape: SerializedShape, ctx?: RenderShapeCo
13597
13764
  * is optional and degrades to the context-free behavior when absent, so
13598
13765
  * the per-shape renderers stay callable in isolation.
13599
13766
  */
13767
+ /**
13768
+ * Root-open-tag rewrites a planning stage applies to an already-rendered
13769
+ * shape. The two operations are kept distinct and named rather than folded
13770
+ * into one generic map, because they are not interchangeable: an attribute
13771
+ * the renderer owns is REPLACED, while inline style declarations are
13772
+ * APPENDED so the planner's contribution loses to nothing the shape itself
13773
+ * declared for a different property and wins the cascade against its own.
13774
+ */
13775
+ interface RenderedRootOverrides {
13776
+ /** Attribute values that replace whatever the renderer emitted. */
13777
+ readonly replace?: ReadonlyMap<string, string>;
13778
+ /** Declarations appended to the element's existing inline `style`. */
13779
+ readonly appendStyle?: string;
13780
+ }
13600
13781
  interface RenderShapeContext {
13601
13782
  /** Keep native inline CSS animation assignments instead of normalized SMIL fallback. */
13602
13783
  retainCssAnimationDeclarations?: boolean;
@@ -13672,10 +13853,35 @@ interface RenderShapeContext {
13672
13853
  forcedElementIds?: ReadonlySet<string>;
13673
13854
  /** Deterministic collision-free root element id allocated by the render plan. */
13674
13855
  elementIdForShape?: (shape: SerializedShape) => string | undefined;
13856
+ /**
13857
+ * Root-attribute values that replace whatever the renderer emitted for the
13858
+ * same names, applied after authored passthrough and before animation
13859
+ * children.
13860
+ *
13861
+ * Ephemeral rendered-state input from a planning stage, in the same sense as
13862
+ * {@link renderClipMaskDefinitionShape}'s transform override: the serialized
13863
+ * shape remains the sole document authority, and the override exists because
13864
+ * the emitted frame is a function of the document PLUS a timeline. The
13865
+ * variant-transition planner uses it to rewrite the pre-SMIL base transform
13866
+ * of a polygon-family inner shape, which no combination of shape state can
13867
+ * spell (the kernel emits a simplified `translate(cx, cy) rotate(r)` frame
13868
+ * that the shape's own transform emission does not produce).
13869
+ */
13870
+ rootAttributeOverridesForShape?: (shape: SerializedShape) => RenderedRootOverrides | undefined;
13675
13871
  /** SMIL children owned by this exact serialized shape in the document tree. */
13676
13872
  animationElementsForShape?: (shape: SerializedShape) => readonly string[] | undefined;
13677
13873
  /** SMIL children targeting this text shape's canonical `<textPath>` sub-element. */
13678
13874
  textPathAnimationElementsForShape?: (shape: SerializedShape) => readonly string[] | undefined;
13875
+ /**
13876
+ * SMIL children that animate this text shape's PRIVATE text-path geometry
13877
+ * (`textPathMorph`): injected inside the generated `<path id="text-path-{id}">`
13878
+ * definition in defs-path mode. In path-attr mode the plan routes the same
13879
+ * tracks through `textPathAnimationElementsForShape` (children of
13880
+ * `<textPath>`) because the animated attribute is `path` on that element.
13881
+ * Never consulted when the text links another shape or definition: the
13882
+ * referent owns the geometry and its own `pathMorph` track is the morph.
13883
+ */
13884
+ textPathGeometryAnimationElementsForShape?: (shape: SerializedShape) => readonly string[] | undefined;
13679
13885
  /** SMIL children targeting one structurally addressed canonical tspan. */
13680
13886
  textSpanAnimationElementsForShape?: (shape: SerializedShape, spanId: string) => readonly string[] | undefined;
13681
13887
  /** SMIL children owned by one stop inside a shared gradient definition. */
@@ -13692,6 +13898,24 @@ interface RenderShapeContext {
13692
13898
  readonly siblingIndex: number;
13693
13899
  readonly markup: string;
13694
13900
  }[] | undefined;
13901
+ /**
13902
+ * What an `instanceVariant` transition adds to one EMITTED symbol
13903
+ * definition: inner content appended after the definition's own, and the
13904
+ * scope class the CSS encoding puts on the definition root.
13905
+ *
13906
+ * Keyed by emitted target id rather than definition id: dedicated
13907
+ * per-instance materializations share a definition but must not share the
13908
+ * content a track derives for one of them.
13909
+ *
13910
+ * The children arrive pre-rendered because they are addressed by a
13911
+ * synthesized inner id (`<id>--xf`) that is deliberately NOT a document
13912
+ * shape id, so they cannot travel as `SerializedShape`s through the
13913
+ * id-keyed content map {@link renderResolvedSymbolLibraryDef} builds.
13914
+ */
13915
+ variantTransitionDefinitionContent?: (emittedId: string) => {
13916
+ readonly children: readonly string[];
13917
+ readonly scopeClass?: string;
13918
+ } | undefined;
13695
13919
  }
13696
13920
  /**
13697
13921
  * SymbolInstance - a component instance, emitted as SVG 2 §5.6
@@ -13763,6 +13987,104 @@ declare function renderRadialGradient(id: string, g: RadialGradient, ctx?: Rende
13763
13987
  */
13764
13988
  declare function renderBuiltinMarkerDefs(referenced: MarkerReferenceSets | SerializedShape[], library?: readonly LibraryDef[]): string;
13765
13989
 
13990
+ /**
13991
+ * Variant-transition render planning — the stage that turns an
13992
+ * `instanceVariant` timeline track into emitted document content.
13993
+ *
13994
+ * An `instanceVariant` track cycles a symbol instance through its
13995
+ * definition's variants. SVG has no such concept, so the track has to be
13996
+ * decomposed into concrete per-element animations against the dedicated
13997
+ * per-instance definition that {@link buildSymbolMaterializationPlan}
13998
+ * allocated for it. {@link ./variant-transition-kernels} owns every value in
13999
+ * that decomposition; this module is what places the result in the document.
14000
+ *
14001
+ * It exists because the decomposition used to happen only in the editor, as a
14002
+ * DOM pass over the assembled export. Core emitted the dedicated definition
14003
+ * and nothing inside it, so the CLI, the SDK and the GitHub Action rendered a
14004
+ * variant-animated document frozen on its first variant. The conformance loop
14005
+ * measured that as a 1.95% raster divergence at t=2s.
14006
+ *
14007
+ * Every other authoring-level track is already decomposed by the render plan:
14008
+ * `textPathMorph` into `<animate attributeName="d">` on a generated path def,
14009
+ * gradient stop tracks into `<animate>` on `<stop>`, motion into
14010
+ * `<animateMotion>` + `<mpath>`. `instanceVariant` was the exception.
14011
+ *
14012
+ * The output is four DOM-free channels consumed through
14013
+ * {@link RenderShapeContext} seams that already existed for definition-local
14014
+ * animation, plus the stylesheet and script bodies the two non-SMIL
14015
+ * encodings need. Nothing here locates an element: core BUILDS the symbol,
14016
+ * so every inner element's identity is known at construction time.
14017
+ *
14018
+ * @packageDocumentation
14019
+ */
14020
+
14021
+ /** Which encoding an `instanceVariant` track is decomposed into. */
14022
+ type VariantTransitionTarget = 'smil' | 'css' | 'waapi';
14023
+ /** Inner content and root decoration a transition adds to one definition. */
14024
+ interface VariantTransitionDefinitionContent {
14025
+ readonly children: readonly string[];
14026
+ readonly scopeClass?: string;
14027
+ }
14028
+ interface VariantTransitionRenderPlan {
14029
+ /** Emitted target id → appended content and CSS scope class. */
14030
+ readonly definitionContent: ReadonlyMap<string, VariantTransitionDefinitionContent>;
14031
+ /** Emitted target id → inner shape id → SMIL children. */
14032
+ readonly innerAnimations: ReadonlyMap<string, ReadonlyMap<string, readonly string[]>>;
14033
+ /** Emitted target id → inner shape id → root-open-tag rewrites. */
14034
+ readonly innerRootOverrides: ReadonlyMap<string, ReadonlyMap<string, RenderedRootOverrides>>;
14035
+ /** Gradient definition id → stop index → SMIL children. */
14036
+ readonly gradientStopAnimations: ReadonlyMap<string, ReadonlyMap<number, readonly string[]>>;
14037
+ /** Gradient definition id → SMIL children on the definition root. */
14038
+ readonly gradientRootAnimations: ReadonlyMap<string, readonly string[]>;
14039
+ /** `@keyframes` rules for the CSS encoding. */
14040
+ readonly stylesheet: string | null;
14041
+ /** Self-contained runtime script for the WAAPI encoding. */
14042
+ readonly scriptBody: string | null;
14043
+ /**
14044
+ * Emitted symbol ids a stylesheet or script addresses BY NAME. Definition
14045
+ * deduplication renames collapsed ids, and it rewrites markup channels
14046
+ * only, so an id reached from a script would silently stop resolving.
14047
+ */
14048
+ readonly addressedSymbolIds: ReadonlySet<string>;
14049
+ readonly isEmpty: boolean;
14050
+ }
14051
+ interface VariantTransitionPlanOptions {
14052
+ readonly snapshot: HistorySnapshot;
14053
+ readonly symbols: SymbolMaterializationPlan;
14054
+ readonly target: VariantTransitionTarget;
14055
+ /** The context the owning definition renders its own content with. */
14056
+ readonly shapeContext: RenderShapeContext | undefined;
14057
+ /** Root percentage basis, for the bounds view behind rotation pivots. */
14058
+ readonly parentViewport?: Readonly<SvgViewportSize>;
14059
+ /** Measured text bounds, for inner shapes with no analytic center. */
14060
+ readonly measureShapeTextBounds?: ShapeObjectBoundsHost['measureText'];
14061
+ }
14062
+ /**
14063
+ * Decompose every `instanceVariant` track in a snapshot into emitted content.
14064
+ *
14065
+ * Returns the empty plan when the document has no such track, so a document
14066
+ * without variant animation pays nothing and emits byte-identical output.
14067
+ */
14068
+ declare function planVariantTransitions(options: VariantTransitionPlanOptions): VariantTransitionRenderPlan;
14069
+ /**
14070
+ * The CSS encoding's `@keyframes` rules as a document `<style>` element.
14071
+ *
14072
+ * The DOM encoder inserted this as the root's FIRST child, reasoning that the
14073
+ * keyframes had to be "defined before any element references them". CSS
14074
+ * Animations 1 §3 resolves an `animation-name` against the document's whole
14075
+ * set of `@keyframes` rules regardless of where they appear, so the rules
14076
+ * travel in the ordinary document stylesheet channel instead.
14077
+ */
14078
+ declare function renderVariantTransitionStylesheet(stylesheet: string | null): string;
14079
+ /**
14080
+ * The WAAPI encoding's runtime as a document `<script>` element.
14081
+ *
14082
+ * Routed through the shared inline-body policy: the generated body contains a
14083
+ * bare `<` in its loop condition, so it has to be CDATA-wrapped or the
14084
+ * document is not well-formed XML.
14085
+ */
14086
+ declare function renderVariantTransitionScript(scriptBody: string | null): string;
14087
+
13766
14088
  /**
13767
14089
  * Structured clip/mask group rendering for the headless renderer.
13768
14090
  *
@@ -13834,7 +14156,7 @@ declare function renderClipMaskDefinitionShape(shape: SerializedShape, type: 'cl
13834
14156
  * Build the render plan for a snapshot's clip/mask groups. Returns the
13835
14157
  * empty plan when the document has none.
13836
14158
  */
13837
- declare function planClipMaskGroups(snapshot: HistorySnapshot, animationElementsByShapeId?: ReadonlyMap<string, readonly string[]>, textPathAnimationElementsByShapeId?: ReadonlyMap<string, readonly string[]>, definitionAnimationElements?: (definitionId: string, nodeId?: string) => readonly string[] | undefined): ClipMaskRenderPlan;
14159
+ declare function planClipMaskGroups(snapshot: HistorySnapshot, animationElementsByShapeId?: ReadonlyMap<string, readonly string[]>, textPathAnimationElementsByShapeId?: ReadonlyMap<string, readonly string[]>, definitionAnimationElements?: (definitionId: string, nodeId?: string) => readonly string[] | undefined, textPathGeometryAnimationElementsByShapeId?: ReadonlyMap<string, readonly string[]>): ClipMaskRenderPlan;
13838
14160
  /**
13839
14161
  * Inject `clip-path|mask="url(#defId)"` into an already-rendered
13840
14162
  * element's root open tag - the single-content-member rule.
@@ -13952,6 +14274,24 @@ interface RenderPlanOptions {
13952
14274
  * definition shared by untracked sibling instances.
13953
14275
  */
13954
14276
  symbolInstanceInitialVariants?: ReadonlyMap<string, string>;
14277
+ /**
14278
+ * Which encoding an `instanceVariant` track is decomposed into.
14279
+ *
14280
+ * Defaults to `'smil'`, the only encoding that animates a standalone SVG
14281
+ * with no script and no host stylesheet, and the one every raster backend
14282
+ * can seek. `'css'` suits an SVG embedded in HTML; `'waapi'` suits a
14283
+ * consumer that wants to drive the animations from script.
14284
+ */
14285
+ variantTransitionTarget?: VariantTransitionTarget;
14286
+ /**
14287
+ * Measured text bounds, used for the rotation pivot of a variant-animated
14288
+ * inner shape whose center is not analytic (text, containers).
14289
+ *
14290
+ * Distinct from {@link textMeasurementHost}, which measures advance widths
14291
+ * for line breaking. Without it those rotations are dropped and reported as
14292
+ * `unresolved-variant-transition-pivot`.
14293
+ */
14294
+ measureShapeTextBounds?: ShapeObjectBoundsHost['measureText'];
13955
14295
  }
13956
14296
  /** Which root frame attributes to leave off the emitted `<svg>` tag. */
13957
14297
  interface RenderFrameAttributeOmissions {
@@ -14110,14 +14450,6 @@ interface RenderPlan {
14110
14450
  }
14111
14451
  /** The canonical `<defs>` children concatenated in model order. */
14112
14452
  declare function renderPlanDefsBody(defs: RenderPlanDefs): string;
14113
- /**
14114
- * Build the render plan for a snapshot.
14115
- *
14116
- * Pure with respect to output: the same snapshot and options always
14117
- * produce the same plan. Problems found along the way (unsupported
14118
- * shape types, dangling references) are reported through the ambient
14119
- * diagnostics channel.
14120
- */
14121
14453
  declare function buildRenderPlan(snapshot: HistorySnapshot, options?: RenderPlanOptions): RenderPlan;
14122
14454
  /**
14123
14455
  * Extract SVG path `d` data from a serialized shape for motion-path use.
@@ -18421,4 +18753,4 @@ interface RasterQualityReport {
18421
18753
  */
18422
18754
  declare function compareImages(reference: RasterImage, candidate: RasterImage, opts?: CompareImagesOptions): RasterQualityReport;
18423
18755
 
18424
- export { ANIMATION_MANAGER_INTERPOLATION_POLICY, type AdditiveAnimationValue, type Affine2D, type AffineTransformMatrix, type AggregateDocumentFieldKey, type AlphaMode, type AngleInterpolationPolicy, type AnimatablePropertyDescriptor, type AnimationCycleTrack, type AnimationDefinitionTarget, type AnimationKeyframe, type AnimationOperation, type AnimationTimeline, type AnimationTrack, type AnimationTrackTimeSample, type AnimationTrigger, type AnimationTriggerType, type AnyNodeProps, type AppearanceExpansion, type AppearanceExpansionDeps, type AppearanceFillLayer, type AppearanceLayer, type AppearanceLayerKind, type AppearancePaintValue, type AppearanceStrokeLayer, type AppearanceStyleLibraryDef, type AppearanceStyleSource, type AppliedIngestPlan, type ApplyIngestPlanOptions, type ArcCenterParameterization, type ArcParams, type AriaRole, Arrow, type ArrowNodeProps, Audio, type AuthoredGradientGeometry, type AuthoredLengthCoordinate, type AuthoredMarkerGeometry, type AuthoredPaintReference, type AuthoredPatternGeometry, type AuthoredTextCoordinate, type AuthoredTextPosition, type AuthoredUseGeometry, BASE_FILL_LAYER_ID, BASE_STROKE_LAYER_ID, BROWSER_SVG_EXTENSION_URIS, BUILTIN_MARKER_ID_MAP, type BaseFilter, type BaseFilterPrimitive, type BlackAndWhiteFilter, type BlurQuality, type BoundingBox, type BoundsDiagnostic, type BoundsDiagnosticCode, type BoundsRect, type BoundsResult, type BoundsStatus, type BrightnessFilter, type BuildForeignImportReportInput, type BuildSvgDestinationIdentityIndexOptions, type BuiltinShapeGeometryType, CANONICAL_NORMALIZATION_FAULT_POINTS, CC_NS, COLLAB_PROTOCOL_VERSION, COMMON_PROP_DEFAULTS, COMMON_TRANSFORM_NODE_DEFAULTS, CONNECTOR_LABEL_BASELINE_LIFT, CONNECTOR_LABEL_FONT_FAMILY, CONNECTOR_LABEL_FONT_SIZE, CSS_GENERIC_FAMILY_NAMES, CURRENT_SCHEMA_VERSION, CanonicalDocument, type CanonicalNormalizationFaultPoint, type CanonicalRootFramePolicy, type CanonicalSnapshotNormalizationOptions, type CanonicalSnapshotNormalizationResult, type ChannelPainterFilter, Circle, type CircleNodeProps, type CircleShapeGeometry, type ClipMaskDefinition, type ClipMaskGroupDeltaOperation, type ClipMaskOperation, type ClipMaskRenderPlan, type ClipMaskWrapDirective, Cloud, type CloudNodeProps, type CodeFormat, type CodegenOptions, type CollabClock, type CollaborationSnapshot, type CollaborationStamp, type CollaborationState, type ColorInterpolationPolicy, type CommonNodeProps, type CommonTransformNodeProps, type CompareImagesOptions, type ConnectionDirection, type ConnectionDirectionValue, type ConnectionPoint, type ConnectionPointValue, type ConnectorAnchorResolver, type ConnectorEndpointRefValue, type ConnectorLabelAnchor, type ConnectorRouteResult, type ConnectorRoutingModeValue, Container, type ContainerContentBounds, type ContainerNodeProps, ContainerShapeBuilder, type ContainerShapeGeometry, type ContainerTransformOwner, type ContouringDiscreteFilter, type ContouringTableFilter, type ContrastFilter, type CornerShapeValue, type CreateDocumentOptions, type CreateShapeOptions, Cross, type CrossNodeProps, type CrumpledPlasticFilter, type CssAnimationSourceGroup, type CssFunctionToken, type CssLocalUrlToken, type CssProjectedTransformChannel, type CssProjectedTransformStop, type CssTopLevelRange, type CssTransformBox, type CssTransformOrigin, type CssTransformOriginContext, type CssTransformProjection, type CssTransformProjectionStatus, type CssTransformStop, type CssTransformValueIssue, type CustomPatternDef, type CycleBehavior, type CylinderNodeProps, DC_NS, DEFAULT_CONNECTOR_CORNER_RADIUS, DEFAULT_CONNECTOR_LABEL_OFFSET, DEFAULT_CONNECTOR_LABEL_POSITION, DEFAULT_COORDINATE_PRECISION, DEFAULT_FONT_WEIGHT, DEFAULT_RICH_TEXT_STYLE, DOCUMENT_BYTE_KINDS, DOCUMENT_FIELDS, DOCUMENT_FIELD_LIVE_AUTHORITY, DOCUMENT_IMPORT_INTENTS, DOCUMENT_IMPORT_KINDS, DOCUMENT_INGEST_POLICIES, DOCUMENT_SECTION_ORDER, type DecodedSvgSource, type DecorationOutcome, type DeepReadonly, type DefinitionAttribute, type DefinitionAuthoredPlacement, type DefinitionPlacementIndex, type DefinitionPlacementScope, type DeltaEStats, type DescriptiveEmissionOptions, type DiamondNodeProps, type DiffuseLightingFilter, type DocumentBoundsHost, type DocumentBoundsOptions, type DocumentBoundsView, DocumentBuilder, type DocumentBuilderOptions, type DocumentByteKind, type DocumentDefinitionContainer, type DocumentExtension, type DocumentExtensionAttribute, type DocumentExtensionCharacterNode, type DocumentExtensionElementNode, type DocumentExtensionNode, type DocumentFieldAuthority, type DocumentFieldDescriptor, type DocumentFieldKey, type DocumentFieldRegistryGates, type DocumentMetadata, DocumentModel, type DocumentNodeProps, type DocumentReplacementHooks, type DocumentReplacementListener, type DocumentReplacementResult, type DocumentReplacementTransition, type DocumentResourceOperation, type DocumentScript, type DocumentSectionKey, type DocumentSectionListener, type DocumentSectionOrderGates, DocumentSession, type DocumentSessionView, type DocumentShapeNodeProps, type DocumentStyle, type DropShadowFilter, type DuotoneFilter, EASING_CURVES, EasingType, Ellipse, type EllipseNodeProps, type EllipseShapeGeometry, type EmbeddedPayloadRewriter, type EmbeddedPayloadSlotKind, type EmbeddedSvgShapeGeometry, type EmbeddedSvgTransformResult, type EmbeddedSvgViewportOverride, type EmbossFilter, type EnsureTextSpanRangeResult, type EvaluateSvgConditionalProcessingOptions, type ExpandedName, type ExportItemOperation, type Extent1D, type ExtractedVariables, FLOWCHART_GEOMETRY_DEFAULTS, type FeBlendPrimitive, type FeColorMatrixPrimitive, type FeComponentTransferPrimitive, type FeCompositePrimitive, type FeConvolveMatrixPrimitive, type FeDiffuseLightingPrimitive, type FeDisplacementMapPrimitive, type FeDropShadowPrimitive, type FeFloodPrimitive, type FeGaussianBlurPrimitive, type FeImagePrimitive, type FeMergePrimitive, type FeMorphologyPrimitive, type FeOffsetPrimitive, type FeSpecularLightingPrimitive, type FeTilePrimitive, type FeTurbulencePrimitive, type FieldPrecision, type FieldSerialization, type FillType, type FilmGrainFilter, type FilterBlendMode, type FilterChainGroup, type FilterDefinitionEnvelope, type FilterElementAttrs, type FilterLibraryDef, type FilterLightSource, type FilterPrimitive, type FilterPrimitiveType, type FilterType, type FlowchartBoxNodeProps, type FlowchartBoxParams, type FlowchartBoxType, type FontCoverageResult, type FontCoverageStatus, type FontFaceRequest, type FontVariantCssInput, type ForeignImportBucket, type ForeignImportContainer, type ForeignImportFontRequirement, type ForeignImportReport, type ForeignImportReportItem, type ForeignImportVocabulary, type ForeignObjectNodeProps, type FusableTrack, type FusableViewBoxTrack, type GaussianBlurFilter, Gear, type GearNodeProps, type GenerateCodeResult, type GenerateSudokuOptions, type GeneratedFilterEnvelope, type GeneratedSudokuPuzzle, type GeneratedWordSearch, type GlowFilter, type GouacheFilter, type GradientDefinition, type GradientDefinitionEnvelope, type GradientLibraryDef, type GradientSpreadMethod, type GradientStop, type GradientStopEnvelope, type GradientTransformMatrix, type GradientUnits, type GraphChangeListener, type GrayscaleFilter, type GroupNodeProps, type GroupPresentationData, type Guide, type GuideDeltaOperation, HEADLESS_SVG_STYLE_ENVIRONMENT, Heart, type HeartNodeProps, type HistorySnapshot, type HueRotateFilter, Hyperlink, type HyperlinkNodeProps, IDENTITY_AFFINE, INGEST_APPLY_STAGES, INGEST_DIAGNOSTIC_CODES, INGEST_DOCUMENT_ROOT_IDENTITY, INGEST_FEATURES, INGEST_FEATURE_CAPABILITIES, INGEST_PLAN_VERSION, INGRESS_INTENTS, INLINE_CHILD_CONTAINER_TYPES, type ImageAttribution, type ImageNodeProps, ImageShape, type IndexedResource, IngestApplicationError, type IngestApplyContext, type IngestApplyStage, type IngestDiagnostic, type IngestDiagnosticCode, type IngestDiagnosticSeverity, type IngestDocumentFieldCandidates, type IngestExternalEffectValue, type IngestExternalFontDescriptorsValue, type IngestExternalFontSourceValue, type IngestFeature, type IngestFeatureCapability, type IngestFeatureCapabilityGates, type IngestFeatureIntentMatrix, type IngestFeatureStatus, type IngestFieldPolicy, type IngestFieldPolicyAction, type IngestFieldPolicyGates, type IngestFieldPolicyMatrix, type IngestNodeDecoration, type IngestNodeDecorations, type IngestPlan, type IngestPlanApplyAdapter, type IngestPlanValue, type IngestReferenceEdgeValue, type IngestResult, type IngestRootFrameValue, type IngestShapeCandidateValue, type IngestSource, type IngestSourceDescriptor, type IngestSourceElementDescriptor, type IngressIntent, type InkBlotFilter, type InlineContainerTransformResult, type InnerGlowFilter, type InnerShadowFilter, type InterpolationCharOffset, type InterpolationColor, type InterpolationGradient, type InterpolationGradientStop, type InterpolationPoint, type InterpolationSplinePoint, type InvertFilter, type JsonObject, type JsonPrimitive, type JsonValue, KNOWN_METADATA_PREFIXES, KNOWN_STATE_KEYS, type KeyedSerializedAnimationKeyframe, LAYER_PRESENTATION_IDS, LIBRARY_ASSEMBLY_KIND_ORDER, LIBRARY_EMIT_ORDER, LIBRARY_KINDS, type LibraryDef, type LibraryDefBase, type LibraryDefOfKind, type LibraryDefinitionIndex, type LibraryIndex, type LibraryKind, type LibrarySource, type LicenseType, type LightSource, Lightning, type LightningNodeProps, Line, type LineEndpointValue, type LineNodeProps, type LineShapeGeometry, type LinearEasingPoint, type LinearGradient, LinearGradientBuilder, type LinearGradientLibraryDef, type LinearGradientLibraryValue, type LiveInterpolationPolicy, type LoweredPathNodeTracks, MARKER_HEIGHT, MARKER_VIEWBOX, MARKER_WIDTH, MATHML_EXTENSION_URI, MAX_COORDINATE_PRECISION, MIGRATIONS, type MarkerDescriptor, type MarkerLibraryDef, type MarkerReferenceSets, type MaterializedIngestNode, type MatrixDecomposition2D, type Measurement, type MeasurementDeltaOperation, type MediaNodeProps, type MetadataDeltaOperation, type MetadataDescriptiveElement, type MigratableVersion, type Migration, type MorphologyFilter, type MorphologyOperator, type MotionBlurFilter, NAMESPACE_VOCABULARIES, NGon, type NGonNodeProps, NON_RENDERING_LIBRARY_KINDS, NON_WIRE_PROP_KEYS, NUMERIC_SHAPE_TRANSFORM_STATE_KEYS, type NamedResource, type NamespaceVocabulary, NestedSvg, type NodeChangeListener, type NodeFactoryMode, NodeSchemaRegistry, type NodeTypePropsMap, type NodeTypeSchema, type NoiseFilter, type OpMetadataPatch, type OpShapeState, type OpacityFilter, type Operation, type OperationValidationIssue, type OperationValidationResult, type OutlineFilter, type OutlinePosition, PAINT_SERVER_PASSTHROUGH_ATTR, POLYGON_GEOMETRY_DEFAULTS, PRESENTATION_SEMANTICS, PUZZLE_DEFAULTS, type ParallelogramNodeProps, type ParseOptions, type ParsedCssAnimation, type ParsedPreserveAspectRatio, type ParsedSvgPathCommand, type ParsedSvgPathCommandType, type ParsedSvgViewBox, type ParsedTimingFunction, Path, type PathBoundsRect, PathCurveType, type PathNodeChannel, type PathNodeGeometry, type PathNodeProps, type PathPoint, PathPointType, type PathShapeGeometry, PatternBuilder, type PatternDefinitionEnvelope, type PatternElement, type PatternFill, type PatternLibraryDef, type PatternParams, type PatternSvgContentResult, type PatternType, type PixelateFilter, type PlanSnapshotExternalEffectsOptions, type PlanSvgAnimationsOptions, type PlanSvgClipMasksOptions, type PlanSvgConditionalProcessingOptions, type PlanSvgContainerHierarchyOptions, type PlanSvgExternalEffectsOptions, type PlanSvgFiltersOptions, type PlanSvgGradientsOptions, type PlanSvgImportOptions, type PlanSvgLeafGeometryOptions, type PlanSvgMarkersOptions, type PlanSvgMetadataOptions, type PlanSvgOccurrenceViewportsOptions, type PlanSvgPaintServerDefinitionsOptions, type PlanSvgPatternsOptions, type PlanSvgResourceDependenciesOptions, type PlanSvgScriptsOptions, type PlanSvgStyleCascadeOptions, type PlanSvgSymbolUsesOptions, type PlanSvgUseOccurrencesOptions, type Point, type PointLightFilter, type PolygonBaseNodeProps, Polyline, type PolylineNodeProps, type PolylineShapeGeometry, type PositioningRectShapeGeometry, type PresentationSemanticContext, type PresentationSemanticEntry, type PresentationSemanticId, type PresentationValueReader, type PresentationWrite, type PreserveAspectRatioAlign, type PreviousPlacement, type PrimitiveChainFilterEnvelope, type ProjectedTextLinePosition, type PropDef, type PropStamp, type PuzzleBounds, type PuzzleOptions, type PuzzlePiece, type PuzzleStyle, type PuzzleTabPattern, RDF_NS, RENDER_DIAGNOSTIC_CODES, RENDER_FEATURES, RENDER_FEATURE_CAPABILITIES, RENDER_TARGETS, RICH_TEXT_STYLE_KEYS, type RadialGradient, RadialGradientBuilder, type RadialGradientLibraryDef, type RadialGradientLibraryValue, type RasterImage, type RasterQualityReport, type RawFilterEnvelope, type RawSvgFilter, type Rect, Rectangle, type RectangleNodeProps, type RectangleShapeGeometry, type RejectedWordSearchWord, type RenderAnimationElementsOptions, type RenderCapability, type RenderCapabilityMatrix, type RenderCapabilityMatrixGates, type RenderDiagnostic, type RenderDiagnosticCode, type RenderDiagnosticSeverity, type RenderFeature, type RenderFeatureCapability, type RenderFeatureCapabilityGates, type RenderFeatureTargetMatrix, type RenderFinalizationOptions, type RenderFrameAttributeOmissions, type RenderOptions, type RenderPlan, type RenderPlanBodyEntry, type RenderPlanDefEntry, type RenderPlanDefKind, type RenderPlanDefinitionContainer, type RenderPlanDefs, type RenderPlanEnvelope, type RenderPlanFrame, type RenderPlanOptions, type RenderPlanShape, type RenderShapeContext, type RenderTarget, type RenderToSvgResult, type RenderedDefinitionAnimationElement, type ResolveSvgClipMaskContext, type ResolveSvgGradientGeometryContext, type ResolveSvgPatternTileContext, type ResolvedConnectorAnchor, type ResolvedConnectorEndpoints, type ResolvedContainerTransform, type ResolvedLibraryGradient, type ResolvedSvgPatternTile, type ResolvedSvgRectRadii, type ResolvedSvgViewport, type ResolvedSvgViewportFrame, type ResolvedSymbolDefinitionRender, type ResolvedSymbolInstanceContent, type ResolvedSymbolViewport, type ResolvedTextFragment, type ResolvedTextSpan, type ResolvedTextSpanChild, type ResolvedTextSpanProjection, type ResourceKey, type Rgba, type RichTextAlignmentBaseline, type RichTextDecoration, type RichTextFontWeight, type RichTextFormatRange, type RichTextLineSpan, type RichTextResolvedData, type RichTextResolvedLine, type RichTextResolvedSegment, type RichTextResolvedStyle, type RichTextRun, type RichTextRuns, type RichTextSegmentsInput, type RichTextStyleDelta, type RichTextTspanAttribute, type RiddledFilter, Ring, type RingNodeProps, type RootViewportFraming, type RoundEdgesFilter, SAXES_SVG_XML_PARSER_HOST, SCRIPT_ANIMATION_GENERATORS, SERIALIZED_SHAPE_STATE_KEYS, SHAPE_ENVELOPE_KEYS, SHAPE_GEOMETRY_DEFAULTS, SHAPE_TRANSFORM_STATE_KEYS, SVGSKETCH_NS, SVGSKETCH_PATH_EXTENSIONS, SVG_CONDITIONAL_PROCESSING_ATTRIBUTES, SVG_IMPORT_CAPABILITY_OWNERS, SVG_NAMESPACE, SVG_NS, SVG_PRESENTATION_PROPERTIES, SVG_WELL_KNOWN_NAMESPACE_URIS, type SaturateFilter, SceneGraph, SceneNode, type SceneTreeReplayHost, type ScriptAnimationCandidateScript, type ScriptAnimationGenerator, type ScriptAnimationSource, type SegmentCurveType, type SepiaFilter, type SerializedAnimationKeyframe, type SerializedAnimationTimeline, type SerializedAnimationTrack, type SerializedCharOffset, type SerializedClipMaskGroup, type SerializedColorGlyph, type SerializedColorGlyphLibrary, type SerializedExportItem, type SerializedGroup, type SerializedMarkerDef, type SerializedPaintServerDef, type SerializedSceneNodePlacement, type SerializedShape, type SerializedShapeState, type SerializedShapeStateKeyGates, type SerializedShapeTransformState, type SerializedSymbolDef, type SerializedVariantAxis, type SerializedViewbox, type SeverityOptions, type SeverityReport, ShapeBuilder, type ShapeEnvelopeKeyGates, type ShapeFilter, type ShapeGeometryDefaultsType, type ShapeGeometryDescriptor, type ShapeGeometryKernel, type ShapeGeometryRendererKey, type ShapeLibraryDefBase, type ShapeLocalObjectBoundsHost, type ShapeMetadata, type ShapeObjectBoundsHost, type ShapeOutlineCapability, ShapeReference, type ShapeReferenceGeometry, type ShapeReferenceNodeProps, type ShapeReferenceTransformResult, type ShapeTransformState, type ShapeTreeVisitor, type SharpenFilter, type SmilAnimationKeyframe, type SmilCalcMode, type SmilKeyframeAttributes, type SmilKeyframeData, type SmilTimingRelation, type SmilTimingTrack, type SmilValue, type SmilValueAttributes, type SmilValueType, type SmilViewBoxAxis, type SmilViewBoxQuartet, type SolveSudokuOptions, type SpecularLightingFilter, SpeechBubble, type SpeechBubbleNodeProps, Spiral, type SpiralNodeProps, type SpliceTextSpanTreeResult, type SplinePointInput, type SpotLightFilter, Square, type SquareNodeProps, Star, type StarNodeProps, type StepPosition, type StepsParams, type StringifyOptions, type StrokeType, type StructureChangeListener, type StyledTextContent, type StyledTextLine, type StyledTextSegment, type StyledTextSource, type SudokuDifficulty, type SudokuGrid, type SudokuRating, type SudokuValidationResult, type SvgAnimationPlan, type SvgAnimationTargetStatus, type SvgAnimationTimelineDefinitionTarget, type SvgAnimationTimelineProjectionHost, type SvgAnimationTimelineShapeBinding, type SvgAppliedResourceDeclaration, type SvgAuthoredAttributeClassification, type SvgAuthoredAttributePlan, type SvgAuthoredAttributeRecord, type SvgAuthoredDeclaration, type SvgClipMaskBinding, type SvgClipMaskBindingStatus, type SvgClipMaskDefinition, type SvgClipMaskDefinitionMutation, type SvgClipMaskGeometryPlacement, type SvgClipMaskObjectBounds, type SvgClipMaskPlan, type SvgClipMaskRegion, type SvgClipMaskRepresentation, type SvgClipMaskResolution, type SvgClipMaskStatus, type SvgClipMaskType, type SvgClipMaskUnits, type SvgConditionalProcessingCandidate, type SvgConditionalProcessingCondition, type SvgConditionalProcessingPlan, type SvgContainerHierarchy, type SvgContainerHierarchyNode, type SvgContainerHierarchyPlacement, type SvgContainerKind, type SvgCssAnimationCandidate, type SvgCssKeyframeDeclaration, type SvgCssKeyframeStopPlan, type SvgCssKeyframesPlan, type SvgCssSpecificity, type SvgDescriptiveElement, type SvgDestinationIdAllocator, type SvgDestinationIdAssignment, type SvgDestinationIdRequest, type SvgDestinationIdentityChannel, type SvgDestinationIdentityIndex, type SvgDestinationIdentityOwner, type SvgDocumentMetadataCandidate, type SvgElementMetadataCandidate, type SvgElementStylePlan, type SvgEmbeddedFrameCandidate, type SvgEmbeddedFrameState, type SvgExternalAssetCandidate, type SvgExternalAssetStatus, type SvgExternalEffectsPlan, type SvgExternalFontCandidate, type SvgFilterBinding, type SvgFilterBindingStatus, type SvgFilterCandidate, type SvgFilterCandidateStatus, type SvgFilterOperation, type SvgFilterOperationStatus, type SvgFilterPlan, type SvgFilterRegion, type SvgFramingRect, type SvgGradientCandidate, type SvgGradientFallback, type SvgGradientGeometryValue, type SvgGradientPaintBinding, type SvgGradientPlan, type SvgGradientStatus, type SvgGradientStopCandidate, type SvgGradientTransform, type SvgHtmlMetadataElement, type SvgImportCapabilityAuthority, type SvgImportCapabilityOwner, type SvgImportCapabilityOwnershipGates, SvgImportError, type SvgImportPlan, type SvgImportProjectionContext, type SvgIngestDiagnosticContext, type SvgLeafCanonicalType, type SvgLeafGeometryCandidate, type SvgLeafGeometryPlan, type SvgLeafGeometryStatus, type SvgLengthContext, type SvgLengthToken, type SvgLocalReferenceChannel, type SvgMarkerAnimationCandidate, type SvgMarkerAuthoredGeometry, type SvgMarkerCandidate, type SvgMarkerContentCandidate, type SvgMarkerPlan, type SvgMarkerStatus, type SvgMetadataPlan, type SvgNodeProps, type SvgOccurrenceViewportContext, type SvgOccurrenceViewportPlan, type SvgPaintServerDefinitionCandidate, type SvgPaintServerDefinitionPlan, type SvgParsedStyleAttribute, type SvgPathAffineMatrix, type SvgPathCommandType, type SvgPathExtensionCommandType, type SvgPathMetricPoint, type SvgPathMetrics, type SvgPathMetricsOptions, type SvgPathParseError, type SvgPathParseErrorCode, type SvgPathParseOptions, type SvgPathParseResult, type SvgPathParserExtensions, type SvgPatternCandidate, type SvgPatternContentOccurrence, type SvgPatternFallback, type SvgPatternPaintBinding, type SvgPatternPlan, type SvgPatternResourceCandidate, type SvgPatternStatus, type SvgPatternTransform, type SvgPatternValue, type SvgPlannedScript, type SvgPresentationAttributeApplicability, type SvgPrimitiveChainFilter, type SvgPropertySemantics, type SvgResourceDependencyClosure, type SvgResourceDependencyComponent, type SvgResourceDependencyEdge, type SvgResourceDependencyKind, type SvgResourceDependencyMaterialization, type SvgResourceDependencyPlan, type SvgResourceElementKind, type SvgResourceProperty, type SvgScriptCandidate, type SvgScriptPlan, type SvgScriptScope, type SvgSmilAnimationCandidate, type SvgSmilAnimationKind, type SvgSourceAttribute, type SvgSourceCharacterNode, SvgSourceDecodingError, type SvgSourceDocument, type SvgSourceElement, type SvgSourceElementIdPlan, type SvgSourceGeneratedIdPlan, type SvgSourceHref, type SvgSourceIdOccurrence, type SvgSourceIdentifierPlan, type SvgSourceIdentifierPlanOptions, type SvgSourceIndex, type SvgSourceLocalReference, type SvgSourceNode, type SvgSourceReferenceRewrite, type SvgSourceResourceIdPlan, type SvgSourceResourceKind, type SvgStyleCascadePlan, type SvgStyleDeclarationOrigin, type SvgStyleEnvironment, type SvgStyleRulePlan, type SvgStylesheetPlan, type SvgSymbolDefinitionCandidate, type SvgSymbolDefinitionKind, type SvgSymbolUseCandidate, type SvgSymbolUseGeometry, type SvgSymbolUsePlan, type SvgSymbolUseStatus, type SvgSymbolUseTransform, type SvgTextMetricsHost, type SvgTextSpanNodeCandidate, type SvgTextSpanTarget, type SvgTextSpanTreeCandidate, type SvgUnboundStylesheetResourceReference, type SvgUseDefinitionComponent, type SvgUseOccurrence, type SvgUseOccurrenceEdge, type SvgUseOccurrencePlan, type SvgUseOccurrenceRole, type SvgUseResolution, type SvgUseResolutionStatus, type SvgUseResourceCapability, type SvgUseResourcePolicy, type SvgUseResourceRoot, type SvgUseSourceResolution, type SvgUseSourceResolutionStatus, type SvgViewCandidate, type SvgViewState, type SvgViewportDiagnostic, type SvgViewportDimensions, type SvgViewportFrame, type SvgViewportSize, type SvgViewportStatus, type SvgXmlAttributeInput, type SvgXmlCharacterNodeInput, type SvgXmlElementInput, type SvgXmlNodeInput, type SvgXmlParserHost, SvgXmlParserHostError, type SvgXmlParserHostResult, type SvgXmlSourceSpan, type SvgatorPayload, type SvgatorProjectionHost, type SvgatorProjectionResult, Switch, type SwitchNodeProps, type SymbolInstanceGeometry, type SymbolInstanceMaterialization, type SymbolInstanceNodeProps, type SymbolInstanceTransformResult, type SymbolLengthContext, type SymbolLibraryDef, type SymbolMaterialization, type SymbolMaterializationDiagnostic, type SymbolMaterializationDiagnosticCode, type SymbolMaterializationPlan, type SymbolMaterializationPlanOptions, type SymbolResolutionDiagnostic, type SymbolResolutionDiagnosticCode, type SymbolViewportDiagnostic, type SymbolViewportDiagnosticCode, type SymbolViewportHost, TYPED_FIELD_PREDICATES, type TemplateVariable, type TemplateVariableMode, type TemplateVariableOperation, type TemplateVariableSource, type TemplateVariableType, type TerminatorNodeProps, Text, type TextFormatOperation, type TextLayoutCaret, type TextLayoutCaretDraft, TextLayoutEngine, type TextLayoutGlyph, type TextLayoutGlyphDraft, type TextLayoutLine, type TextLayoutMeasurementRequest, type TextLayoutPoint, type TextLayoutProduct, type TextLayoutProductDraft, type TextLayoutProductHost, type TextLayoutRect, type TextLayoutRequest, type TextLayoutResult, type TextLayoutSegment, type TextLayoutViewport, type TextLayoutVisualLine, type TextLinePosition, type TextMeasurementHost, type TextNodeProps, type TextObjectBoundsMeasurement, type TextPathReference, type TextShapeGeometry, type TextShapeInsideGeometry, type TextShapeSpan, type TextSpanAnimationTarget, type TextSpanNode, type TextSpanRotationProjection, type TextSpanTree, type TextSplice, Timeline, Track, type TransferFunc, type TransformFusionPlan, type TransformStateLike, type TrapezoidNodeProps, Triangle, type TriangleNodeProps, VARIANT_INTERPOLATION_POLICY, type ValidationError, type ValidationResult, type VariableMap, type VariantAnimationElementSpec, type VariantCssPlan, type VariantCssSymbolPlan, type VariantSmilInnerAction, type VariantSmilOp, type VariantSmilSymbolPlan, type VariantTransitionInput, type VariantTransitionInstanceView, type VariantTransitionTimelineLike, type VariantWaapiPlan, type VariantWaapiSymbolPlan, Video, View, type ViewBoxFusionPlan, type ViewNodeProps, type ViewShapeGeometry, type Viewbox, type VocabularyAttribute, type VocabularyAttributeSource, type VocabularyAttributes, type VocabularyClaim, type VocabularyProjection, WRAPPER_PRESENTATION_IDS, type WarpFilter, type WarpType, type WatercolorFilter, type WireAliasShapeStateFields, type WireOnlyShapeStateFields, type WordSearchAxes, type WordSearchCellPath, type WordSearchDirection, type WordSearchLintResult, type WordSearchOptions, type WordSearchPlacement, type WordSearchPrimitiveMask, XHTML_EXTENSION_URI, type XrayFilter, accumulateAnimationValue, addAnimationValues, addSmilPointsValues, affine, affineFromArray, affineToArray, almostEqualAffine, animationBackwardsFillTrack, animationCycleDuration, animationDefinitionTargetShapeId, animationTrackActiveEnd, animationTrackDocumentBegin, appearanceLayers, appendAppearanceLayer, applyAffineToPoint, applyAffineToVector, applyAppearanceStyle, applyClipMaskGroupDelta, applyClipMaskPlanToShapes, applyCssAnimationLonghandOverrides, applyGuideDeltaOp, applyIngestPlan, applyMeasurementDeltaOp, applyMetadataDeltaOp, applyOpToSnapshot, applyOpsInPlace, applyOpsToSnapshot, applyOpsToSnapshotWithAccepted, applyPathNodeValue, applyRichTextFormat, applyTextSplice, applyTextTransform, applyTimingFunctionToKeyframe, arcEndpointToCenter, areTracksTimingEquivalent, around, assembleLibraryDefs, assembleSvgFromPlan, assertIngestFeatureRegistry, assertIngestPolicyRegistry, assertNamespaceVocabularyRegistry, assertRasterImage, assertSvgImportCapabilityOwners, authoredPaintDeclarations, baseFillLayer, baseStrokeLayer, buildCompoundTransformValues, buildDefinitionPlacementIndex, buildForeignImportReport, buildFreshMetadataBlock, buildGuideDeltaOps, buildManagedChildren, buildManagedDescription, buildMeasurementDeltaOps, buildMetadataDeltaOps, buildRenderPlan, buildSmilKeyframeData, buildSmilKeyframes, buildSvgDestinationIdentityIndex, buildSvgIngestPlan, buildSymbolMaterializationPlan, buildViewBoxSmilKeyframeData, canonicalPolygonTransformString, canonicalTransformMatrix, canonicalTransformString, chainHasTargetedEffects, claimElementThroughVocabulary, classifyIngestDiagnostic, classifySvgExternalAssetUrl, clipMaskDefinitionFromGroup, clipMaskDefinitionsFromGroups, clipMaskGroupDefId, clipMaskGroupDefinitionId, clipMaskGroupIsRawBacked, clipMaskGroupWithDefinition, clipMaskOwnedDefIds, cloneTextSpanTree, collaborationResourceKey, collectDocumentEnvelopeLibraryReferenceIds, collectFontFacesFromPlan, collectFontFamiliesFromPlan, collectMarkerReferences, collectReferencedLibraryDefs, collectReferencedMarkerIds, collectSvgFragmentLibraryReferenceIds, collectUnknownDocumentFields, compareImages, compareOrderKeys, composeDecomposedTransformMatrix, compositeOver, computeArrowVertices, computeCloudPath, computeCrossVertices, computeDashArray, computeFlowchartBoxPath, computeGearPath, computeGearVertices, computeHeartPath, computeLightningVertices, computePolygonVertices, computeRectanglePath, computeRingPath, computeSpeechBubbleVertices, computeSpiralPath, computeSplinePath, computeStarVertices, connectorLabelAnchor, containerTransformNeedsContentPivot, createDocument, createSceneNode, createShape, createSvgDestinationIdAllocator, createSvgPathMetrics, createTextLayoutKey, createTextLayoutProduct, createViewbox, createWordSearchPrimitiveMask, cssAnimationFillField, cssNamedColorToRgb, cubicBezierExtent1D, cubicBezierToEasingFields, customPatternDefToLibraryDef, declaredRichTextDeltaKeys, decodeCssEscapes, decodeSvgSourceBytes, decomposeAffine2D, decoratePlanNodes, decorateSnapshotShapes, dedupeFontFaces, defaultVariableMode, deltaE2000, deriveRichTextFormatRanges, deriveSegments, deriveTextSplice, derivedConnectionPoints, detachAppearanceStyle, documentObjectBounds, ellipticalArcBounds, emptyDocumentMetadata, ensureTextSpanRange, escXml, evaluateEasing, evaluateFontCoverage, evaluateKeyframeEasing, evaluateLinearEasing, evaluateParsedTimingFunction, evaluateSteps, evaluateSvgConditionalProcessing, expandAppearanceStack, extractVariables, filterAttr, filterChainExtendsBounds, filterChainGroupId, filterChainGroups, filterDefinitionEnvelope, filterReferenceValue, finalizeRenderPlan, findShapeById, fingerprintCssAnimationDocumentStyles, fingerprintCssAnimationInlineStyles, fingerprintCssAnimationTrack, fingerprintIngestSource, flattenShapeStateTree, flattenStateExtra, flattenUnknownDocumentFields, foldSchemaV2AncestorTransformIntoMatrix, fontFaceKey, forEachAppearanceLayerRef, forEachAppearanceStyleRef, forEachLibraryRefInState, forEachMarkerRefInState, forEachReachableShape, forEachShapeInLibraryDefs, formatCssFontFamilyList, formatOperationValidationIssues, formatSmilKeySpline, formatSmilKeyTime, freezeIngestPlan, freezeSiblingOrderKeys, generateCode, generateCodeWithDiagnostics, generateCssCode, generateD3Code, generateId, generatePatternSvgContent, generatePuzzlePieces, generateReactCode, generateSudokuPuzzle, generateSvgCode, generateVueCode, generateWordSearch, geometryDefinitionId, geometryState, getBuiltInMarkerDefs, getEasingCubicBezier, getEffectivePrecision, getIngestFeatureCapability, getIngestFieldPolicy, getKeyframeCubicBezier, getLicenseLabel, getLicenseUrl, getMarkerDescriptors, getPatternElements, getShapeGeometryKernel, getSmilAccumulate, getSmilAdditive, getSmilBeginValue, getSmilFillMode, getSmilMotionKeyPoints, getSmilRepeatCount, getSmilSetBeginValue, getSmilTrackDuration, getSvgCoordinateAttributePrecision, getSvgPropertySemantics, getSvgSourceAttribute, getSvgSourceHref, getWordSearchDirections, hasAnyTypedMetadataField, hasEmittableSmilSimpleDuration, hasOpaqueSvgAncestor, hasSvgSourceAttribute, importSvg, importSvgWithDiagnostics, indexLibraryDefinitions, inferSvgCoordinatePrecision, initialOrderKeys, injectClipMaskReference, inspectCssTransformValue, interpolateAngle, interpolateCharOffsetArray, interpolateColor, interpolateDasharrayLists, interpolateGradient, interpolateNumericArray, interpolatePathData, interpolatePlainObject, interpolatePointArray, interpolatePolylinePoints, interpolateShapeTrees, interpolateSplinePointArray, invertAffine, isColorValue, isConnectorLineState, isCssAnimationDeclarationName, isCssGenericFamilyName, isCssNamedColor, isDefaultKeyPoints, isDefaultKeyTimes, isDocumentImportIntent, isEntirelyUnembeddableFamilyList, isFiniteAffineArray, isGradientLike, isIdentityAffine, isIdentityLinearSplines, isIndefiniteSetTrack, isIndefiniteSmilSimpleDuration, isNumericArray, isPathNodeTrack, isReusablePatternTile, isSafeGradientRootAttributeName, isSafePatternRootAttributeName, isSetSequenceTrack, isSvgPresentationProperty, isUnembeddableFamilyName, isValidOrderKey, keyBetween, keysBetween, layerFilterTargets, layerPaints, layerState, layoutText, legacyEndpointMarkerId, lerpNumber, linearGradient, linearGradientEnvelope, lintWordSearchOptions, lowerPathNodeTracks, luma709, mapAnimationTrackTime, matchCubicBezierToPreset, materializeSceneTreeOrderKeys, matrixTransformPart, maxCollaborationTimestamp, mergeRichTextStyle, migrateSnapshot, migrateV11toV12, migrateV14toV15, migrateV15toV16, migrateV16toV17, migrateV17toV18, migrateV18toV19, migrateV6toV7, migrateViewboxSidecarToViews, motionPathD, moveResourceById, multiplyAffine, mutateSvgClipMaskDefinitionMarkup, namespaceVocabularies, namespaceVocabulary, needsAppearanceStack, nodeSchemas, normalizeClipMaskGroups, normalizePaintServerDef, normalizeRichTextRuns, normalizeRichTextStyle, normalizeRichTextStyleDelta, normalizeSmilPointsValue, normalizeSnapshotStructure, normalizeSnapshotToCanonicalDocument, orderSiblings, paintingLayers, parseColor, parseCssAnimationShorthand, parseCssTimingFunction, parseCssTransformOrigin, parseDocument, parseDocumentWithDiagnostics, parseFontFamilyList, parseInterpolationNumbers, parsePathNodeProperty, parsePreserveAspectRatio, parseSmilAdditive, parseSmilClockValue, parseSmilDuration, parseSmilFillField, parseSmilKeySplines, parseSmilKeyTimes, parseSmilRepeatSettings, parseSmilValues, parseSvgAbsoluteLength, parseSvgLength, parseSvgLengthList, parseSvgLengthToken, parseSvgPathData, parseSvgRootFrame, parseSvgSourceDocument, parseSvgStyleAttribute, parseSvgTransformList, parseSvgViewBox, parseSvgatorPayload, parseVariableArgs, parseWordSearchWords, partitionShapeStateTree, partitionStateExtra, partitionUnknownDocumentFields, pathCommandStructuresMatch, pathDataBounds, pathNodeTracksAreSuperseded, pattern, patternDefinitionEnvelope, patternLibraryDefToCustomPatternDef, patternTileSize, pickCssAnimationListItem, plainTextOf, plainTextStyle, planClipMaskGroups, planSnapshotExternalEffects, planSvgAnimations, planSvgAuthoredAttributes, planSvgClipMasks, planSvgConditionalProcessing, planSvgContainerHierarchy, planSvgDocumentExtensions, planSvgEmbeddedFrames, planSvgExternalEffects, planSvgFilters, planSvgGradients, planSvgImport, planSvgLeafGeometry, planSvgMarkers, planSvgMetadata, planSvgOccurrenceViewports, planSvgPaintServerDefinitions, planSvgPatterns, planSvgResourceDependencies, planSvgScripts, planSvgSourceIdentifiers, planSvgStyleCascade, planSvgSymbolUses, planSvgUseOccurrences, planSvgViews, planTransformFusion, planVariantTransitionsCss, planVariantTransitionsSmil, planVariantTransitionsWaapi, planViewBoxFusion, preferredSubsetsForText, premultiply, prepareSvgAuthorCssForLiveProjection, prepareSvgExternalAssetUrlForLiveProjection, prepareSvgMarkupForLiveProjection, prepareSvgXmlSource, preserveAspectRatioAlignFactor, projectClipMaskDefinitionAnimations, projectCssTransformStops, projectDefinitionAnimations, projectPresentation, projectPresentationEntry, projectSceneTreeOntoClipMaskGroups, projectSceneTreeOntoShapes, projectSvgAnimationPlan, projectSvgAnimationTimeline, projectSvgImportToIngestPlan, projectSvgImportToSnapshot, projectSvgSourceNodes, projectSvgatorAnimation, projectTextLinePosition, projectTextSpanRotations, promoteManagedDescription, promoteRebasedShapeUpdateClock, pruneAndWrapSubtree, quadraticBezierExtent1D, radialGradient, radialGradientEnvelope, rebaseRichTextFormatRanges, rebaseRichTextRuns, recognizeScriptAnimation, reflectCubicBezier, registerNamespaceVocabulary, registeredExtensionUris, registeredShapeGeometryTypes, removeResourceById, removeResourceByKey, removeResourceByName, removeTrackKeyframe, renderAnimationElements, renderBuiltinMarkerDefs, renderCircle, renderClipMaskDefinitionAnimationElements, renderClipMaskDefinitionShape, renderDefinitionAnimationElements, renderDescriptiveElements, renderDocumentAnimationElements, renderDocumentExtensionAttributes, renderDocumentExtensionNodes, renderDocumentExtensions, renderDocumentScripts, renderDocumentStyles, renderEllipse, renderFilterDefs, renderFilterElement, renderFilterLibraryDef, renderFilterPrimitive, renderFilterPrimitivesForType, renderFlowchartBox, renderForeignObject, renderGradientDefs, renderGradientStopAnimationElement, renderImage, renderLibraryDef, renderLibraryDefs, renderLine, renderLinearGradient, renderLinearGradientLibraryDef, renderMarkerLibraryDef, renderPaintServerDefs, renderPatternLibraryDef, renderPlanDefsBody, renderPolygonShape, renderPolyline, renderRadialGradient, renderRadialGradientLibraryDef, renderRectangle, renderReferencedLibraryDefs, renderResolvedSymbolDefinitionForest, renderResolvedSymbolDefinitionSubtree, renderResolvedSymbolLibraryDef, renderShape, renderShapeContextForLibrary, renderSpline, renderSvgPrimitiveChainFilter, renderSymbolInstance, renderSymbolLibraryDef, renderTemplateVariablesStyle, renderText, renderTextSpanAnimationElements, renderToSvg, renderToSvgWithDiagnostics, replaceClipMaskDefinition, replaceClipMaskGroupsInSceneTree, replaySceneTreePlacements, requiredDecimalPrecision, requiredSubsetsForText, resolveAppearanceStyle, resolveConnectorAnchorFromDocument, resolveConnectorEndpoints, resolveContainerTransform, resolveContainerTransformFromContentBounds, resolveCssAnimationEasingType, resolveEmbeddedSvgTransform, resolveEmbeddedSvgViewportFrameBounds, resolveFontStyle, resolveFontWeight, resolveGradientLibraryDef, resolveInlineContainerTransform, resolveMetadataQName, resolvePasteWrapperViewportSize, resolvePathDAtTime, resolvePatternLibraryDef, resolveRichTextStyleAt, resolveRootViewportFraming, resolveShapeGeometry, resolveShapeLocalObjectBounds, resolveShapeObjectBounds, resolveShapeReferenceTransform, resolveStyledTextLines, resolveSvgGradientGeometry, resolveSvgLengthToken, resolveSvgPatternTile, resolveSvgQName, resolveSvgRectRadii, resolveSvgTextSpanTarget, resolveSvgViewport, resolveSymbolDefinitionForestRootIds, resolveSymbolInstanceContent, resolveSymbolInstanceShapes, resolveSymbolInstanceTransform, resolveSymbolViewport, resolveTextSpanProjection, rewriteDocumentEmbeddedPayloads, rewriteIdReferencesInMarkup, rewriteShapeStateEmbeddedPayloads, rewriteSvgResourceReferenceValue, richTextFontVariantCss, richTextLineSpans, richTextRunsFromState, richTextStyleDelta, richTextStyleDeltasEqual, richTextStylesEqual, richTextTspanAttributes, rootMetadataAttrs, rootPaintServerDefId, rotateAffine, roundCoord, roundMarkupCoordinates, roundNumberString, roundSerializedShape, roundSnapshot, routeConnector, runsFromSegments, sameSize, sampleAnimationTrackTime, sampleTextForSubsets, sanitizeRichTextFormatRanges, sanitizeXmlId, scaleAffine, scanCssFunctionTokens, scanCssLocalUrlTokens, senderCorrectionsForOp, serializeSvgPathData, serializedPathNodeGeometry, serializedPresentationReader, severity, shapeAppearanceLayers, shapeAppearanceStyle, shapeLocalObjectBounds, shapeLocalObjectCenter, shapeNeedsAppearanceExpansion, shapeObjectBoundsInSpace, shapeOutlineCapability, shouldRoundSvgCoordinateAttribute, skewXAffine, skewYAffine, smilKeyframeAttributes, snapshotBoundsView, sniffDocumentBytes, solveCubicBezier, solveSudoku, spliceTextSpanTree, splinePathBounds, splitAppearanceForStyle, splitCssAnimationList, splitCssTopLevel, splitCssTopLevelRanges, splitTopLevelElements, srgbToLab, ssimPlane, stringifyDocument, stripAnimationDeclarations, stripCssAnimationInlineStyle, subsetsForCodePoint, substituteString, substituteVariables, symbolDefinitionSemanticHash, symbolInstanceTargetId, synthesizeCssAnimationShorthand, templateVariablesCss, textSpanEffectiveRotations, textSpanIds, textSpanNodeById, textSpanRangeByIds, transformSplice, transformSvgPathData, translateAffine, translateSvgPathData, tryParseSvgTransformList, unmatchedDecorationDiagnostics, upsertResourceById, upsertResourceByKey, upsertResourceByName, upsertTrackKeyframe, validateDocumentOperations, validateOperation, validatePresenceOperation, validateSnapshot, validateSudokuPuzzle, verticesToPath, visitShapeTree, visitSnapshotShapeTrees, writeAppearanceLayers };
18756
+ export { ANIMATION_MANAGER_INTERPOLATION_POLICY, type AdditiveAnimationValue, type Affine2D, type AffineTransformMatrix, type AggregateDocumentFieldKey, type AlphaMode, type AngleInterpolationPolicy, type AnimatablePropertyDescriptor, type AnimationCycleTrack, type AnimationDefinitionTarget, type AnimationKeyframe, type AnimationOperation, type AnimationTimeline, type AnimationTrack, type AnimationTrackTimeSample, type AnimationTrigger, type AnimationTriggerType, type AnyNodeProps, type AppearanceExpansion, type AppearanceExpansionDeps, type AppearanceFillLayer, type AppearanceLayer, type AppearanceLayerKind, type AppearancePaintValue, type AppearanceStrokeLayer, type AppearanceStyleLibraryDef, type AppearanceStyleSource, type AppliedIngestPlan, type ApplyIngestPlanOptions, type ArcCenterParameterization, type ArcParams, type AriaRole, Arrow, type ArrowNodeProps, Audio, type AuthoredGradientGeometry, type AuthoredLengthCoordinate, type AuthoredMarkerGeometry, type AuthoredPaintReference, type AuthoredPatternGeometry, type AuthoredTextCoordinate, type AuthoredTextPosition, type AuthoredUseGeometry, BASE_FILL_LAYER_ID, BASE_STROKE_LAYER_ID, BROWSER_SVG_EXTENSION_URIS, BUILTIN_MARKER_ID_MAP, type BaseFilter, type BaseFilterPrimitive, type BlackAndWhiteFilter, type BlurQuality, type BoundingBox, type BoundsDiagnostic, type BoundsDiagnosticCode, type BoundsRect, type BoundsResult, type BoundsStatus, type BrightnessFilter, type BuildForeignImportReportInput, type BuildSvgDestinationIdentityIndexOptions, type BuiltinShapeGeometryType, CANONICAL_NORMALIZATION_FAULT_POINTS, CC_NS, COLLAB_PROTOCOL_VERSION, COMMON_PROP_DEFAULTS, COMMON_TRANSFORM_NODE_DEFAULTS, CONNECTOR_LABEL_BASELINE_LIFT, CONNECTOR_LABEL_FONT_FAMILY, CONNECTOR_LABEL_FONT_SIZE, CSS_GENERIC_FAMILY_NAMES, CURRENT_SCHEMA_VERSION, CanonicalDocument, type CanonicalNormalizationFaultPoint, type CanonicalRootFramePolicy, type CanonicalSnapshotNormalizationOptions, type CanonicalSnapshotNormalizationResult, type ChannelPainterFilter, Circle, type CircleNodeProps, type CircleShapeGeometry, type ClipMaskDefinition, type ClipMaskGroupDeltaOperation, type ClipMaskOperation, type ClipMaskRenderPlan, type ClipMaskWrapDirective, Cloud, type CloudNodeProps, type CodeFormat, type CodegenOptions, type CollabClock, type CollaborationSnapshot, type CollaborationStamp, type CollaborationState, type ColorInterpolationPolicy, type CommonNodeProps, type CommonTransformNodeProps, type CompareImagesOptions, type ConnectionDirection, type ConnectionDirectionValue, type ConnectionPoint, type ConnectionPointValue, type ConnectorAnchorResolver, type ConnectorEndpointRefValue, type ConnectorLabelAnchor, type ConnectorRouteResult, type ConnectorRoutingModeValue, Container, type ContainerContentBounds, type ContainerNodeProps, ContainerShapeBuilder, type ContainerShapeGeometry, type ContainerTransformOwner, type ContouringDiscreteFilter, type ContouringTableFilter, type ContrastFilter, type CornerShapeValue, type CreateDocumentOptions, type CreateShapeOptions, Cross, type CrossNodeProps, type CrumpledPlasticFilter, type CssAnimationSourceGroup, type CssFunctionToken, type CssLocalUrlToken, type CssProjectedTransformChannel, type CssProjectedTransformStop, type CssTopLevelRange, type CssTransformBox, type CssTransformOrigin, type CssTransformOriginContext, type CssTransformProjection, type CssTransformProjectionStatus, type CssTransformStop, type CssTransformValueIssue, type CustomPatternDef, type CycleBehavior, type CylinderNodeProps, DC_NS, DEFAULT_CONNECTOR_CORNER_RADIUS, DEFAULT_CONNECTOR_LABEL_OFFSET, DEFAULT_CONNECTOR_LABEL_POSITION, DEFAULT_COORDINATE_PRECISION, DEFAULT_FONT_WEIGHT, DEFAULT_RICH_TEXT_STYLE, DOCUMENT_BYTE_KINDS, DOCUMENT_FIELDS, DOCUMENT_FIELD_LIVE_AUTHORITY, DOCUMENT_IMPORT_INTENTS, DOCUMENT_IMPORT_KINDS, DOCUMENT_INGEST_POLICIES, DOCUMENT_SECTION_ORDER, type DecodedSvgSource, type DecorationOutcome, type DeepReadonly, type DefinitionAttribute, type DefinitionAuthoredPlacement, type DefinitionPlacementIndex, type DefinitionPlacementScope, type DeltaEStats, type DescriptiveEmissionOptions, type DiamondNodeProps, type DiffuseLightingFilter, type DocumentBoundsHost, type DocumentBoundsOptions, type DocumentBoundsView, DocumentBuilder, type DocumentBuilderOptions, type DocumentByteKind, type DocumentDefinitionContainer, type DocumentExtension, type DocumentExtensionAttribute, type DocumentExtensionCharacterNode, type DocumentExtensionElementNode, type DocumentExtensionNode, type DocumentFieldAuthority, type DocumentFieldDescriptor, type DocumentFieldKey, type DocumentFieldRegistryGates, type DocumentMetadata, DocumentModel, type DocumentNodeProps, type DocumentReplacementHooks, type DocumentReplacementListener, type DocumentReplacementResult, type DocumentReplacementTransition, type DocumentResourceOperation, type DocumentScript, type DocumentSectionKey, type DocumentSectionListener, type DocumentSectionOrderGates, DocumentSession, type DocumentSessionView, type DocumentShapeNodeProps, type DocumentStyle, type DropShadowFilter, type DuotoneFilter, EASING_CURVES, EasingType, Ellipse, type EllipseNodeProps, type EllipseShapeGeometry, type EmbeddedPayloadRewriter, type EmbeddedPayloadSlotKind, type EmbeddedSvgShapeGeometry, type EmbeddedSvgTransformResult, type EmbeddedSvgViewportOverride, type EmbossFilter, type EnsureTextSpanRangeResult, type EvaluateSvgConditionalProcessingOptions, type ExpandedName, type ExportItemOperation, type Extent1D, type ExtractedVariables, FLOWCHART_GEOMETRY_DEFAULTS, type FeBlendPrimitive, type FeColorMatrixPrimitive, type FeComponentTransferPrimitive, type FeCompositePrimitive, type FeConvolveMatrixPrimitive, type FeDiffuseLightingPrimitive, type FeDisplacementMapPrimitive, type FeDropShadowPrimitive, type FeFloodPrimitive, type FeGaussianBlurPrimitive, type FeImagePrimitive, type FeMergePrimitive, type FeMorphologyPrimitive, type FeOffsetPrimitive, type FeSpecularLightingPrimitive, type FeTilePrimitive, type FeTurbulencePrimitive, type FieldPrecision, type FieldSerialization, type FillType, type FilmGrainFilter, type FilterBlendMode, type FilterChainGroup, type FilterDefinitionEnvelope, type FilterElementAttrs, type FilterLibraryDef, type FilterLightSource, type FilterPrimitive, type FilterPrimitiveType, type FilterType, type FlowchartBoxNodeProps, type FlowchartBoxParams, type FlowchartBoxType, type FontCoverageResult, type FontCoverageStatus, type FontFaceRequest, type FontVariantCssInput, type ForeignImportBucket, type ForeignImportContainer, type ForeignImportFontRequirement, type ForeignImportReport, type ForeignImportReportItem, type ForeignImportVocabulary, type ForeignObjectNodeProps, type FusableTrack, type FusableViewBoxTrack, GEOMETRY_TRACK_PROPERTIES, type GaussianBlurFilter, Gear, type GearNodeProps, type GenerateCodeResult, type GenerateSudokuOptions, type GeneratedFilterEnvelope, type GeneratedSudokuPuzzle, type GeneratedWordSearch, type GlowFilter, type GouacheFilter, type GradientDefinition, type GradientDefinitionEnvelope, type GradientGeometry, type GradientGeometryContext, type GradientLibraryDef, type GradientSpreadMethod, type GradientStop, type GradientStopEnvelope, type GradientTransformMatrix, type GradientUnits, type GraphChangeListener, type GrayscaleFilter, type GroupNodeProps, type GroupPresentationData, type Guide, type GuideDeltaOperation, HEADLESS_SVG_STYLE_ENVIRONMENT, Heart, type HeartNodeProps, type HistorySnapshot, type HueRotateFilter, Hyperlink, type HyperlinkNodeProps, IDENTITY_AFFINE, INGEST_APPLY_STAGES, INGEST_DIAGNOSTIC_CODES, INGEST_DOCUMENT_ROOT_IDENTITY, INGEST_FEATURES, INGEST_FEATURE_CAPABILITIES, INGEST_PLAN_VERSION, INGRESS_INTENTS, INITIAL_ROOT_FONT_SIZE, INLINE_CHILD_CONTAINER_TYPES, type ImageAttribution, type ImageNodeProps, ImageShape, type IndexedResource, IngestApplicationError, type IngestApplyContext, type IngestApplyStage, type IngestDiagnostic, type IngestDiagnosticCode, type IngestDiagnosticSeverity, type IngestDocumentFieldCandidates, type IngestExternalEffectValue, type IngestExternalFontDescriptorsValue, type IngestExternalFontSourceValue, type IngestFeature, type IngestFeatureCapability, type IngestFeatureCapabilityGates, type IngestFeatureIntentMatrix, type IngestFeatureStatus, type IngestFieldPolicy, type IngestFieldPolicyAction, type IngestFieldPolicyGates, type IngestFieldPolicyMatrix, type IngestNodeDecoration, type IngestNodeDecorations, type IngestPlan, type IngestPlanApplyAdapter, type IngestPlanValue, type IngestReferenceEdgeValue, type IngestResult, type IngestRootFrameValue, type IngestShapeCandidateValue, type IngestSource, type IngestSourceDescriptor, type IngestSourceElementDescriptor, type IngressIntent, type InkBlotFilter, type InlineContainerTransformResult, type InnerGlowFilter, type InnerShadowFilter, type InterpolationCharOffset, type InterpolationColor, type InterpolationGradient, type InterpolationGradientStop, type InterpolationPoint, type InterpolationSplinePoint, type InvertFilter, type JsonObject, type JsonPrimitive, type JsonValue, KNOWN_METADATA_PREFIXES, KNOWN_STATE_KEYS, type KeyedSerializedAnimationKeyframe, LAYER_PRESENTATION_IDS, LIBRARY_ASSEMBLY_KIND_ORDER, LIBRARY_EMIT_ORDER, LIBRARY_KINDS, type LibraryDef, type LibraryDefBase, type LibraryDefOfKind, type LibraryDefinitionIndex, type LibraryIndex, type LibraryKind, type LibrarySource, type LicenseType, type LightSource, Lightning, type LightningNodeProps, Line, type LineEndpointValue, type LineNodeProps, type LineShapeGeometry, type LinearEasingPoint, type LinearGradient, LinearGradientBuilder, type LinearGradientGeometry, type LinearGradientLibraryDef, type LinearGradientLibraryValue, type LiveInterpolationPolicy, type LoweredPathNodeTracks, MARKER_HEIGHT, MARKER_VIEWBOX, MARKER_WIDTH, MATHML_EXTENSION_URI, MAX_COORDINATE_PRECISION, MIGRATIONS, type MarkerDescriptor, type MarkerLibraryDef, type MarkerReferenceSets, type MaterializedIngestNode, type MatrixDecomposition2D, type Measurement, type MeasurementDeltaOperation, type MediaNodeProps, type MetadataDeltaOperation, type MetadataDescriptiveElement, type MigratableVersion, type Migration, type MorphologyFilter, type MorphologyOperator, type MotionBlurFilter, NAMESPACE_VOCABULARIES, NGon, type NGonNodeProps, NON_RENDERING_LIBRARY_KINDS, NON_WIRE_PROP_KEYS, NUMERIC_SHAPE_TRANSFORM_STATE_KEYS, type NamedResource, type NamespaceVocabulary, NestedSvg, type NodeChangeListener, type NodeFactoryMode, NodeSchemaRegistry, type NodeTypePropsMap, type NodeTypeSchema, type NoiseFilter, type OpMetadataPatch, type OpShapeState, type OpacityFilter, type Operation, type OperationValidationIssue, type OperationValidationResult, type OutlineFilter, type OutlinePosition, PAINT_SERVER_PASSTHROUGH_ATTR, PATH_DATA_TRACK_PROPERTIES, POLYGON_GEOMETRY_DEFAULTS, PRESENTATION_SEMANTICS, PUZZLE_DEFAULTS, type ParallelogramNodeProps, type ParseOptions, type ParsedCssAnimation, type ParsedPreserveAspectRatio, type ParsedSvgPathCommand, type ParsedSvgPathCommandType, type ParsedSvgViewBox, type ParsedTimingFunction, Path, type PathBoundsRect, PathCurveType, type PathNodeChannel, type PathNodeGeometry, type PathNodeProps, type PathPoint, PathPointType, type PathShapeGeometry, PatternBuilder, type PatternDefinitionEnvelope, type PatternElement, type PatternFill, type PatternLibraryDef, type PatternParams, type PatternSvgContentResult, type PatternType, type PixelateFilter, type PlanSnapshotExternalEffectsOptions, type PlanSvgAnimationsOptions, type PlanSvgClipMasksOptions, type PlanSvgConditionalProcessingOptions, type PlanSvgContainerHierarchyOptions, type PlanSvgExternalEffectsOptions, type PlanSvgFiltersOptions, type PlanSvgGradientsOptions, type PlanSvgImportOptions, type PlanSvgLeafGeometryOptions, type PlanSvgMarkersOptions, type PlanSvgMetadataOptions, type PlanSvgOccurrenceViewportsOptions, type PlanSvgPaintServerDefinitionsOptions, type PlanSvgPatternsOptions, type PlanSvgResourceDependenciesOptions, type PlanSvgScriptsOptions, type PlanSvgStyleCascadeOptions, type PlanSvgSymbolUsesOptions, type PlanSvgUseOccurrencesOptions, type Point, type PointLightFilter, type PolygonBaseNodeProps, Polyline, type PolylineNodeProps, type PolylineShapeGeometry, type PositioningRectShapeGeometry, type PresentationSemanticContext, type PresentationSemanticEntry, type PresentationSemanticId, type PresentationValueReader, type PresentationWrite, type PreserveAspectRatioAlign, type PreviousPlacement, type PrimitiveChainFilterEnvelope, type ProjectedTextLinePosition, type PropDef, type PropStamp, type PuzzleBounds, type PuzzleOptions, type PuzzlePiece, type PuzzleStyle, type PuzzleTabPattern, RDF_NS, RENDER_DIAGNOSTIC_CODES, RENDER_FEATURES, RENDER_FEATURE_CAPABILITIES, RENDER_TARGETS, RICH_TEXT_STYLE_KEYS, type RadialGradient, RadialGradientBuilder, type RadialGradientGeometry, type RadialGradientLibraryDef, type RadialGradientLibraryValue, type RasterImage, type RasterQualityReport, type RawFilterEnvelope, type RawSvgFilter, type Rect, Rectangle, type RectangleNodeProps, type RectangleShapeGeometry, type RejectedWordSearchWord, type RenderAnimationElementsOptions, type RenderCapability, type RenderCapabilityMatrix, type RenderCapabilityMatrixGates, type RenderDiagnostic, type RenderDiagnosticCode, type RenderDiagnosticSeverity, type RenderFeature, type RenderFeatureCapability, type RenderFeatureCapabilityGates, type RenderFeatureTargetMatrix, type RenderFinalizationOptions, type RenderFrameAttributeOmissions, type RenderOptions, type RenderPlan, type RenderPlanBodyEntry, type RenderPlanDefEntry, type RenderPlanDefKind, type RenderPlanDefinitionContainer, type RenderPlanDefs, type RenderPlanEnvelope, type RenderPlanFrame, type RenderPlanOptions, type RenderPlanShape, type RenderShapeContext, type RenderTarget, type RenderToSvgResult, type RenderedDefinitionAnimationElement, type RenderedRootOverrides, type ResolveSvgClipMaskContext, type ResolveSvgGradientGeometryContext, type ResolveSvgPatternTileContext, type ResolvedConnectorAnchor, type ResolvedConnectorEndpoints, type ResolvedContainerTransform, type ResolvedLibraryGradient, type ResolvedSvgPatternTile, type ResolvedSvgRectRadii, type ResolvedSvgViewport, type ResolvedSvgViewportFrame, type ResolvedSymbolDefinitionRender, type ResolvedSymbolInstanceContent, type ResolvedSymbolViewport, type ResolvedTextFragment, type ResolvedTextSpan, type ResolvedTextSpanChild, type ResolvedTextSpanProjection, type ResourceKey, type Rgba, type RichTextAlignmentBaseline, type RichTextDecoration, type RichTextFontWeight, type RichTextFormatRange, type RichTextLineSpan, type RichTextResolvedData, type RichTextResolvedLine, type RichTextResolvedSegment, type RichTextResolvedStyle, type RichTextRun, type RichTextRuns, type RichTextSegmentsInput, type RichTextStyleDelta, type RichTextTspanAttribute, type RiddledFilter, Ring, type RingNodeProps, type RootViewportFraming, type RoundEdgesFilter, SAXES_SVG_XML_PARSER_HOST, SCRIPT_ANIMATION_GENERATORS, SERIALIZED_SHAPE_STATE_KEYS, SHAPE_ENVELOPE_KEYS, SHAPE_GEOMETRY_DEFAULTS, SHAPE_TRANSFORM_STATE_KEYS, SVGSKETCH_NS, SVGSKETCH_PATH_EXTENSIONS, SVG_CONDITIONAL_PROCESSING_ATTRIBUTES, SVG_IMPORT_CAPABILITY_OWNERS, SVG_NAMESPACE, SVG_NS, SVG_PRESENTATION_PROPERTIES, SVG_WELL_KNOWN_NAMESPACE_URIS, type SaturateFilter, SceneGraph, SceneNode, type SceneTreeReplayHost, type ScriptAnimationCandidateScript, type ScriptAnimationGenerator, type ScriptAnimationSource, type SegmentCurveType, type SepiaFilter, type SerializedAnimationKeyframe, type SerializedAnimationTimeline, type SerializedAnimationTrack, type SerializedCharOffset, type SerializedClipMaskGroup, type SerializedColorGlyph, type SerializedColorGlyphLibrary, type SerializedExportItem, type SerializedGroup, type SerializedMarkerDef, type SerializedPaintServerDef, type SerializedSceneNodePlacement, type SerializedShape, type SerializedShapeState, type SerializedShapeStateKeyGates, type SerializedShapeTransformState, type SerializedSymbolDef, type SerializedVariantAxis, type SerializedViewbox, type SeverityOptions, type SeverityReport, ShapeBuilder, type ShapeEnvelopeKeyGates, type ShapeFilter, type ShapeGeometryDefaultsType, type ShapeGeometryDescriptor, type ShapeGeometryKernel, type ShapeGeometryRendererKey, type ShapeLibraryDefBase, type ShapeLocalObjectBoundsHost, type ShapeMetadata, type ShapeObjectBoundsHost, type ShapeOutlineCapability, ShapeReference, type ShapeReferenceGeometry, type ShapeReferenceNodeProps, type ShapeReferenceTransformResult, type ShapeTransformState, type ShapeTreeVisitor, type SharpenFilter, type SmilAnimationKeyframe, type SmilCalcMode, type SmilKeyframeAttributes, type SmilKeyframeData, type SmilTimingRelation, type SmilTimingTrack, type SmilValue, type SmilValueAttributes, type SmilValueType, type SmilViewBoxAxis, type SmilViewBoxQuartet, type SolveSudokuOptions, type SpecularLightingFilter, SpeechBubble, type SpeechBubbleNodeProps, Spiral, type SpiralNodeProps, type SpliceTextSpanTreeResult, type SplinePointInput, type SpotLightFilter, Square, type SquareNodeProps, Star, type StarNodeProps, type StepPosition, type StepsParams, type StringifyOptions, type StrokeType, type StructureChangeListener, type StyledTextContent, type StyledTextLine, type StyledTextSegment, type StyledTextSource, type SudokuDifficulty, type SudokuGrid, type SudokuRating, type SudokuValidationResult, type SvgAnimationPlan, type SvgAnimationTargetStatus, type SvgAnimationTimelineDefinitionTarget, type SvgAnimationTimelineProjectionHost, type SvgAnimationTimelineShapeBinding, type SvgAppliedResourceDeclaration, type SvgAuthoredAttributeClassification, type SvgAuthoredAttributePlan, type SvgAuthoredAttributeRecord, type SvgAuthoredDeclaration, type SvgClipMaskBinding, type SvgClipMaskBindingStatus, type SvgClipMaskDefinition, type SvgClipMaskDefinitionMutation, type SvgClipMaskGeometryPlacement, type SvgClipMaskObjectBounds, type SvgClipMaskPlan, type SvgClipMaskRegion, type SvgClipMaskRepresentation, type SvgClipMaskResolution, type SvgClipMaskStatus, type SvgClipMaskType, type SvgClipMaskUnits, type SvgConditionalProcessingCandidate, type SvgConditionalProcessingCondition, type SvgConditionalProcessingPlan, type SvgContainerHierarchy, type SvgContainerHierarchyNode, type SvgContainerHierarchyPlacement, type SvgContainerKind, type SvgCssAnimationCandidate, type SvgCssKeyframeDeclaration, type SvgCssKeyframeStopPlan, type SvgCssKeyframesPlan, type SvgCssSpecificity, type SvgDescriptiveElement, type SvgDestinationIdAllocator, type SvgDestinationIdAssignment, type SvgDestinationIdRequest, type SvgDestinationIdentityChannel, type SvgDestinationIdentityIndex, type SvgDestinationIdentityOwner, type SvgDocumentMetadataCandidate, type SvgElementMetadataCandidate, type SvgElementStylePlan, type SvgEmbeddedFrameCandidate, type SvgEmbeddedFrameState, type SvgExternalAssetCandidate, type SvgExternalAssetStatus, type SvgExternalEffectsPlan, type SvgExternalFontCandidate, type SvgFilterBinding, type SvgFilterBindingStatus, type SvgFilterCandidate, type SvgFilterCandidateStatus, type SvgFilterOperation, type SvgFilterOperationStatus, type SvgFilterPlan, type SvgFilterRegion, type SvgFramingRect, type SvgGradientCandidate, type SvgGradientFallback, type SvgGradientGeometryValue, type SvgGradientPaintBinding, type SvgGradientPlan, type SvgGradientStatus, type SvgGradientStopCandidate, type SvgGradientTransform, type SvgHtmlMetadataElement, type SvgImportCapabilityAuthority, type SvgImportCapabilityOwner, type SvgImportCapabilityOwnershipGates, SvgImportError, type SvgImportPlan, type SvgImportProjectionContext, type SvgIngestDiagnosticContext, type SvgLeafCanonicalType, type SvgLeafGeometryCandidate, type SvgLeafGeometryPlan, type SvgLeafGeometryStatus, type SvgLengthContext, type SvgLengthToken, type SvgLocalReferenceChannel, type SvgMarkerAnimationCandidate, type SvgMarkerAuthoredGeometry, type SvgMarkerCandidate, type SvgMarkerContentCandidate, type SvgMarkerPlan, type SvgMarkerStatus, type SvgMetadataPlan, type SvgNodeProps, type SvgOccurrenceViewportContext, type SvgOccurrenceViewportPlan, type SvgPaintServerDefinitionCandidate, type SvgPaintServerDefinitionPlan, type SvgParsedStyleAttribute, type SvgPathAffineMatrix, type SvgPathCommandType, type SvgPathExtensionCommandType, type SvgPathMetricPoint, type SvgPathMetrics, type SvgPathMetricsOptions, type SvgPathParseError, type SvgPathParseErrorCode, type SvgPathParseOptions, type SvgPathParseResult, type SvgPathParserExtensions, type SvgPatternCandidate, type SvgPatternContentOccurrence, type SvgPatternFallback, type SvgPatternPaintBinding, type SvgPatternPlan, type SvgPatternResourceCandidate, type SvgPatternStatus, type SvgPatternTransform, type SvgPatternValue, type SvgPlannedScript, type SvgPresentationAttributeApplicability, type SvgPrimitiveChainFilter, type SvgPropertySemantics, type SvgResourceDependencyClosure, type SvgResourceDependencyComponent, type SvgResourceDependencyEdge, type SvgResourceDependencyKind, type SvgResourceDependencyMaterialization, type SvgResourceDependencyPlan, type SvgResourceElementKind, type SvgResourceProperty, type SvgScriptCandidate, type SvgScriptPlan, type SvgScriptScope, type SvgSmilAnimationCandidate, type SvgSmilAnimationKind, type SvgSourceAttribute, type SvgSourceCharacterNode, SvgSourceDecodingError, type SvgSourceDocument, type SvgSourceElement, type SvgSourceElementIdPlan, type SvgSourceGeneratedIdPlan, type SvgSourceHref, type SvgSourceIdOccurrence, type SvgSourceIdentifierPlan, type SvgSourceIdentifierPlanOptions, type SvgSourceIndex, type SvgSourceLocalReference, type SvgSourceNode, type SvgSourceReferenceRewrite, type SvgSourceResourceIdPlan, type SvgSourceResourceKind, type SvgStyleCascadePlan, type SvgStyleDeclarationOrigin, type SvgStyleEnvironment, type SvgStyleRulePlan, type SvgStylesheetPlan, type SvgSymbolDefinitionCandidate, type SvgSymbolDefinitionKind, type SvgSymbolUseCandidate, type SvgSymbolUseGeometry, type SvgSymbolUsePlan, type SvgSymbolUseStatus, type SvgSymbolUseTransform, type SvgTextMetricsHost, type SvgTextSpanNodeCandidate, type SvgTextSpanTarget, type SvgTextSpanTreeCandidate, type SvgUnboundStylesheetResourceReference, type SvgUseDefinitionComponent, type SvgUseOccurrence, type SvgUseOccurrenceEdge, type SvgUseOccurrencePlan, type SvgUseOccurrenceRole, type SvgUseResolution, type SvgUseResolutionStatus, type SvgUseResourceCapability, type SvgUseResourcePolicy, type SvgUseResourceRoot, type SvgUseSourceResolution, type SvgUseSourceResolutionStatus, type SvgViewCandidate, type SvgViewState, type SvgViewportDiagnostic, type SvgViewportDimensions, type SvgViewportFrame, type SvgViewportSize, type SvgViewportStatus, type SvgXmlAttributeInput, type SvgXmlCharacterNodeInput, type SvgXmlElementInput, type SvgXmlNodeInput, type SvgXmlParserHost, SvgXmlParserHostError, type SvgXmlParserHostResult, type SvgXmlSourceSpan, type SvgatorPayload, type SvgatorProjectionHost, type SvgatorProjectionResult, Switch, type SwitchNodeProps, type SymbolInstanceGeometry, type SymbolInstanceMaterialization, type SymbolInstanceNodeProps, type SymbolInstanceTransformResult, type SymbolLengthContext, type SymbolLibraryDef, type SymbolMaterialization, type SymbolMaterializationDiagnostic, type SymbolMaterializationDiagnosticCode, type SymbolMaterializationPlan, type SymbolMaterializationPlanOptions, type SymbolResolutionDiagnostic, type SymbolResolutionDiagnosticCode, type SymbolViewportDiagnostic, type SymbolViewportDiagnosticCode, type SymbolViewportHost, TEXT_PATH_GENERATED_ID_PREFIX, TYPED_FIELD_PREDICATES, type TemplateVariable, type TemplateVariableMode, type TemplateVariableOperation, type TemplateVariableSource, type TemplateVariableType, type TerminatorNodeProps, Text, type TextFormatOperation, type TextLayoutCaret, type TextLayoutCaretDraft, TextLayoutEngine, type TextLayoutGlyph, type TextLayoutGlyphDraft, type TextLayoutLine, type TextLayoutMeasurementRequest, type TextLayoutPoint, type TextLayoutProduct, type TextLayoutProductDraft, type TextLayoutProductHost, type TextLayoutRect, type TextLayoutRequest, type TextLayoutResult, type TextLayoutSegment, type TextLayoutViewport, type TextLayoutVisualLine, type TextLinePosition, type TextMeasurementHost, type TextNodeProps, type TextObjectBoundsMeasurement, type TextPathReference, type TextShapeGeometry, type TextShapeInsideGeometry, type TextShapeSpan, type TextSpanAnimationTarget, type TextSpanNode, type TextSpanRotationProjection, type TextSpanTree, type TextSplice, Timeline, Track, type TransferFunc, type TransformFusionPlan, type TransformStateLike, type TrapezoidNodeProps, Triangle, type TriangleNodeProps, VARIANT_INTERPOLATION_POLICY, type ValidationError, type ValidationResult, type VariableMap, type VariantAnimationElementSpec, type VariantCssPlan, type VariantCssSymbolPlan, type VariantSmilInnerAction, type VariantSmilOp, type VariantSmilSymbolPlan, type VariantTransitionDefinitionContent, type VariantTransitionInput, type VariantTransitionInstanceView, type VariantTransitionPlanOptions, type VariantTransitionRenderPlan, type VariantTransitionTarget, type VariantTransitionTimelineLike, type VariantWaapiPlan, type VariantWaapiSymbolPlan, Video, View, type ViewBoxFusionPlan, type ViewNodeProps, type ViewShapeGeometry, type Viewbox, type VocabularyAttribute, type VocabularyAttributeSource, type VocabularyAttributes, type VocabularyClaim, type VocabularyProjection, WRAPPER_PRESENTATION_IDS, type WarpFilter, type WarpType, type WatercolorFilter, type WireAliasShapeStateFields, type WireOnlyShapeStateFields, type WordSearchAxes, type WordSearchCellPath, type WordSearchDirection, type WordSearchLintResult, type WordSearchOptions, type WordSearchPlacement, type WordSearchPrimitiveMask, XHTML_EXTENSION_URI, type XrayFilter, accumulateAnimationValue, addAnimationValues, addSmilPointsValues, affine, affineFromArray, affineToArray, almostEqualAffine, animationBackwardsFillTrack, animationCycleDuration, animationDefinitionTargetShapeId, animationTrackActiveEnd, animationTrackDocumentBegin, appearanceLayers, appendAppearanceLayer, applyAffineToPoint, applyAffineToVector, applyAppearanceStyle, applyClipMaskGroupDelta, applyClipMaskPlanToShapes, applyCssAnimationLonghandOverrides, applyGuideDeltaOp, applyIngestPlan, applyMeasurementDeltaOp, applyMetadataDeltaOp, applyOpToSnapshot, applyOpsInPlace, applyOpsToSnapshot, applyOpsToSnapshotWithAccepted, applyPathNodeValue, applyRichTextFormat, applyTextSplice, applyTextTransform, applyTimingFunctionToKeyframe, arcEndpointToCenter, areTracksTimingEquivalent, around, assembleLibraryDefs, assembleSvgFromPlan, assertIngestFeatureRegistry, assertIngestPolicyRegistry, assertNamespaceVocabularyRegistry, assertRasterImage, assertSvgImportCapabilityOwners, authoredPaintDeclarations, baseFillLayer, baseStrokeLayer, buildCompoundTransformValues, buildDefinitionPlacementIndex, buildForeignImportReport, buildFreshMetadataBlock, buildGuideDeltaOps, buildManagedChildren, buildManagedDescription, buildMeasurementDeltaOps, buildMetadataDeltaOps, buildRenderPlan, buildSmilKeyframeData, buildSmilKeyframes, buildSvgDestinationIdentityIndex, buildSvgIngestPlan, buildSymbolMaterializationPlan, buildViewBoxSmilKeyframeData, canonicalPolygonTransformString, canonicalTransformMatrix, canonicalTransformString, chainHasTargetedEffects, claimElementThroughVocabulary, classifyIngestDiagnostic, classifySvgExternalAssetUrl, clipMaskDefinitionFromGroup, clipMaskDefinitionsFromGroups, clipMaskGroupDefId, clipMaskGroupDefinitionId, clipMaskGroupIsRawBacked, clipMaskGroupWithDefinition, clipMaskOwnedDefIds, cloneTextSpanTree, collaborationResourceKey, collectDocumentEnvelopeLibraryReferenceIds, collectFontFacesFromPlan, collectFontFamiliesFromPlan, collectMarkerReferences, collectReferencedLibraryDefs, collectReferencedMarkerIds, collectSvgFragmentLibraryReferenceIds, collectUnknownDocumentFields, compareImages, compareOrderKeys, composeDecomposedTransformMatrix, compositeOver, computeArrowVertices, computeCloudPath, computeCrossVertices, computeDashArray, computeFlowchartBoxPath, computeGearPath, computeGearVertices, computeHeartPath, computeLightningVertices, computePolygonVertices, computeRectanglePath, computeRingPath, computeSpeechBubbleVertices, computeSpiralPath, computeSplinePath, computeStarVertices, connectorLabelAnchor, containerTransformNeedsContentPivot, convertGradientUnits, createDocument, createSceneNode, createShape, createSvgDestinationIdAllocator, createSvgPathMetrics, createTextLayoutKey, createTextLayoutProduct, createViewbox, createWordSearchPrimitiveMask, cssAnimationFillField, cssNamedColorToRgb, cubicBezierExtent1D, cubicBezierToEasingFields, customPatternDefToLibraryDef, declaredRichTextDeltaKeys, decodeCssEscapes, decodeSvgSourceBytes, decomposeAffine2D, decoratePlanNodes, decorateSnapshotShapes, dedupeFontFaces, defaultVariableMode, deltaE2000, deriveRichTextFormatRanges, deriveSegments, deriveTextSplice, derivedConnectionPoints, detachAppearanceStyle, documentObjectBounds, ellipticalArcBounds, emptyDocumentMetadata, ensureTextSpanRange, escXml, evaluateEasing, evaluateFontCoverage, evaluateKeyframeEasing, evaluateLinearEasing, evaluateParsedTimingFunction, evaluateSteps, evaluateSvgConditionalProcessing, expandAppearanceStack, extractVariables, filterAttr, filterChainExtendsBounds, filterChainGroupId, filterChainGroups, filterDefinitionEnvelope, filterReferenceValue, finalizeRenderPlan, findShapeById, fingerprintCssAnimationDocumentStyles, fingerprintCssAnimationInlineStyles, fingerprintCssAnimationTrack, fingerprintIngestSource, flattenShapeStateTree, flattenStateExtra, flattenUnknownDocumentFields, foldSchemaV2AncestorTransformIntoMatrix, fontFaceKey, forEachAppearanceLayerRef, forEachAppearanceStyleRef, forEachLibraryRefInState, forEachMarkerRefInState, forEachReachableShape, forEachShapeInLibraryDefs, formatCssFontFamilyList, formatOperationValidationIssues, formatSmilKeySpline, formatSmilKeyTime, freezeIngestPlan, freezeSiblingOrderKeys, generateCode, generateCodeWithDiagnostics, generateCssCode, generateD3Code, generateId, generatePatternSvgContent, generatePuzzlePieces, generateReactCode, generateSudokuPuzzle, generateSvgCode, generateVueCode, generateWordSearch, geometryDefinitionId, geometryState, getBuiltInMarkerDefs, getEasingCubicBezier, getEffectivePrecision, getIngestFeatureCapability, getIngestFieldPolicy, getKeyframeCubicBezier, getLicenseLabel, getLicenseUrl, getMarkerDescriptors, getPatternElements, getShapeGeometryKernel, getSmilAccumulate, getSmilAdditive, getSmilBeginValue, getSmilFillMode, getSmilMotionKeyPoints, getSmilRepeatCount, getSmilSetBeginValue, getSmilTrackDuration, getSvgCoordinateAttributePrecision, getSvgPropertySemantics, getSvgSourceAttribute, getSvgSourceHref, getWordSearchDirections, gradientStopPoint, gradientTransformAttribute, hasAnyTypedMetadataField, hasEmittableSmilSimpleDuration, hasOpaqueSvgAncestor, hasSvgSourceAttribute, importSvg, importSvgWithDiagnostics, indexLibraryDefinitions, inferSvgCoordinatePrecision, initialOrderKeys, injectClipMaskReference, inspectCssTransformValue, interpolateAngle, interpolateCharOffsetArray, interpolateColor, interpolateDasharrayLists, interpolateGradient, interpolateNumericArray, interpolatePathData, interpolatePlainObject, interpolatePointArray, interpolatePolylinePoints, interpolateShapeTrees, interpolateSplinePointArray, invertAffine, isColorValue, isConnectorLineState, isCssAnimationDeclarationName, isCssGenericFamilyName, isCssNamedColor, isDefaultKeyPoints, isDefaultKeyTimes, isDocumentImportIntent, isEntirelyUnembeddableFamilyList, isFiniteAffineArray, isGeometryTrackProperty, isGradientLike, isIdentityAffine, isIdentityLinearSplines, isIndefiniteSetTrack, isIndefiniteSmilSimpleDuration, isNumericArray, isPathDataTrackProperty, isPathNodeTrack, isReusablePatternTile, isSafeGradientRootAttributeName, isSafePatternRootAttributeName, isSetSequenceTrack, isSvgPresentationProperty, isTextPathGeneratedId, isUnembeddableFamilyName, isValidOrderKey, keyBetween, keysBetween, layerFilterTargets, layerPaints, layerState, layoutText, legacyEndpointMarkerId, lerpNumber, linearGradient, linearGradientEnvelope, lintWordSearchOptions, lowerPathNodeTracks, luma709, mapAnimationTrackTime, matchCubicBezierToPreset, materializeSceneTreeOrderKeys, matrixTransformPart, maxCollaborationTimestamp, mergeRichTextStyle, migrateSnapshot, migrateV11toV12, migrateV14toV15, migrateV15toV16, migrateV16toV17, migrateV17toV18, migrateV18toV19, migrateV6toV7, migrateViewboxSidecarToViews, motionPathD, moveResourceById, multiplyAffine, mutateSvgClipMaskDefinitionMarkup, namespaceVocabularies, namespaceVocabulary, needsAppearanceStack, nodeSchemas, normalizeClipMaskGroups, normalizePaintServerDef, normalizeRichTextRuns, normalizeRichTextStyle, normalizeRichTextStyleDelta, normalizeSmilPointsValue, normalizeSnapshotStructure, normalizeSnapshotToCanonicalDocument, orderSiblings, paintingLayers, parseColor, parseCssAnimationShorthand, parseCssTimingFunction, parseCssTransformOrigin, parseDocument, parseDocumentWithDiagnostics, parseFontFamilyList, parseInterpolationNumbers, parsePathNodeProperty, parsePreserveAspectRatio, parseSmilAdditive, parseSmilClockValue, parseSmilDuration, parseSmilFillField, parseSmilKeySplines, parseSmilKeyTimes, parseSmilRepeatSettings, parseSmilValues, parseSvgAbsoluteLength, parseSvgLength, parseSvgLengthList, parseSvgLengthToken, parseSvgPathData, parseSvgRootFrame, parseSvgSourceDocument, parseSvgStyleAttribute, parseSvgTransformList, parseSvgViewBox, parseSvgatorPayload, parseVariableArgs, parseWordSearchWords, partitionShapeStateTree, partitionStateExtra, partitionUnknownDocumentFields, pathCommandStructuresMatch, pathDataBounds, pathNodeTracksAreSuperseded, pattern, patternDefinitionEnvelope, patternLibraryDefToCustomPatternDef, patternTileSize, pickCssAnimationListItem, plainTextOf, plainTextStyle, planClipMaskGroups, planSnapshotExternalEffects, planSvgAnimations, planSvgAuthoredAttributes, planSvgClipMasks, planSvgConditionalProcessing, planSvgContainerHierarchy, planSvgDocumentExtensions, planSvgEmbeddedFrames, planSvgExternalEffects, planSvgFilters, planSvgGradients, planSvgImport, planSvgLeafGeometry, planSvgMarkers, planSvgMetadata, planSvgOccurrenceViewports, planSvgPaintServerDefinitions, planSvgPatterns, planSvgResourceDependencies, planSvgScripts, planSvgSourceIdentifiers, planSvgStyleCascade, planSvgSymbolUses, planSvgUseOccurrences, planSvgViews, planTransformFusion, planVariantTransitions, planVariantTransitionsCss, planVariantTransitionsSmil, planVariantTransitionsWaapi, planViewBoxFusion, preferredSubsetsForText, premultiply, prepareSvgAuthorCssForLiveProjection, prepareSvgExternalAssetUrlForLiveProjection, prepareSvgMarkupForLiveProjection, prepareSvgXmlSource, preserveAspectRatioAlignFactor, projectClipMaskDefinitionAnimations, projectCssTransformStops, projectDefinitionAnimations, projectPresentation, projectPresentationEntry, projectSceneTreeOntoClipMaskGroups, projectSceneTreeOntoShapes, projectSvgAnimationPlan, projectSvgAnimationTimeline, projectSvgImportToIngestPlan, projectSvgImportToSnapshot, projectSvgSourceNodes, projectSvgatorAnimation, projectTextLinePosition, projectTextSpanRotations, promoteManagedDescription, promoteRebasedShapeUpdateClock, pruneAndWrapSubtree, quadraticBezierExtent1D, radialGradient, radialGradientEnvelope, rebaseRichTextFormatRanges, rebaseRichTextRuns, recognizeScriptAnimation, reflectCubicBezier, registerNamespaceVocabulary, registeredExtensionUris, registeredShapeGeometryTypes, removeResourceById, removeResourceByKey, removeResourceByName, removeTrackKeyframe, renderAnimationElements, renderBuiltinMarkerDefs, renderCircle, renderClipMaskDefinitionAnimationElements, renderClipMaskDefinitionShape, renderDefinitionAnimationElements, renderDescriptiveElements, renderDocumentAnimationElements, renderDocumentExtensionAttributes, renderDocumentExtensionNodes, renderDocumentExtensions, renderDocumentScripts, renderDocumentStyles, renderEllipse, renderFilterDefs, renderFilterElement, renderFilterLibraryDef, renderFilterPrimitive, renderFilterPrimitivesForType, renderFlowchartBox, renderForeignObject, renderGradientDefs, renderGradientStopAnimationElement, renderImage, renderLibraryDef, renderLibraryDefs, renderLine, renderLinearGradient, renderLinearGradientLibraryDef, renderMarkerLibraryDef, renderPaintServerDefs, renderPatternLibraryDef, renderPlanDefsBody, renderPolygonShape, renderPolyline, renderRadialGradient, renderRadialGradientLibraryDef, renderRectangle, renderReferencedLibraryDefs, renderResolvedSymbolDefinitionForest, renderResolvedSymbolDefinitionSubtree, renderResolvedSymbolLibraryDef, renderShape, renderShapeContextForLibrary, renderSpline, renderSvgPrimitiveChainFilter, renderSymbolInstance, renderSymbolLibraryDef, renderTemplateVariablesStyle, renderText, renderTextSpanAnimationElements, renderToSvg, renderToSvgWithDiagnostics, renderVariantTransitionScript, renderVariantTransitionStylesheet, replaceClipMaskDefinition, replaceClipMaskGroupsInSceneTree, replaySceneTreePlacements, requiredDecimalPrecision, requiredSubsetsForText, resolveAppearanceStyle, resolveConnectorAnchorFromDocument, resolveConnectorEndpoints, resolveContainerTransform, resolveContainerTransformFromContentBounds, resolveCssAnimationEasingType, resolveEmbeddedSvgTransform, resolveEmbeddedSvgViewportFrameBounds, resolveFontStyle, resolveFontWeight, resolveGradientGeometry, resolveGradientLibraryDef, resolveInlineContainerTransform, resolveMetadataQName, resolvePasteWrapperViewportSize, resolvePathDAtTime, resolvePatternLibraryDef, resolvePatternTile, resolveRichTextStyleAt, resolveRootViewportFraming, resolveShapeGeometry, resolveShapeLocalObjectBounds, resolveShapeObjectBounds, resolveShapeReferenceTransform, resolveStyledTextLines, resolveSvgGradientGeometry, resolveSvgLengthToken, resolveSvgPatternTile, resolveSvgQName, resolveSvgRectRadii, resolveSvgTextSpanTarget, resolveSvgViewport, resolveSymbolDefinitionForestRootIds, resolveSymbolInstanceContent, resolveSymbolInstanceShapes, resolveSymbolInstanceTransform, resolveSymbolViewport, resolveTextSpanProjection, rewriteDocumentEmbeddedPayloads, rewriteIdReferencesInMarkup, rewriteShapeStateEmbeddedPayloads, rewriteSvgResourceReferenceValue, richTextFontVariantCss, richTextLineSpans, richTextRunsFromState, richTextStyleDelta, richTextStyleDeltasEqual, richTextStylesEqual, richTextTspanAttributes, rootMetadataAttrs, rootPaintServerDefId, rotateAffine, roundCoord, roundMarkupCoordinates, roundNumberString, roundSerializedShape, roundSnapshot, routeConnector, runsFromSegments, sameSize, sampleAnimationTrackTime, sampleTextForSubsets, sanitizeRichTextFormatRanges, sanitizeXmlId, scaleAffine, scanCssFunctionTokens, scanCssLocalUrlTokens, senderCorrectionsForOp, serializeSvgPathData, serializedPathNodeGeometry, serializedPresentationReader, severity, shapeAppearanceLayers, shapeAppearanceStyle, shapeLocalObjectBounds, shapeLocalObjectCenter, shapeNeedsAppearanceExpansion, shapeObjectBoundsInSpace, shapeOutlineCapability, shouldRoundSvgCoordinateAttribute, skewXAffine, skewYAffine, smilKeyframeAttributes, snapshotBoundsView, sniffDocumentBytes, solveCubicBezier, solveSudoku, spliceTextSpanTree, splinePathBounds, splitAppearanceForStyle, splitCssAnimationList, splitCssTopLevel, splitCssTopLevelRanges, splitTopLevelElements, srgbToLab, ssimPlane, stringifyDocument, stripAnimationDeclarations, stripCssAnimationInlineStyle, subsetsForCodePoint, substituteString, substituteVariables, symbolDefinitionSemanticHash, symbolInstanceTargetId, synthesizeCssAnimationShorthand, templateVariablesCss, textPathGeneratedId, textSpanEffectiveRotations, textSpanIds, textSpanNodeById, textSpanRangeByIds, transformSplice, transformSvgPathData, translateAffine, translateSvgPathData, tryParseSvgTransformList, unmatchedDecorationDiagnostics, updateGradientLibraryDef, upsertResourceById, upsertResourceByKey, upsertResourceByName, upsertTrackKeyframe, validateDocumentOperations, validateOperation, validatePresenceOperation, validateSnapshot, validateSudokuPuzzle, verticesToPath, visitShapeTree, visitSnapshotShapeTrees, writeAppearanceLayers };