@docx-editor.dev/core 2.21.1 → 2.22.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.
Files changed (99) hide show
  1. package/README.md +11 -5
  2. package/dist/automation.cjs +1 -1
  3. package/dist/automation.d.ts +10 -10
  4. package/dist/automation.js +1 -1
  5. package/dist/binding.cjs +1 -1
  6. package/dist/binding.d.ts +8 -8
  7. package/dist/binding.js +1 -1
  8. package/dist/{chunk-BF2TOG2V.js → chunk-5RKCJ5DF.js} +1 -1
  9. package/dist/chunk-65GJRSZ5.cjs +18 -0
  10. package/dist/chunk-6TBRG6SA.cjs +20 -0
  11. package/dist/chunk-A72MJGY7.cjs +4 -0
  12. package/dist/chunk-AZ7QSAXH.js +4 -0
  13. package/dist/chunk-BL57VQ7E.js +1 -0
  14. package/dist/chunk-CB6RQ3GD.cjs +11 -0
  15. package/dist/chunk-GG4IAKFI.js +5 -0
  16. package/dist/chunk-HJYLFMLX.js +2 -0
  17. package/dist/chunk-HL6NO7IH.cjs +2 -0
  18. package/dist/chunk-HZQFGB2X.cjs +5 -0
  19. package/dist/{chunk-FPDIJ4RF.js → chunk-IWAUA732.js} +1 -1
  20. package/dist/chunk-OZXBAEWW.js +2 -0
  21. package/dist/{chunk-4TYA4RLP.cjs → chunk-P5PWSRNW.cjs} +1 -1
  22. package/dist/{chunk-DZYKU2HG.js → chunk-PD5XKBJA.js} +1 -1
  23. package/dist/{chunk-7N77EN2Z.cjs → chunk-REMFTPDL.cjs} +1 -1
  24. package/dist/{chunk-T5B4NMKF.cjs → chunk-RLKX7BIP.cjs} +1 -1
  25. package/dist/chunk-UGLO2GA5.cjs +1 -0
  26. package/dist/chunk-UOQONZVQ.js +11 -0
  27. package/dist/chunk-VD2MWTR6.js +20 -0
  28. package/dist/chunk-VIXH2OVP.js +1 -0
  29. package/dist/chunk-W2JIZ5JH.js +18 -0
  30. package/dist/chunk-W5H62AWM.cjs +1 -0
  31. package/dist/{chunk-E5OUYRNM.cjs → chunk-X2LJDR53.cjs} +5 -5
  32. package/dist/chunk-YQXY6TQ3.js +5 -0
  33. package/dist/{chunk-RA2TDTEQ.cjs → chunk-YYFBYVW4.cjs} +1 -1
  34. package/dist/collaboration/replication.cjs +1 -1
  35. package/dist/collaboration/replication.d.ts +4 -4
  36. package/dist/collaboration/replication.js +1 -1
  37. package/dist/collaboration.d.ts +3 -3
  38. package/dist/contracts/document.d.ts +2 -2
  39. package/dist/contracts/editor.d.ts +8 -8
  40. package/dist/contracts/modules.d.ts +6 -6
  41. package/dist/contracts/types.d.ts +1 -1
  42. package/dist/{custom-node-writes-CncR6KfC.d.ts → custom-node-writes-Ck6eOiJ3.d.ts} +2 -2
  43. package/dist/{document-protection-DM6mA8Rf.d.ts → document-protection-CMPEonQc.d.ts} +1 -1
  44. package/dist/{editor-BRh7GuZF.d.ts → editor-BKDVqXyk.d.ts} +70 -49
  45. package/dist/editor.cjs +1 -1
  46. package/dist/editor.css +1 -1
  47. package/dist/editor.d.ts +188 -26
  48. package/dist/editor.js +1 -1
  49. package/dist/export.cjs +2 -2
  50. package/dist/export.d.ts +31 -14
  51. package/dist/export.js +2 -2
  52. package/dist/{font-resolver-DwuQYj3P.d.ts → font-resolver-PBc8Vuxs.d.ts} +1 -1
  53. package/dist/{headless-document-view-C3fc_jV0.d.ts → headless-document-view-9wjJT20Y.d.ts} +2 -2
  54. package/dist/{image-resources-DxF-SN_8.d.ts → image-resources-B0v-XaTM.d.ts} +2 -2
  55. package/dist/{index-3pNnG4z4.d.ts → index-DQA53aR1.d.ts} +134 -16
  56. package/dist/index.cjs +1 -1
  57. package/dist/index.d.ts +17 -17
  58. package/dist/index.js +1 -1
  59. package/dist/{layout-shaping-_GGjhhVc.d.ts → layout-shaping-Dyr0ZSOI.d.ts} +5 -2
  60. package/dist/layout.cjs +1 -1
  61. package/dist/layout.d.ts +376 -33
  62. package/dist/layout.js +1 -1
  63. package/dist/{note-properties-CjT31AuP.d.ts → note-properties-D_lmG9xx.d.ts} +1 -1
  64. package/dist/{omml-equation-Bk3OP1fv.d.ts → omml-equation-CfTm3jOK.d.ts} +1 -1
  65. package/dist/output.cjs +1 -1
  66. package/dist/output.d.ts +7 -7
  67. package/dist/output.js +1 -1
  68. package/dist/{protocol-CrbTIW2Z.d.ts → protocol-CkVDxyQ3.d.ts} +2 -2
  69. package/dist/{review-paragraph-order-D3KZohIL.d.ts → review-paragraph-order-BjUs-tDd.d.ts} +1 -1
  70. package/dist/{revision-projection-kVd7p6Wd.d.ts → revision-projection-DDVBYTIG.d.ts} +1 -1
  71. package/dist/{semantic-cell-selection-CkSsZHDL.d.ts → semantic-cell-selection-DW6qsmoC.d.ts} +4 -4
  72. package/dist/{semantic-interaction-Z2Xa68U5.d.ts → semantic-interaction-BNiYSBcB.d.ts} +1 -1
  73. package/dist/{semantic-paint-BHKprI9P.d.ts → semantic-paint-DE236npp.d.ts} +2 -2
  74. package/dist/{semantic-records-StH-AnHK.d.ts → semantic-records-C5OeXnaL.d.ts} +545 -569
  75. package/dist/store.cjs +1 -1
  76. package/dist/store.d.ts +13 -13
  77. package/dist/store.js +1 -1
  78. package/dist/{tree-package-fragment-CpEV1gl3.d.ts → tree-package-fragment-DBb97w3F.d.ts} +2 -2
  79. package/dist/{tree-session-contract-CTT9nM7Z.d.ts → tree-session-contract-BYat3RKx.d.ts} +5 -5
  80. package/dist/{types-barrel-PwcfEkaX.d.ts → types-barrel-ChGvWjkO.d.ts} +3 -1
  81. package/package.json +2 -2
  82. package/dist/chunk-25OQBAKA.js +0 -2
  83. package/dist/chunk-3B3DQMSL.js +0 -11
  84. package/dist/chunk-3P3DNJYM.js +0 -5
  85. package/dist/chunk-3PA64KPK.js +0 -5
  86. package/dist/chunk-AGWWNVIJ.cjs +0 -1
  87. package/dist/chunk-DFTVN25X.cjs +0 -5
  88. package/dist/chunk-DGONGMAV.js +0 -2
  89. package/dist/chunk-F4H3LC6M.cjs +0 -2
  90. package/dist/chunk-IUTTOBQW.cjs +0 -20
  91. package/dist/chunk-IYCXQAFT.cjs +0 -4
  92. package/dist/chunk-JL3SI5SZ.js +0 -18
  93. package/dist/chunk-OFWUHH52.js +0 -20
  94. package/dist/chunk-OKY6JRJL.js +0 -4
  95. package/dist/chunk-P24FHMQW.cjs +0 -1
  96. package/dist/chunk-QBKAOSVF.cjs +0 -18
  97. package/dist/chunk-U5GUJKTS.js +0 -1
  98. package/dist/chunk-XRYSPKKC.js +0 -1
  99. package/dist/chunk-ZZRCVDQU.cjs +0 -11
package/dist/layout.d.ts CHANGED
@@ -1,20 +1,20 @@
1
- import { m as NumberingLevel, n as NumberingIndex, S as SemanticLayout, o as ParagraphFragmentRecord, p as LayoutBox, D as DrawingPoint, q as DrawingInsets, a as StyleSpanRecord, I as InlineDrawingRecord, M as ModelRange, r as TableBorderSide, B as BlockFragmentRecord, A as AnchoredDrawingRecord, s as PageRecord, t as SemanticTableStructure, L as LineRecord, u as NoteAreaRecord, H as HeaderFooterStoryRecord, v as NoteStoryRecord, C as ContentControlBoundaryRecord$1, w as ContentControlLock, T as TextMeasurer, V as VersionedShapingLibrary, f as TextShaper, x as FontByteValidator, h as FixedPointRoundingMode, y as FixedPoint, l as ShapedRun, z as SourceRange, E as StyleCascadeTable, G as HyperlinkProjector, J as InlineDrawingLayoutContext, K as FieldLinkProjector, O as StoryPageFieldNeeds, Q as RefFieldContext, U as HyperlinkFieldSpec, W as SpanLinkRecord, P as PageGeometry, b as SectionPageBorders, X as ResolvedListItem, Y as PageBorderFrameRecord } from './semantic-records-StH-AnHK.js';
2
- export { Z as AUTO_PARAGRAPH_SPACING_PT, _ as AUTO_PREFERRED_WIDTH, $ as AbstractNumDefinition, a0 as AnchoredDrawingLayoutFallback, a1 as BidiEmbeddingLevels, a2 as BorderGridGeometry, a3 as CELL_PAD, a4 as CascadedParagraphFormatting, a5 as CellBorderBox, a6 as CellMarginsPt, a7 as CellVerticalAlign, a8 as CjkTypographySettings, a9 as ContentControlGeometryFragment, aa as ContentControlLevel, ab as ContentControlMappedType, ac as DEFAULT_CELL_MARGINS, ad as DEFAULT_PAGE_GEOMETRY, ae as DEFAULT_RUN_STYLE, af as DEFAULT_TAB_INTERVAL_PT, ag as DEFAULT_TAB_INTERVAL_TWIPS, ah as DeclaredFontSubstitution, ai as DrawingClipFallback, aj as DrawingGeometry, ak as EMPTY_NUMBERING_INDEX, al as EMPTY_TAB_STOPS, am as EquationFractionGeometry, an as EquationGeometry, ao as EquationNaryGeometry, ap as EquationRadicalGeometry, aq as EquationRowGeometry, ar as EquationScriptGeometry, as as EquationSpanRecord, at as EquationTextGeometry, au as FieldAtomMarker, av as FontFingerprintInputs, i as FontRequest, aw as FontResolutionError, ax as FontResolutionErrorCode, ay as FontResourceDefinition, az as FontResourceInstrumentation, F as FontResourceSnapshot, aA as FontResourceSnapshotOptions, aB as FontSlot, k as FontSubstitution, aC as FontValidationResult, aD as GlyphOutline, aE as HARD_MAX_AGGREGATE_FONT_BYTES, aF as HARD_MAX_FONT_BYTES, aG as HARD_MAX_FONT_SOURCES, aH as LevelOverride, aI as LineSpacingRule, aJ as ListMarkerAlign, aK as ListMarkerRecord, aL as ListSuffix, aM as MAX_BORDER_SPACE_PT, aN as MAX_BORDER_WIDTH_PT, aO as MAX_LVL_OVERRIDES, aP as MAX_NUMBERING_DEFINITIONS, aQ as MAX_PARAGRAPH_SPACING_PT, aR as MAX_STYLE_BASED_ON_DEPTH, aS as MAX_STYLE_DEFINITIONS, aT as MAX_TABLE_BORDER_STROKES, aU as MAX_TABLE_NESTING, aV as MAX_TABLE_ROW_HEIGHT_PT, aW as MAX_TAB_POSITION_TWIPS, aX as MAX_TAB_STOPS, N as NormalizationPolicy, aY as NumDefinition, aZ as NumberingLevelIndent, a_ as PAGE_BORDER_SIDES, a$ as PARAGRAPH_BORDER_SIDES, b0 as PageBorderDisplay, b1 as PageBorderOffsetFrom, b2 as PageBorderSide, b3 as PageBorderStrokeRecord, b4 as PageBorderZOrder, b5 as PageRefCalibrationCell, b6 as PageRefFieldProjection, b7 as ParagraphAutoSpacingContext, b8 as ParagraphBorderEdge, b9 as ParagraphBorderSide, ba as ParagraphBorderStrokeRecord, bb as ParagraphBorders, bc as ParagraphBottomBorderRecord, bd as ParagraphIndent, be as ParagraphLayoutInputs, bf as ParagraphLineSpacing, bg as ParagraphSpacing, bh as PreferredWidth, bi as PreferredWidthType, bj as RefFieldSpec, bk as RefNoteParts, bl as ResolvedCellBorders, g as ResolvedFont, R as ResolvedRunStyle, bm as ResolvedTabStops, bn as ResolvedTableBorderEdge, bo as ResolvedTableBorderEdgeSegment, bp as ResolvedUnderline, bq as SINGLE_LINE_SPACING, br as ScriptItem, bs as SemanticArtifactRootStoryKind, bt as SemanticArtifactStoryKind, bu as SemanticCommentArtifactRecord, bv as SemanticReviewArtifactOccurrence, bw as SemanticReviewArtifactOccurrenceGeometry, bx as SemanticReviewArtifactPosition, j as SemanticReviewArtifactRecord, by as SemanticReviewArtifactSource, bz as SemanticTableCell, bA as SemanticTableRow, bB as SemanticTrackedChangeArtifactRecord, bC as ShapeInput, bD as ShapedCluster, bE as ShapedFontSpan, bF as ShapedGlyph, bG as ShapedRunComparatorInputs, bH as ShapedVerticalMetrics, bI as ShapingEnvironment, bJ as ShapingEnvironmentFingerprintInputs, e as ShapingEnvironmentInput, bK as StyleDefinition, bL as TAB_LEADER_GLYPH, bM as TabAlignment, bN as TabDestination, bO as TabLeader, bP as TabStop, bQ as TableAlignment, bR as TableBorderBox, bS as TableBorderSideName, bT as TableBorderStrokeRecord, d as TableCellFragmentRecord, bU as TableCellStyleFormatting, bV as TableFragmentRecord, c as TableRowFragmentRecord, bW as TableRowHeight, bX as TableRowHeightRule, bY as TextDirection, bZ as TextboxStoryFallbackReason, b_ as TextboxStoryLayout, b$ as UnsupportedScriptError, c0 as VerticalAlign, c1 as appliedSpaceBefore, c2 as applyLineSpacing, c3 as baselineShiftPtOf, c4 as borderExtentPt, c5 as borderWeight, c6 as bottomBorderExtentPt, c7 as boundedStructuralFontValidator, c8 as buildNumberingIndex, c9 as buildStyleCascadeTable, ca as cascadeParagraphFormatting, cb as cascadeRunProperties, cc as cascadedBottomBorder, cd as cascadedParagraphBorders, ce as cascadedTabStops, cf as collapsedSpaceBefore, cg as createFontResourceSnapshot, ch as createShapedRun, ci as createShapingEnvironment, cj as defaultTabIntervalFromSettings, ck as displayText, cl as fixedPoint, cm as fontRequestKey, cn as isValidStyleId, co as itemizeScriptFontSlots, cp as layoutEquation, cq as listMarkerBox, cr as measureDisplayText, cs as mergeListIndent, ct as nextTabDestination, cu as pageBordersFingerprint, cv as paragraphBorderExtentPt, cw as paragraphBorderStrokeWidthPt, cx as paragraphBorders, cy as paragraphBordersFingerprint, cz as paragraphBreaksBefore, cA as paragraphContextualSpacing, cB as paragraphLineSpacing, cC as paragraphSpacing, cD as paragraphTabStops, cE as parsePageBorders, cF as parseRefInstruction, cG as readBorderSide, cH as readCellBorders, cI as readNumPr, cJ as readTableBorders, cK as readTableStructure, cL as resolveBorderConflict, cM as resolveNumberingLevel, cN as resolveParagraphLayoutInputs, cO as resolveRunStyle, cP as resolveStoryListItems, cQ as resolveStoryRefFields, cR as resolveTableCellBorderGrid, cS as runStylesEqual, cT as shapedRunComparatorInputs, cU as shapingEnvironmentFingerprint, cV as shapingEnvironmentFingerprintInputs, cW as styleForFontSlot, cX as tabAdvanceWidth, cY as tabStopsFingerprint, cZ as walkStoryParagraphs, c_ as withDefaultTabInterval, c$ as withNumberingStyleLinks, d0 as withResolvedListItems } from './semantic-records-StH-AnHK.js';
3
- export { C as CacheLookup, b as CacheMiss, c as CacheProvenance, e as LayoutEnvironmentShapedMeasurerOptions, f as LayoutFontConfiguration, g as LayoutFontSource, h as LayoutFontSubstitution, i as LayoutShapingConfigurationError, j as LayoutShapingEnvironment, L as LayoutShapingInstrumentation, a as LayoutShapingOptions, O as OperationSnapshot, k as OperationSnapshotField, l as OperationSnapshotGuard, P as PreparedLayoutFontConfiguration, R as ResolvedCache, m as ResourceDependencyProvenance, S as ShapedMeasurerOptions, n as captureOperationSnapshot, o as createLayoutShapedMeasurer, p as createLayoutShaping, q as createShapedMeasurer, d as disposeLayoutShaping, r as guardOperationSnapshot, s as layoutFontConfigurationFingerprint, t as prepareLayoutFontConfiguration } from './layout-shaping-_GGjhhVc.js';
4
- import { aC as ImpactClass, i as OoxmlNode, a0 as OoxmlProperty, O as OoxmlPart, a1 as OoxmlElement, W as TreeDocOp, j as OoxmlPackage, b6 as ContentControlKind, b7 as ContentControlLevel, b9 as ContentControlLock$1, b3 as ContentControlDataBinding, a as ReviewItem } from './types-barrel-PwcfEkaX.js';
5
- export { a_ as CommentAnchor, a$ as CommentPosition, C as CommentRecord, aV as CommentThreadState, aH as DrawingAccessibility, ai as DrawingHorizontalReferenceFrame, aI as DrawingImageEffects, aJ as DrawingTransform, aj as DrawingVerticalReferenceFrame, a9 as ImageWrapTarget, c as ReviewCommentItem, d as ReviewCustomItem, R as ReviewModelInput, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind, a7 as SourceCrop, aG as TableBorderStyle, dx as VectorShapeComponent, aK as VectorShapeProjection, cp as W15_NAMESPACE_URI, dy as activeReviewItem, cT as firstReviewRange, dn as reviewItemKey, dz as reviewItemPositionRank, dp as reviewItemRanges, dA as reviewItemsAt, dB as reviewThreadRootOf } from './types-barrel-PwcfEkaX.js';
6
- import { H as HeadlessDocumentView, D as DocumentProperties, r as relationshipTargetIn } from './headless-document-view-C3fc_jV0.js';
7
- import { c as RevisionAttribution, a as RevisionDisplayMode, b as RevisionAuthorFilter } from './revision-projection-kVd7p6Wd.js';
8
- export { D as DEFAULT_REVISION_DISPLAY_MODE, d as RevisionFilter, e as RevisionKind, f as formatRevisionOf, m as markRevisionRemovesMark, p as paragraphMarkFormatRevisionOf, g as paragraphMarkRevisionOf, h as paragraphMarkRevisionsOf, r as revisionAuthorFilter, i as revisionsAreDeletion, j as revisionsVisible, s as shownMarkRevision } from './revision-projection-kVd7p6Wd.js';
9
- import { b as ResolvedFootnoteProperties, R as ResolvedEndnoteProperties } from './note-properties-CjT31AuP.js';
10
- import { c as TreeModelChange, N as NoteKind, az as noteTypeOf } from './tree-package-fragment-CpEV1gl3.js';
11
- import { a as SectionColumns } from './semantic-cell-selection-CkSsZHDL.js';
12
- export { C as CellSelection, D as DEFAULT_SECTION_PROPERTIES, b as DEFAULT_VERTICAL_WEIGHT, c as DocumentSection, d as DocumentSectionsEnumeration, e as DrawingOverlayFrame, H as HitPoint, f as HitTestOptions, M as MAX_DOCUMENT_SECTIONS, P as PlacedCell, g as SectionBreakType, h as SectionColumnDefinition, i as SectionMargins, j as SectionPageNumbering, S as SectionProperties, k as SemanticHit, l as SemanticHitDrawing, T as TableCellAddress, m as TableCellContext, n as caretBoxOnLine, o as cellSelectionBetween, p as cellSelectionRects, q as cellSelectionText, r as contentControlAtPoint, s as enumerateDocumentSections, t as enumerateDocumentSectionsBounded, u as findDrawingOverlayFrameInLayout, v as geometryOfSection, w as hitTestPage, x as hitTestSheet, y as isFurniturePoint, z as lineEndOffset, A as pageAtY, B as paragraphSectionNode, E as paragraphsInCells, F as parsePageNumbering, G as parseSectionProperties, I as projectedSectionSourceIndexes, J as readSectionProperties, K as spanOffsetX, L as spansInCells, N as tableContextAt } from './semantic-cell-selection-CkSsZHDL.js';
13
- export { M as MAX_SDT_NESTING, c as collectFlowBlocks, a as commentBodyText, b as commentInitials, j as contentControlContentChildren, i as isContentControl, f as isContentControlContent, p as paragraphOrderOfPart } from './review-paragraph-order-D3KZohIL.js';
14
- import { S as SemanticPosition, b as SelectionRect, a as SemanticSelection } from './semantic-interaction-Z2Xa68U5.js';
15
- export { c as CaretAtOptions, C as CaretGeometry, M as MoveCaretOptions, N as NavigationCommand, d as caretAt, e as caretStops, f as caretStopsForBlocks, g as compositionAnchor, h as contentControlAtSemantic, i as contentControlsInLayout, j as deletedTextBoundaries, k as hitTestSemantic, m as moveCaret, p as paragraphTextFromLayout, s as spansInSelection } from './semantic-interaction-Z2Xa68U5.js';
16
- import './image-resources-DxF-SN_8.js';
17
- import './omml-equation-Bk3OP1fv.js';
1
+ import { n as NumberingLevel, o as NumberingIndex, S as SemanticLayout, p as ParagraphFragmentRecord, q as LayoutBox, D as DrawingPoint, r as DrawingInsets, a as StyleSpanRecord, I as InlineDrawingRecord, M as ModelRange, s as TableBorderSide, B as BlockFragmentRecord, A as AnchoredDrawingRecord, t as PageRecord, u as ResolvedListItem, v as CellBorderBox, w as TableCellStyleFormatting, x as TableFloatPosition, y as TableBorderBox, z as StyleCascadeTable, L as LineRecord, E as NoteAreaRecord, H as HeaderFooterStoryRecord, G as NoteStoryRecord, C as ContentControlBoundaryRecord$1, J as ContentControlLock, T as TextMeasurer, V as VersionedShapingLibrary, f as TextShaper, K as FontByteValidator, h as FixedPointRoundingMode, O as FixedPoint, m as ShapedRun, Q as SourceRange, U as HyperlinkProjector, W as InlineDrawingLayoutContext, X as FieldLinkProjector, Y as StoryPageFieldNeeds, Z as RefFieldContext, _ as HyperlinkFieldSpec, $ as SpanLinkRecord, P as PageGeometry, b as SectionPageBorders, a0 as PageBorderFrameRecord, a1 as ParagraphBorderStrokeRecord, a2 as StrikeoutStrokePt } from './semantic-records-C5OeXnaL.js';
2
+ export { a3 as AUTO_PARAGRAPH_SPACING_PT, a4 as AbstractNumDefinition, a5 as AnchoredDrawingLayoutFallback, a6 as BidiEmbeddingLevels, a7 as BorderGridGeometry, a8 as CascadedParagraphFormatting, a9 as CjkTypographySettings, aa as ContentControlGeometryFragment, ab as ContentControlLevel, ac as ContentControlMappedType, ad as DEFAULT_PAGE_GEOMETRY, ae as DEFAULT_RUN_STYLE, af as DEFAULT_TAB_INTERVAL_PT, ag as DEFAULT_TAB_INTERVAL_TWIPS, ah as DeclaredFontSubstitution, ai as DrawingClipFallback, aj as DrawingGeometry, ak as EMPTY_NUMBERING_INDEX, al as EMPTY_TAB_STOPS, am as EquationFractionGeometry, an as EquationGeometry, ao as EquationNaryGeometry, ap as EquationRadicalGeometry, aq as EquationRowGeometry, ar as EquationScriptGeometry, as as EquationSpanRecord, at as EquationTextGeometry, au as FieldAtomMarker, av as FontFingerprintInputs, i as FontRequest, aw as FontResolutionError, ax as FontResolutionErrorCode, ay as FontResourceDefinition, az as FontResourceInstrumentation, F as FontResourceSnapshot, aA as FontResourceSnapshotOptions, aB as FontSlot, l as FontSubstitution, aC as FontValidationResult, aD as GlyphOutline, aE as HARD_MAX_AGGREGATE_FONT_BYTES, aF as HARD_MAX_FONT_BYTES, aG as HARD_MAX_FONT_SOURCES, aH as LevelOverride, aI as LineSpacingRule, aJ as ListMarkerAlign, k as ListMarkerPictureRecord, aK as ListMarkerRecord, aL as ListSuffix, aM as MAX_BORDER_SPACE_PT, aN as MAX_BORDER_WIDTH_PT, aO as MAX_LVL_OVERRIDES, aP as MAX_NUMBERING_DEFINITIONS, aQ as MAX_PARAGRAPH_SPACING_PT, aR as MAX_STYLE_BASED_ON_DEPTH, aS as MAX_STYLE_DEFINITIONS, aT as MAX_TABLE_BORDER_STROKES, aU as MAX_TAB_POSITION_TWIPS, aV as MAX_TAB_STOPS, N as NormalizationPolicy, aW as NumDefinition, aX as NumberingLevelIndent, aY as NumberingPictureBullet, aZ as PAGE_BORDER_SIDES, a_ as PARAGRAPH_BORDER_SIDES, a$ as PageBorderDisplay, b0 as PageBorderOffsetFrom, b1 as PageBorderSide, b2 as PageBorderStrokeRecord, b3 as PageBorderZOrder, b4 as PageRefCalibrationCell, b5 as PageRefFieldProjection, b6 as ParagraphAutoSpacingContext, b7 as ParagraphBorderEdge, b8 as ParagraphBorderSide, b9 as ParagraphBorders, ba as ParagraphBottomBorderRecord, bb as ParagraphIndent, bc as ParagraphLayoutInputs, bd as ParagraphLineSpacing, be as ParagraphSpacing, bf as RefFieldSpec, bg as RefNoteParts, bh as ResolvedCellBorders, g as ResolvedFont, bi as ResolvedPictureBullet, R as ResolvedRunStyle, bj as ResolvedTabStops, bk as ResolvedTableBorderEdge, bl as ResolvedTableBorderEdgeSegment, bm as ResolvedUnderline, bn as SINGLE_LINE_SPACING, bo as ScriptItem, bp as SemanticArtifactRootStoryKind, bq as SemanticArtifactStoryKind, br as SemanticCommentArtifactRecord, bs as SemanticReviewArtifactOccurrence, bt as SemanticReviewArtifactOccurrenceGeometry, bu as SemanticReviewArtifactPosition, j as SemanticReviewArtifactRecord, bv as SemanticReviewArtifactSource, bw as SemanticTrackedChangeArtifactRecord, bx as ShapeInput, by as ShapedCluster, bz as ShapedFontSpan, bA as ShapedGlyph, bB as ShapedRunComparatorInputs, bC as ShapedVerticalMetrics, bD as ShapingEnvironment, bE as ShapingEnvironmentFingerprintInputs, e as ShapingEnvironmentInput, bF as StyleDefinition, bG as TAB_LEADER_GLYPH, bH as TabAlignment, bI as TabDestination, bJ as TabLeader, bK as TabStop, bL as TableBorderSideName, bM as TableBorderStrokeRecord, d as TableCellFragmentRecord, bN as TableFragmentRecord, c as TableRowFragmentRecord, bO as TextDirection, bP as TextboxStoryFallbackReason, bQ as TextboxStoryLayout, bR as UnsupportedScriptError, bS as VerticalAlign, bT as appliedSpaceBefore, bU as applyLineSpacing, bV as baselineShiftPtOf, bW as borderExtentPt, bX as borderWeight, bY as bottomBorderExtentPt, bZ as boundedStructuralFontValidator, b_ as buildNumberingIndex, b$ as buildStyleCascadeTable, c0 as cascadeParagraphFormatting, c1 as cascadeRunProperties, c2 as cascadedBottomBorder, c3 as cascadedParagraphBorders, c4 as cascadedTabStops, c5 as collapsedSpaceBefore, c6 as createFontResourceSnapshot, c7 as createShapedRun, c8 as createShapingEnvironment, c9 as defaultTabIntervalFromSettings, ca as displayText, cb as fixedPoint, cc as fontRequestKey, cd as glyphSizeFactorOf, ce as isValidStyleId, cf as itemizeScriptFontSlots, cg as layoutEquation, ch as measureDisplayText, ci as mergeListIndent, cj as nextTabDestination, ck as pageBordersFingerprint, cl as paragraphBorderExtentPt, cm as paragraphBorderStrokeWidthPt, cn as paragraphBorders, co as paragraphBordersFingerprint, cp as paragraphBreaksBefore, cq as paragraphContextualSpacing, cr as paragraphLineSpacing, cs as paragraphSpacing, ct as paragraphTabStops, cu as parsePageBorders, cv as parseRefInstruction, cw as readBorderSide, cx as readCellBorders, cy as readNumPr, cz as readTableBorders, cA as resolveBorderConflict, cB as resolveNumberingLevel, cC as resolveParagraphLayoutInputs, cD as resolveRunStyle, cE as resolveStoryListItems, cF as resolveStoryRefFields, cG as resolveTableCellBorderGrid, cH as runStylesEqual, cI as shapedRunComparatorInputs, cJ as shapingEnvironmentFingerprint, cK as shapingEnvironmentFingerprintInputs, cL as styleForFontSlot, cM as tabAdvanceWidth, cN as tabStopsFingerprint, cO as walkStoryParagraphs, cP as withDefaultTabInterval, cQ as withNumberingStyleLinks, cR as withResolvedListItems } from './semantic-records-C5OeXnaL.js';
3
+ export { C as CacheLookup, b as CacheMiss, c as CacheProvenance, e as LayoutEnvironmentShapedMeasurerOptions, f as LayoutFontConfiguration, g as LayoutFontSource, h as LayoutFontSubstitution, i as LayoutShapingConfigurationError, j as LayoutShapingEnvironment, L as LayoutShapingInstrumentation, a as LayoutShapingOptions, O as OperationSnapshot, k as OperationSnapshotField, l as OperationSnapshotGuard, P as PreparedLayoutFontConfiguration, R as ResolvedCache, m as ResourceDependencyProvenance, S as ShapedMeasurerOptions, n as captureOperationSnapshot, o as createLayoutShapedMeasurer, p as createLayoutShaping, q as createShapedMeasurer, d as disposeLayoutShaping, r as guardOperationSnapshot, s as layoutFontConfigurationFingerprint, t as prepareLayoutFontConfiguration } from './layout-shaping-Dyr0ZSOI.js';
4
+ import { aC as ImpactClass, i as OoxmlNode, a0 as OoxmlProperty, a1 as OoxmlElement, O as OoxmlPart, W as TreeDocOp, j as OoxmlPackage, b6 as ContentControlKind, b7 as ContentControlLevel, b9 as ContentControlLock$1, b3 as ContentControlDataBinding, a as ReviewItem } from './types-barrel-ChGvWjkO.js';
5
+ export { a_ as CommentAnchor, a$ as CommentPosition, C as CommentRecord, aV as CommentThreadState, aH as DrawingAccessibility, aj as DrawingHorizontalReferenceFrame, aI as DrawingImageEffects, aJ as DrawingTransform, ak as DrawingVerticalReferenceFrame, aa as ImageWrapTarget, c as ReviewCommentItem, d as ReviewCustomItem, R as ReviewModelInput, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind, a8 as SourceCrop, aG as TableBorderStyle, dx as VectorShapeComponent, aK as VectorShapeProjection, cp as W15_NAMESPACE_URI, dy as activeReviewItem, cT as firstReviewRange, dn as reviewItemKey, dz as reviewItemPositionRank, dp as reviewItemRanges, dA as reviewItemsAt, dB as reviewThreadRootOf } from './types-barrel-ChGvWjkO.js';
6
+ import { H as HeadlessDocumentView, D as DocumentProperties, r as relationshipTargetIn } from './headless-document-view-9wjJT20Y.js';
7
+ import { c as RevisionAttribution, a as RevisionDisplayMode, b as RevisionAuthorFilter } from './revision-projection-DDVBYTIG.js';
8
+ export { D as DEFAULT_REVISION_DISPLAY_MODE, d as RevisionFilter, e as RevisionKind, f as formatRevisionOf, m as markRevisionRemovesMark, p as paragraphMarkFormatRevisionOf, g as paragraphMarkRevisionOf, h as paragraphMarkRevisionsOf, r as revisionAuthorFilter, i as revisionsAreDeletion, j as revisionsVisible, s as shownMarkRevision } from './revision-projection-DDVBYTIG.js';
9
+ import { b as ResolvedFootnoteProperties, R as ResolvedEndnoteProperties } from './note-properties-D_lmG9xx.js';
10
+ import { c as TreeModelChange, N as NoteKind, az as noteTypeOf } from './tree-package-fragment-DBb97w3F.js';
11
+ import { a as SectionColumns } from './semantic-cell-selection-DW6qsmoC.js';
12
+ export { C as CellSelection, D as DEFAULT_SECTION_PROPERTIES, b as DEFAULT_VERTICAL_WEIGHT, c as DocumentSection, d as DocumentSectionsEnumeration, e as DrawingOverlayFrame, H as HitPoint, f as HitTestOptions, M as MAX_DOCUMENT_SECTIONS, P as PlacedCell, g as SectionBreakType, h as SectionColumnDefinition, i as SectionMargins, j as SectionPageNumbering, S as SectionProperties, k as SemanticHit, l as SemanticHitDrawing, T as TableCellAddress, m as TableCellContext, n as caretBoxOnLine, o as cellSelectionBetween, p as cellSelectionRects, q as cellSelectionText, r as contentControlAtPoint, s as enumerateDocumentSections, t as enumerateDocumentSectionsBounded, u as findDrawingOverlayFrameInLayout, v as geometryOfSection, w as hitTestPage, x as hitTestSheet, y as isFurniturePoint, z as lineEndOffset, A as pageAtY, B as paragraphSectionNode, E as paragraphsInCells, F as parsePageNumbering, G as parseSectionProperties, I as projectedSectionSourceIndexes, J as readSectionProperties, K as spanOffsetX, L as spansInCells, N as tableContextAt } from './semantic-cell-selection-DW6qsmoC.js';
13
+ export { M as MAX_SDT_NESTING, c as collectFlowBlocks, a as commentBodyText, b as commentInitials, j as contentControlContentChildren, i as isContentControl, f as isContentControlContent, p as paragraphOrderOfPart } from './review-paragraph-order-BjUs-tDd.js';
14
+ import { S as SemanticPosition, b as SelectionRect, a as SemanticSelection } from './semantic-interaction-BNiYSBcB.js';
15
+ export { c as CaretAtOptions, C as CaretGeometry, M as MoveCaretOptions, N as NavigationCommand, d as caretAt, e as caretStops, f as caretStopsForBlocks, g as compositionAnchor, h as contentControlAtSemantic, i as contentControlsInLayout, j as deletedTextBoundaries, k as hitTestSemantic, m as moveCaret, p as paragraphTextFromLayout, s as spansInSelection } from './semantic-interaction-BNiYSBcB.js';
16
+ import './image-resources-B0v-XaTM.js';
17
+ import './omml-equation-CfTm3jOK.js';
18
18
  import './editor-scope-OHPwVQ5l.js';
19
19
 
20
20
  /**
@@ -165,6 +165,8 @@ interface PendingPositionedTableTokens {
165
165
 
166
166
  /** Numeric, auto-height text frames. Other frame variants retain ordinary flow. */
167
167
  interface ParagraphFrame {
168
+ /** Explicit-size drop cap aligned against this many lines of its anchor paragraph. */
169
+ readonly dropCapLines?: number;
168
170
  readonly x: number;
169
171
  readonly y: number;
170
172
  readonly width: number;
@@ -267,6 +269,8 @@ interface NoteMarkContext {
267
269
  * inherit identity from the enclosing note via this key.
268
270
  */
269
271
  readonly activeNoteKey?: string;
272
+ /** Project separator markers as inline rules inside their authored stories. */
273
+ readonly measureSeparatorMarkers?: true;
270
274
  }
271
275
  /**
272
276
  * The key one note's mark is stored under — `footnote:N` / `endnote:N`.
@@ -282,6 +286,7 @@ declare function noteMarkKey(noteKind: NoteKind, noteId: number): string;
282
286
  */
283
287
  type NoteNavDirection = 'to-note' | 'to-body';
284
288
  interface ProjectedNoteMark {
289
+ readonly noteSeparator?: 'separator' | 'continuationSeparator';
285
290
  readonly text: string;
286
291
  readonly measureText?: string;
287
292
  readonly projected: boolean;
@@ -437,12 +442,22 @@ interface WrapExclusionInput {
437
442
  /** Paint layer relative to body text — not the OOXML wrap element. */
438
443
  type DrawingPaintLayer = 'behind' | 'inFront';
439
444
  interface ExclusionZone {
440
- /** Non-drawing objects publish their anchor exclusion directly instead of synthesizing it. */
441
- readonly sourceKind?: 'table' | 'frame';
445
+ /** Objects outside body drawing flow publish their exclusion directly instead of synthesizing it. */
446
+ readonly sourceKind?: 'table' | 'frame' | 'furniture';
442
447
  readonly drawingNodeId: string;
443
448
  readonly anchorParagraphId: string;
444
449
  /** UTF-16 model offset of the anchor atom — exclusions apply at/after this point in the paragraph. */
445
450
  readonly anchorModelStart: number;
451
+ /**
452
+ * The band's vertical position is resolved against the page or a margin, not against the
453
+ * anchor's own flow position, so it cannot move when the text beside it reflows.
454
+ *
455
+ * Such a band excludes every line it crosses on its page, including lines that PRECEDE the
456
+ * anchor — a picture pinned to the top of the margin wraps the paragraphs above its anchor
457
+ * exactly as it wraps the ones below. Flow-relative bands (`paragraph`, `line`) stay
458
+ * forward-only: reaching back would move the anchor that positions them.
459
+ */
460
+ readonly pageFramedBand?: boolean;
446
461
  readonly sourceOrder: number;
447
462
  readonly paintLayer: DrawingPaintLayer;
448
463
  readonly relativeHeight: number;
@@ -488,6 +503,21 @@ interface PendingLine {
488
503
  deletedRanges?: readonly ModelRange[];
489
504
  /** Vertical gap inserted before this line to clear a drawing exclusion band. */
490
505
  exclusionSkipBefore?: number;
506
+ /**
507
+ * The horizontal passage a float left this line, when that passage is narrower than the
508
+ * paragraph's measure and holds the whole line.
509
+ *
510
+ * `start` is where the line's content begins (after any first-line indent) and `end` is the
511
+ * passage's right edge, both in paragraph-local coordinates. Centring, right alignment and
512
+ * justification align INSIDE this passage: Word centres a heading between the two pictures
513
+ * beside it, not between the page margins, and stretches a justified line to the float's
514
+ * near edge rather than through it. Absent when no float shortens the line, when the line
515
+ * steps over a float into a later passage, or when the passage is the whole measure.
516
+ */
517
+ wrapSegment?: {
518
+ readonly start: number;
519
+ readonly end: number;
520
+ };
491
521
  /** Tracked anchored-drawing attributions on this line; see {@link LineRecord.anchorRevisions}. */
492
522
  anchorRevisions?: readonly RevisionAttribution[];
493
523
  /** Revisions a resolved view answered on this line; see {@link LineRecord.changeSites}. */
@@ -508,14 +538,14 @@ declare function effectiveBorderSide(authored: TableBorderSide, tableSide: Table
508
538
  }): TableBorderSide;
509
539
 
510
540
  /** Minimum stroke width for a compound (double/triple) band, in points. */
511
- declare const COMPOUND_BORDER_MIN_STROKE_PT = 1;
541
+ declare const COMPOUND_BORDER_MIN_STROKE_PT = 0.25;
512
542
  /** Minimum gap between compound strokes, in points. */
513
- declare const COMPOUND_BORDER_MIN_GAP_PT = 1;
543
+ declare const COMPOUND_BORDER_MIN_GAP_PT = 0.25;
514
544
  /**
515
545
  * How a multi-line border style (double, triple) is drawn: stroke width, gap, and total extent.
516
546
  *
517
- * The band is CENTRED on the authored width, so a double border occupies the space Word gives it
518
- * rather than growing the cell it surrounds.
547
+ * Table stroke coordinates centre the painted band on the authored edge box.
548
+ * Content insets must also account for the portion that extends inward.
519
549
  */
520
550
  interface CompoundBorderMetrics {
521
551
  readonly strokePt: number;
@@ -525,10 +555,9 @@ interface CompoundBorderMetrics {
525
555
  readonly insetPt: number;
526
556
  }
527
557
  /**
528
- * Deterministic double stroke / gap / extent in layout points (scale-independent).
529
- *
530
- * Thin authored widths inflate to a 1+1+1 point compound so a `w:sz="3"` double remains
531
- * visible at paint scale 1 — matching Word's hairline-double floor.
558
+ * Double strokes use the authored width, with a quarter-point minimum.
559
+ * The complete band is centred on the authored edge box. Device pixel rounding
560
+ * belongs to rendering; these layout metrics remain in continuous points.
532
561
  */
533
562
  declare function computeDoubleBorderMetricsPt(widthPt: number): CompoundBorderMetrics;
534
563
 
@@ -730,9 +759,78 @@ interface LayoutSession {
730
759
  */
731
760
  declare function createLayoutSession(): LayoutSession;
732
761
 
762
+ /**
763
+ * Horizontal marker box inside the first-line indent slot.
764
+ *
765
+ * Coordinates are relative to the same origin as paragraph content (`indent.left` is the
766
+ * text start). Returns null when there is nothing to paint.
767
+ *
768
+ * `w:hanging` and a positive `w:firstLine` are one mutually exclusive slot
769
+ * (§17.3.1.10, §17.3.1.12), so the marker has two placements, not an interaction:
770
+ * a hanging level puts the marker BEFORE the text start (`left - hanging`); a
771
+ * positive-firstLine level puts it AFTER (`left + firstLine`) — the standard legal
772
+ * shape `w:ind w:left="0" w:firstLine="720"` numbers at 0.5" while continuation
773
+ * lines return to the margin. Reading only the hanging model painted every such
774
+ * marker at the left margin.
775
+ */
776
+ declare function listMarkerBox(item: ResolvedListItem, markerWidth: number, lineY: number, lineHeight: number): {
777
+ x: number;
778
+ y: number;
779
+ width: number;
780
+ height: number;
781
+ } | null;
782
+
733
783
  /** Far above anything Word authors (its UI caps at 63) while keeping allocation bounded. */
734
784
  declare const MAX_TABLE_COLUMNS = 1024;
735
785
 
786
+ /**
787
+ * `w:tblW` / `w:tcW` / `w:wBefore` (CT_TblWidth, 17.4.63 / 17.4.71 / 17.4.86): a PREFERRED
788
+ * width plus the unit it is stated in. Preferred is the operative word — it is what the
789
+ * producer asked for, not what the table resolved to.
790
+ *
791
+ * `pct` is stated in fiftieths of a percent (5000 = 100%) by Word, and in the `"50%"`
792
+ * string form of `ST_Percentage` by others; both are read. `auto` and `nil` carry no width.
793
+ */
794
+ type PreferredWidthType = 'dxa' | 'pct' | 'auto' | 'nil';
795
+ /**
796
+ * `w:tblW` / `w:tcW` — a requested width, whose UNIT depends on its type.
797
+ *
798
+ * Points for `dxa`, percent for `pct`, and zero for `auto`/`nil`. Reading `value` without `type`
799
+ * is always wrong.
800
+ */
801
+ interface PreferredWidth {
802
+ readonly type: PreferredWidthType;
803
+ /** POINTS for `dxa`, PERCENT (0–100) for `pct`, 0 for `auto`/`nil`. */
804
+ readonly value: number;
805
+ }
806
+ /** The frozen "no preferred width" value — what a table or cell that declares none resolves to. */
807
+ declare const AUTO_PREFERRED_WIDTH: PreferredWidth;
808
+
809
+ /**
810
+ * The uniform 3 pt (60 twip) inset this lane used to apply on every side.
811
+ *
812
+ * Word's defaults are not uniform — see {@link DEFAULT_CELL_MARGINS} — so nothing resolves
813
+ * against this any more. Kept because it is published.
814
+ */
815
+ declare const CELL_PAD = 3;
816
+ /** Resolved cell padding in points, after the table default and any per-cell override. */
817
+ interface CellMarginsPt {
818
+ readonly top: number;
819
+ readonly right: number;
820
+ readonly bottom: number;
821
+ readonly left: number;
822
+ }
823
+ /**
824
+ * Traditional default table-style padding: 0 vertical, 108 twips horizontal.
825
+ *
826
+ * Kept as a published constant. Authored styles can supply these values; omitted
827
+ * margins instead resolve to a 10-twip horizontal application fallback.
828
+ */
829
+ declare const DEFAULT_CELL_MARGINS: CellMarginsPt;
830
+
831
+ /** `w:vAlign` — where a cell's content sits when the row is taller than the content. */
832
+ type CellVerticalAlign = 'top' | 'center' | 'bottom';
833
+
736
834
  /**
737
835
  * Where a table's left edge sits inside the box that contains it.
738
836
  *
@@ -742,6 +840,188 @@ declare const MAX_TABLE_COLUMNS = 1024;
742
840
  */
743
841
  declare function tableOriginX(structure: SemanticTableStructure, containerWidthPt: number): number;
744
842
 
843
+ /**
844
+ * Layout-time nesting ceiling. Parse-time depth (MAX_DEPTH = 256 XML levels) alone still
845
+ * admits ~80 levels of `w:tbl` recursion into the layout walk; deeper tables render as an
846
+ * empty cell box rather than recursing.
847
+ */
848
+ declare const MAX_TABLE_NESTING = 16;
849
+ /**
850
+ * Soft ceiling on an authored `w:trHeight` (~22"). Hostile `w:val` otherwise becomes a
851
+ * multi-page row that every pagination preflight and cell box inherits.
852
+ */
853
+ declare const MAX_TABLE_ROW_HEIGHT_PT: number;
854
+ /**
855
+ * `w:trPr/w:trHeight` (17.4.81) resolved for layout. Points leave the reader already —
856
+ * twips convert once here, matching every other table geometry boundary.
857
+ *
858
+ * Word quirk (matches Form025U and Word's UI export): a present `@w:val` with an omitted
859
+ * `@w:hRule` is treated as `atLeast`, not ECMA's `auto`. Explicit `auto` still ignores val.
860
+ */
861
+ type TableRowHeightRule = 'auto' | 'atLeast' | 'exact';
862
+ /**
863
+ * `w:trHeight` — a row's height rule and its value.
864
+ *
865
+ * `auto` carries no value at all, which is why this is a union rather than a rule plus an
866
+ * optional number.
867
+ */
868
+ type TableRowHeight = {
869
+ readonly rule: 'auto';
870
+ } | {
871
+ readonly rule: 'atLeast' | 'exact';
872
+ readonly valuePt: number;
873
+ };
874
+ /** `w:tblPr/w:jc` (17.4.29, ST_JcTable): where the table sits within the text column. */
875
+ type TableAlignment = 'left' | 'center' | 'right';
876
+ /**
877
+ * One cell in the resolved table structure.
878
+ *
879
+ * `gridSpan` is clamped at READ time and layout never re-derives it — the value comes from a file
880
+ * and would otherwise be a loop bound an attacker controls.
881
+ */
882
+ interface SemanticTableCell {
883
+ readonly id: string;
884
+ /** Derived content-edge geometry for a verified legacy percentage-width parent table. */
885
+ readonly legacyContentAlignment?: true;
886
+ /** Resolved simple side rules centered on a legacy absolute-width table grid. */
887
+ readonly centeredSideRules?: true;
888
+ /** Simple side rules painted centered on the grid line, without moving the content edge. */
889
+ readonly centeredSidePaint?: true;
890
+ /** Clamped to [1, MAX_TABLE_COLUMNS] at read time; layout never re-derives it. */
891
+ readonly gridSpan: number;
892
+ /** Physical grid column after width/style resolution and the bidiVisual projection. */
893
+ readonly gridColumn: number;
894
+ /** Stored grid index when bidiVisual maps this cell into a physical RTL grid. */
895
+ readonly logicalGridColumn?: number;
896
+ /** Canonical `w:gridCol` node id for this cell's start column, when the grid is authored. */
897
+ readonly gridColumnId?: string;
898
+ /** A vMerge cell that is not the restart continues the cell above: box, no content. */
899
+ readonly vMergeContinue: boolean;
900
+ /** `w:hideMark` excludes the end-of-cell glyph from row sizing. */
901
+ readonly hideEndMark?: boolean;
902
+ /** `w:vAlign` — defaults to top when omitted/unrecognised. */
903
+ readonly vAlign: CellVerticalAlign;
904
+ /** `w:textDirection`; unsupported values keep horizontal layout. */
905
+ readonly textDirection: 'horizontal' | 'btLr';
906
+ /** Resolved per-side margins (tcMar over tblCellMar over the table style over Word's default). */
907
+ readonly margins: CellMarginsPt;
908
+ /** Three-state authored `tcBorders` (omitted / none / edge). */
909
+ readonly borders: CellBorderBox;
910
+ /** Resolved incident edges used for content clearance, preserving authored border provenance. */
911
+ readonly contentBorders?: CellBorderBox;
912
+ /** The resolved cell (including a vertical merge) ends at the authored table bottom. */
913
+ readonly contentBottomIsOuter?: boolean;
914
+ /** Clearance this AUTHORED ROW reserves above its content for its own top rule, in points. */
915
+ readonly topBandClearancePt?: number;
916
+ /** The CELL declares `w:tcBorders/w:top` as `nil`, rather than a table style doing so. */
917
+ readonly suppressesTopBand?: true;
918
+ /** Row-local clearance in points for authored minima, before vMerge combines content boxes. */
919
+ readonly minimumContentInsets?: {
920
+ readonly top: number;
921
+ readonly bottom: number;
922
+ };
923
+ /** Validated 6-hex shading fill, absent for none/auto. */
924
+ readonly shading?: string;
925
+ /**
926
+ * `w:tcW` — the width this cell asked for, as authored.
927
+ *
928
+ * Published for consumers that need the cell's own statement (a column-resize handle has
929
+ * to write back to it). Column geometry is NOT derived from this field: the resolver works
930
+ * from a flat claim list built in the same pass, because resolving a column means looking
931
+ * at every cell that covers it across every row, not at one cell at a time. Read
932
+ * `columnWidthsPt` for what the table actually laid out.
933
+ */
934
+ readonly preferredWidth: PreferredWidth;
935
+ /**
936
+ * What the table style says about this cell's paragraphs and runs (17.7.6.6) — a header
937
+ * row's bold and centring live here, not in the cell's own properties.
938
+ */
939
+ readonly styleFormatting: TableCellStyleFormatting;
940
+ /** Block children in reading order, with content-control wrappers flattened. */
941
+ readonly blocks: readonly OoxmlElement[];
942
+ }
943
+ /** One row in the resolved structure: its cells, its height rule, and any row-level revision. */
944
+ interface SemanticTableRow {
945
+ readonly id: string;
946
+ /** Pending Word row insertion/deletion authored in `w:trPr`. */
947
+ readonly revisionKind?: 'insert' | 'delete';
948
+ /**
949
+ * The `w:trPr/w:ins|w:del` attribution, carried with the kind so a painted row can say
950
+ * WHOSE pending decision it is — the review model addresses the decision by exactly this
951
+ * `(id, author, date)` triple, and a surface with only the kind could highlight the row
952
+ * but never open its card.
953
+ */
954
+ readonly revisionId?: string;
955
+ readonly revisionAuthor?: string;
956
+ readonly revisionDate?: string;
957
+ /** The row insertion a resolved view kept the row through; see the fragment record. */
958
+ readonly changeSites?: readonly RevisionAttribution[];
959
+ /** `w:trPr/w:tblHeader` — the row repeats atop each page the table continues onto. */
960
+ readonly isHeader: boolean;
961
+ /**
962
+ * `w:trPr/w:cantSplit` — the row must stay on one page. When no page can hold it, the
963
+ * row starts on a fresh page and splits there, so its content is kept.
964
+ */
965
+ readonly cantSplit: boolean;
966
+ /** `w:trPr/w:trHeight` — auto / atLeast floor / exact (clipped) row height. */
967
+ readonly height: TableRowHeight;
968
+ readonly cells: readonly SemanticTableCell[];
969
+ }
970
+ /**
971
+ * A table resolved into a rectangular grid: column widths, rows, and the widths it asked for.
972
+ *
973
+ * The grid is normalized here so layout never has to reconcile `w:gridCol` against actual cell
974
+ * spans — vertical merges and column spans are already accounted for.
975
+ */
976
+ interface SemanticTableStructure {
977
+ /** Whether stored columns and horizontal table properties display right to left. */
978
+ readonly bidiVisual?: true;
979
+ readonly columnWidthsPt: readonly number[];
980
+ readonly rows: readonly SemanticTableRow[];
981
+ /** Verified pre-2013 percentage-width inline table; derived, never serialized. */
982
+ readonly legacyContentAlignment?: true;
983
+ /** `w:tblPr/w:tblW` — the width the table asked for. */
984
+ readonly tableWidth: PreferredWidth;
985
+ /**
986
+ * `w:tblInd` (17.4.50) in points — "this indentation should shift the table into the text
987
+ * margin by the specified amount". Applies to a left-aligned table; `w:jc` decides the
988
+ * placement outright for the other two.
989
+ */
990
+ readonly indentPt: number;
991
+ /** `w:tblPr/w:jc` (17.4.29) — where the table sits in the text column. */
992
+ readonly alignment: TableAlignment;
993
+ /**
994
+ * `w:tblPr/w:tblpPr` (17.4.57) — present when the table is positioned against an anchor
995
+ * box. Placement then comes from {@link tableFloatOriginX} rather than `w:jc`/`w:tblInd`.
996
+ */
997
+ readonly float?: TableFloatPosition;
998
+ /**
999
+ * `w:tblCellSpacing` (17.4.45) in points: the gap between adjacent cell edges. Applied as
1000
+ * a half-gap inset on each side of every cell, so cells separate visually without the grid
1001
+ * itself moving. Word ALSO grows the table's overall width by the spacing it adds around
1002
+ * the outside; that part is not modelled, so a spaced table is laid out on the same grid
1003
+ * its file states rather than a wider one.
1004
+ */
1005
+ readonly cellSpacingPt: number;
1006
+ /**
1007
+ * `w:tblPr/w:tblLayout/@w:type="fixed"` (17.4.52 — 17.4.53 is the `w:tblPrEx` exception
1008
+ * variant, not this element). Fixed layout takes the grid as final;
1009
+ * anything else is autofit, which in Word never renders wider than the text column.
1010
+ */
1011
+ readonly layoutFixed: boolean;
1012
+ /** Table-level `tblBorders` (three-state, including insideH/insideV). */
1013
+ readonly tableBorders: TableBorderBox;
1014
+ /** Table-level `tblCellMar` defaults (per-side, Word's own default when a side is omitted). */
1015
+ readonly defaultMargins: CellMarginsPt;
1016
+ }
1017
+ /**
1018
+ * Read one typed table node into a bounded structure, or null when the node is not a
1019
+ * typed table or sits beyond the nesting ceiling.
1020
+ */
1021
+ declare function readTableStructure(table: OoxmlNode, contentWidthPt: number, depth: number, styleCascade?: StyleCascadeTable,
1022
+ /** Which revisions the view resolves away; only the proposed result performs the join. */
1023
+ displayMode?: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter, compatibilityMode?: number): SemanticTableStructure | null;
1024
+
745
1025
  /**
746
1026
  * Depth-first paragraph fragments of one page, in reading order.
747
1027
  *
@@ -1020,6 +1300,28 @@ declare function wordBoundary(text: string, offset: number, direction: -1 | 1, s
1020
1300
  */
1021
1301
  declare function positionPastDeletion(layout: SemanticLayout, position: SemanticPosition): SemanticPosition;
1022
1302
 
1303
+ /**
1304
+ * Rewrite private-use symbol-font codepoints to their Unicode equivalents.
1305
+ *
1306
+ * Applies only to a known symbol-encoded family, only to the U+F020–U+F0FF range, and only
1307
+ * to codepoints with an exact Unicode counterpart — anything else is returned untouched, so
1308
+ * an unrecognised glyph is never replaced by a wrong one. Returns the input string by
1309
+ * identity when nothing changes.
1310
+ *
1311
+ * `isFamilyAvailable` is the escape hatch: a host that KNOWS the authored font is present
1312
+ * should return true, and the file's own codepoint is kept so the real typeface draws it.
1313
+ * Absent, the fallback applies, because an unmapped PUA codepoint renders as a tofu box in
1314
+ * every font that is not the symbol-encoded original.
1315
+ *
1316
+ * Called without the oracle it is also the EXTRACTION answer: the text a symbol glyph should
1317
+ * read as when the drawn glyph stays the authored one. A PDF exporter maps the drawn private
1318
+ * codepoint back through this for its `ToUnicode` table, so copying a Word bullet out of the
1319
+ * page yields a bullet rather than a private-use character.
1320
+ *
1321
+ * @public
1322
+ */
1323
+ declare function mapSymbolPuaText(text: string, fontFamily: string | null | undefined, isFamilyAvailable?: (family: string) => boolean): string;
1324
+
1023
1325
  /**
1024
1326
  * The exact HarfBuzz build this engine shapes against.
1025
1327
  *
@@ -1072,6 +1374,8 @@ interface HarfBuzzTextShaperOptions {
1072
1374
  readonly maxCodepoints?: number;
1073
1375
  readonly maxGlyphs?: number;
1074
1376
  readonly maxCachedFaces?: number;
1377
+ /** Aggregate retained native font bytes; oversized faces are shaped without retention. */
1378
+ readonly maxCachedFontBytes?: number;
1075
1379
  readonly maxCachedShapes?: number;
1076
1380
  readonly maxOutlineBytes?: number;
1077
1381
  readonly maxCachedOutlineBytes?: number;
@@ -1664,6 +1968,10 @@ interface NoteSeparatorLayout {
1664
1968
  * story has real paragraph/run/border content that paint should render as fragments.
1665
1969
  */
1666
1970
  readonly ruleStyle?: NoteSeparatorRuleStyle;
1971
+ /** Marker rule geometry inside the measured separator story. */
1972
+ readonly ruleBox?: LayoutBox;
1973
+ /** Resolved marker-run color; null/absent uses automatic black. */
1974
+ readonly ruleColor?: string | null;
1667
1975
  /** Set when an oversize authored separator was replaced with a synthetic rule. */
1668
1976
  readonly fallbackReason?: NoteLayoutFallbackReason;
1669
1977
  }
@@ -1782,9 +2090,10 @@ declare function isMarkerOnlySeparatorNote(note: OoxmlNode, displayMode?: Revisi
1782
2090
  /**
1783
2091
  * Layout the document's separator note, or synthesize a short horizontal rule.
1784
2092
  *
1785
- * Marker-only / missing separators emit no paragraph fragments — paint draws the rule
2093
+ * Single-marker / missing separators emit no paragraph fragments — paint draws the rule
1786
2094
  * from {@link NoteSeparatorLayout.ruleStyle} + box geometry. Authored separators with
1787
2095
  * real paragraph/run/border content keep their fragment story (including `w:pBdr`).
2096
+ * Explicitly empty stories and hidden markers do not acquire a default rule.
1788
2097
  *
1789
2098
  * When `maxFlowHeightPt` is set and an authored separator exceeds it, the engine fails
1790
2099
  * closed to a short synthetic rule ({@link note-separator-height-cap}) so note pagination
@@ -1792,7 +2101,7 @@ declare function isMarkerOnlySeparatorNote(note: OoxmlNode, displayMode?: Revisi
1792
2101
  */
1793
2102
  declare function layoutNoteSeparator(part: OoxmlPart | null | undefined, kind: 'separator' | 'continuationSeparator', contentWidth: number, options: LayoutNoteStoryOptions, noteKind: NoteKind, maxFlowHeightPt?: number): NoteSeparatorLayout;
1794
2103
  /** Default rule geometry for a synthetic / marker-only separator, story-relative. */
1795
- declare function syntheticSeparatorBox(contentWidth: number, flowHeight: number): LayoutBox;
2104
+ declare function syntheticSeparatorBox(contentWidth: number, flowHeight: number, kind?: 'separator' | 'continuationSeparator'): LayoutBox;
1796
2105
  /** Absolute separator box: short rule for marker/synthetic, full width for authored stories. */
1797
2106
  declare function noteSeparatorAreaBox(separator: NoteSeparatorLayout, contentX: number, contentWidth: number, areaTop: number): LayoutBox;
1798
2107
 
@@ -1960,6 +2269,11 @@ declare function filterRefsOnPage(page: PageRecord, allRefs: readonly PageRefHit
1960
2269
  * from slack makes `stable` true on the first pass and never shrinks the body — references and
1961
2270
  * notes then compete for the same band. Oversized notes still split/continue within the budget;
1962
2271
  * {@link MIN_FOOTNOTE_BODY_BAND_PT} keeps a body band so reflow cannot chase blank sheets.
2272
+ *
2273
+ * Answers under the STRICT co-location policy: every footnote starts on the page that
2274
+ * references it. The bounded orphan-pair refinement is a second phase of the internal
2275
+ * reflow loop, which owns the strict fixed point the refinement needs as its starting
2276
+ * point and as its fallback, so a single call from outside that loop cannot reach it.
1963
2277
  */
1964
2278
  declare function computeFootnoteReserves(layout: SemanticLayout, allRefs: readonly PageRefHit[], input: NotesLayoutInput, noteMarks: NoteMarkContext,
1965
2279
  /** Session-carried notes memo (opaque; owned by this module). */
@@ -2255,8 +2569,9 @@ interface SemanticLayoutOptions {
2255
2569
  /** Canonical drawing traversal order within the owner story part. */
2256
2570
  readonly drawingSourceOrder?: ReadonlyMap<string, number>;
2257
2571
  /**
2258
- * Cross-paragraph TOC field begin/end paragraph ids. Empty chrome on these ids suppresses
2259
- * the caret placeholder line in layout while the tree nodes stay intact for refresh/save.
2572
+ * TOC instruction-only opening and ending chrome paragraph ids. Empty chrome suppresses
2573
+ * its placeholder line; opening paragraph marks after a separator remain visible result lines.
2574
+ * Tree nodes stay intact for refresh/save.
2260
2575
  */
2261
2576
  readonly tocFieldChromeParagraphIds?: ReadonlySet<string>;
2262
2577
  /**
@@ -2392,6 +2707,8 @@ interface CanvasTextMetrics {
2392
2707
  */
2393
2708
  interface CanvasTextContext {
2394
2709
  font: string;
2710
+ /** Optional browser kerning control; older contexts retain their native behavior. */
2711
+ fontKerning?: 'auto' | 'normal' | 'none';
2395
2712
  textAlign?: 'left' | 'right' | 'center' | 'start' | 'end';
2396
2713
  direction?: 'ltr' | 'rtl' | 'inherit';
2397
2714
  measureText(text: string): CanvasTextMetrics;
@@ -2529,7 +2846,7 @@ declare function storyBlocks(part: OoxmlPart, displayMode?: RevisionDisplayMode,
2529
2846
  */
2530
2847
  declare function noteStoryBlocks(note: OoxmlNode, displayMode?: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): OoxmlElement[];
2531
2848
 
2532
- /** Paragraph ids for TOC field begin/end chrome that must not reserve vertical flow when empty. */
2849
+ /** TOC boundary paragraphs whose empty instruction/chrome lines are suppressed. */
2533
2850
  declare function tocFieldChromeParagraphIds(part: OoxmlPart): ReadonlySet<string>;
2534
2851
  /**
2535
2852
  * Begin-paragraph ids of TOCs that have no visible cached result rows.
@@ -2715,6 +3032,9 @@ interface MaterializationInput {
2715
3032
  */
2716
3033
  declare function pagesToMaterialize(input: MaterializationInput): Set<number>;
2717
3034
 
3035
+ /** Character border geometry from placed spans, shared by screen and export painters. */
3036
+ declare function runBorderStrokesForLine(line: LineRecord): readonly ParagraphBorderStrokeRecord[];
3037
+
2718
3038
  /**
2719
3039
  * `w:pPr/w:rPr/w:del` or `w:moveFrom` — a tracked revision REMOVES the paragraph mark.
2720
3040
  *
@@ -2730,4 +3050,27 @@ declare function paragraphMarkDeleted(paragraph: OoxmlNode): boolean;
2730
3050
  */
2731
3051
  declare function revisionRemovesParagraph(paragraph: OoxmlNode, displayMode?: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): boolean;
2732
3052
 
2733
- export { AnchoredDrawingRecord, type AutonumFieldKind, type AutonumFieldSpec, BlockFragmentRecord, COMPOUND_BORDER_MIN_GAP_PT, COMPOUND_BORDER_MIN_STROKE_PT, type CanvasMeasurerOptions, type CanvasTextContext, type CanvasTextMetrics, type CompoundBorderMetrics, ContentControlBoundaryRecord$1 as ContentControlBoundaryRecord, type ContentControlFragmentRecord, ContentControlLock, type CreateDocumentFurnitureSourceOptions, type CreateDocumentNotesInputOptions, DEFAULT_CANVAS_FONT_STACK, type DocumentFurnitureSource, type DocumentLinkProjectors, type DocumentStyleDependencies, DrawingInsets, DrawingPoint, FieldLinkProjector, type FieldLinkRegistry, FixedPoint, FixedPointRoundingMode, FontByteValidator, GRAPHEME_SEGMENTER_LOCALE, type GraphemeBoundary, type GraphemeSegment, type GraphemeWordSegmentRecord, HARFBUZZ_SHAPING_LIBRARY, type HarfBuzzFaceCacheEvent, type HarfBuzzOutlineCacheEvent, type HarfBuzzShapeCacheEvent, HarfBuzzShapingError, type HarfBuzzShapingErrorCode, type HarfBuzzTextShaper, type HarfBuzzTextShaperInstrumentation, type HarfBuzzTextShaperOptions, HeaderFooterStoryRecord, type HeaderFooterVariantName, HyperlinkFieldSpec, HyperlinkProjector, InlineDrawingRecord, type KeyedRange, LayoutBox, type LayoutCacheStats, type LayoutScheduler, type LayoutSchedulerOptions, type LayoutScope, type LayoutSession, type LayoutSessionStats, LineRecord, type LineSegment, type ListCounterAdvance, type ListCounterState, MAX_EACH_PAGE_MARK_CANDIDATES, MAX_LVL_TEXT_LENGTH, MAX_MARKER_TEXT_LENGTH, MAX_NOTES_LAID_OUT, MAX_NOTE_FRAGMENTS, MAX_NOTE_OVERFLOW_PAGES, MAX_NOTE_REFLOW_ATTEMPTS, MAX_TABLE_COLUMNS, MAX_TABLE_ROW_FRAGMENTS, type MaterializationInput, NoteAreaRecord, type NoteDisplayMark, type NoteLayoutFallbackReason, type NoteMarkContext, type NotePaginationFallbackReason, type NoteReferenceSite, type NoteSeparatorLayout, type NoteSeparatorRuleStyle, type NoteStoryDrawings, type NoteStoryLayout, NoteStoryRecord, type NotesAttachResult, type NotesLayoutInput, NumberingIndex, NumberingLevel, PageBorderFrameRecord, type PageFurniture, PageGeometry, PageRecord, type PageRefIndex, ParagraphFragmentRecord, type ParagraphKeyInputs, type ParagraphLayoutCache, type ParagraphLayoutCacheOptions, RefFieldContext, type RefFieldRefreshOptions, type RegisteredFieldLink, ResolvedListItem, type ResolvedSurfaceMeasurer, ReviewItem, type ReviewParagraphAnchor, RevisionAttribution, RevisionAuthorFilter, RevisionDisplayMode, SectionColumns, SectionPageBorders, SelectionRect, type SemanticDrawingLayer, type SemanticDrawingVisit, SemanticLayout, type SemanticLayoutOptions, SemanticPosition, type SemanticRootStoryKind, SemanticSelection, type SemanticSpanVisit, type SemanticStoryKind, type SemanticStoryVisit, SemanticTableStructure, ShapedRun, SourceRange, SpanLinkRecord, type StoryDrawingContext, type StoryDrawingHost, type StoryParagraphFragmentContext, type StoryProjectionDependencies, StyleCascadeTable, StyleSpanRecord, TableBorderSide, TablePaginationError, type TablePaginationErrorCode, TextMeasurer, TextShaper, VersionedShapingLibrary, type ViewportWindow, WORD_SEGMENTER_LOCALE, type WordBoundary, type WordBoundaryResolverDeps, type WordSegment, anchorLineY, attachNotesToLayout, boundedFallbackWordSegments, buildPageRefIndex, clampListValue, computeDoubleBorderMetricsPt, computeFootnoteReserves, contentControlBoundaries, contentControlHoldingParagraph, contentControlRecordsInPart, contentControlsOfLayout, createBoundedFallbackWordBoundary, createDefaultWordBoundary, createDocumentFurnitureSource, createDocumentLinkProjectors, createDocumentNotesInput, createDocumentStyleDependencies, createFieldLinkRegistry, createFixedMeasurer, createHarfBuzzTextShaper, createIntlWordBoundary, createLayoutScheduler, createLayoutSession, createListCounterState, createParagraphLayoutCache, defaultNoteSeparatorRuleStyle, deriveNoteDisplayMarks, deriveNoteDisplayMarksResolved, documentOrder, documentRelationshipTargetIn, effectiveBorderSide, effectiveContentControlLock, emptyTocPlaceholderParagraphIds, emptyTocSuppressedResultParagraphIds, everyStoryOrder, expandLvlText, exportSourceRangeOf, filterRefsOnPage, findSeparatorNote, forEachSemanticDrawing, forEachSemanticSpan, forEachSemanticStory, forEachStoryParagraphFragment, formatDecimal, formatDecimalZero, formatLowerLetter, formatLowerRoman, formatNumFmt, formatPageNumber, formatUpperLetter, formatUpperRoman, fragmentOwnsAtomOffset, fragmentsOfParagraph, graphemeBoundaryEpoch, graphemeCount, graphemeOffsetToUtf16, harfBuzzFontValidator, initializeHarfBuzz, intlGraphemeBoundary, isCanvasMeasurementAvailable, isCumulativeGeometryTrustedFromLineOrigin, isGeometryTrustedCaretOffset, isHarfBuzzInitialized, isIntlSegmenterAvailable, isIntlWordSegmenterAvailable, isMarkerOnlySeparatorNote, isWholeGraphemeHorizontalBoundary, keyedRangeRects, layoutHeaderFooterStory, layoutNoteById, layoutNoteSeparator, layoutNoteStory, layoutSemanticDocument, lineAtPosition, lineSegments, linesOf, normalNotesOf, noteDisplayMarkMap, noteLineIdPrefix, noteMarkKey, noteSeparatorAreaBox, noteStoryBlocks, pageBorderFrame, pageRefPageNumbersFromLayout, pagesToMaterialize, paragraphFragmentsOf, paragraphFragmentsOfBlocks, paragraphLayoutKey, paragraphMarkDeleted, paragraphShading, paragraphShadingBox, parseAutonumInstruction, planRefFieldResultRefresh, positionPastDeletion, projectedNoteMarkText, provisionalNoteMarks, resetGraphemeBoundary, resolveDefaultSurfaceMeasurer, resolveDefaultWordBoundary, resolveOoxmlShadingFill, resolveStrictHexFill, reviewAnchorIndex, reviewItemGeometry, revisionRemovesParagraph, roundFontUnitToFixedPoint, segmentGraphemes, segmentWords, selectionRects, semanticHorizontalBoundaries, setGraphemeBoundary, setHarfBuzzWasmUrl, sha256FontBytes, shadingFillFromElement, shapedHorizontalBoundaries, storyBlocks, syntheticSeparatorBox, tableOriginX, tocFieldChromeParagraphIds, tryCreateCanvasMeasurer, unionLayoutBoxes, utf16OffsetToGrapheme, wordBoundary, wordSegmentsToGraphemeRecords };
3053
+ /**
3054
+ * Fit complete leader advances to one shared horizontal grid.
3055
+ *
3056
+ * `startPt` is measured from the paper's left edge, or the local textbox frame.
3057
+ * Offsets remain relative to the supplied gap. No glyph is clipped at either end,
3058
+ * and lines in the same face share their dot columns regardless of preceding text.
3059
+ * @public
3060
+ */
3061
+ declare function tabLeaderPattern(startPt: number, widthPt: number, advancePt: number): {
3062
+ readonly offsetPt: number;
3063
+ readonly count: number;
3064
+ };
3065
+
3066
+ /**
3067
+ * Story-relative rule box for a measured separator span.
3068
+ *
3069
+ * Word paints `w:separator` as a strikeout stroke, so `stroke` carries the face's `OS/2`
3070
+ * `yStrikeoutPosition` and `yStrikeoutSize` at the run's size. Without a resolved face the
3071
+ * box keeps the legacy quarter-em offset and hairline thickness.
3072
+ * @public
3073
+ */
3074
+ declare function noteSeparatorRuleBox(span: StyleSpanRecord, line: LineRecord, stroke?: StrikeoutStrokePt): LayoutBox;
3075
+
3076
+ export { AUTO_PREFERRED_WIDTH, AnchoredDrawingRecord, type AutonumFieldKind, type AutonumFieldSpec, BlockFragmentRecord, CELL_PAD, COMPOUND_BORDER_MIN_GAP_PT, COMPOUND_BORDER_MIN_STROKE_PT, type CanvasMeasurerOptions, type CanvasTextContext, type CanvasTextMetrics, CellBorderBox, type CellMarginsPt, type CellVerticalAlign, type CompoundBorderMetrics, ContentControlBoundaryRecord$1 as ContentControlBoundaryRecord, type ContentControlFragmentRecord, ContentControlLock, type CreateDocumentFurnitureSourceOptions, type CreateDocumentNotesInputOptions, DEFAULT_CANVAS_FONT_STACK, DEFAULT_CELL_MARGINS, type DocumentFurnitureSource, type DocumentLinkProjectors, type DocumentStyleDependencies, DrawingInsets, DrawingPoint, FieldLinkProjector, type FieldLinkRegistry, FixedPoint, FixedPointRoundingMode, FontByteValidator, GRAPHEME_SEGMENTER_LOCALE, type GraphemeBoundary, type GraphemeSegment, type GraphemeWordSegmentRecord, HARFBUZZ_SHAPING_LIBRARY, type HarfBuzzFaceCacheEvent, type HarfBuzzOutlineCacheEvent, type HarfBuzzShapeCacheEvent, HarfBuzzShapingError, type HarfBuzzShapingErrorCode, type HarfBuzzTextShaper, type HarfBuzzTextShaperInstrumentation, type HarfBuzzTextShaperOptions, HeaderFooterStoryRecord, type HeaderFooterVariantName, HyperlinkFieldSpec, HyperlinkProjector, InlineDrawingRecord, type KeyedRange, LayoutBox, type LayoutCacheStats, type LayoutScheduler, type LayoutSchedulerOptions, type LayoutScope, type LayoutSession, type LayoutSessionStats, LineRecord, type LineSegment, type ListCounterAdvance, type ListCounterState, MAX_EACH_PAGE_MARK_CANDIDATES, MAX_LVL_TEXT_LENGTH, MAX_MARKER_TEXT_LENGTH, MAX_NOTES_LAID_OUT, MAX_NOTE_FRAGMENTS, MAX_NOTE_OVERFLOW_PAGES, MAX_NOTE_REFLOW_ATTEMPTS, MAX_TABLE_COLUMNS, MAX_TABLE_NESTING, MAX_TABLE_ROW_FRAGMENTS, MAX_TABLE_ROW_HEIGHT_PT, type MaterializationInput, NoteAreaRecord, type NoteDisplayMark, type NoteLayoutFallbackReason, type NoteMarkContext, type NotePaginationFallbackReason, type NoteReferenceSite, type NoteSeparatorLayout, type NoteSeparatorRuleStyle, type NoteStoryDrawings, type NoteStoryLayout, NoteStoryRecord, type NotesAttachResult, type NotesLayoutInput, NumberingIndex, NumberingLevel, PageBorderFrameRecord, type PageFurniture, PageGeometry, PageRecord, type PageRefIndex, ParagraphBorderStrokeRecord, ParagraphFragmentRecord, type ParagraphKeyInputs, type ParagraphLayoutCache, type ParagraphLayoutCacheOptions, type PreferredWidth, type PreferredWidthType, RefFieldContext, type RefFieldRefreshOptions, type RegisteredFieldLink, ResolvedListItem, type ResolvedSurfaceMeasurer, ReviewItem, type ReviewParagraphAnchor, RevisionAttribution, RevisionAuthorFilter, RevisionDisplayMode, SectionColumns, SectionPageBorders, SelectionRect, type SemanticDrawingLayer, type SemanticDrawingVisit, SemanticLayout, type SemanticLayoutOptions, SemanticPosition, type SemanticRootStoryKind, SemanticSelection, type SemanticSpanVisit, type SemanticStoryKind, type SemanticStoryVisit, type SemanticTableCell, type SemanticTableRow, type SemanticTableStructure, ShapedRun, SourceRange, SpanLinkRecord, type StoryDrawingContext, type StoryDrawingHost, type StoryParagraphFragmentContext, type StoryProjectionDependencies, StrikeoutStrokePt, StyleCascadeTable, StyleSpanRecord, type TableAlignment, TableBorderBox, TableBorderSide, TableCellStyleFormatting, TablePaginationError, type TablePaginationErrorCode, type TableRowHeight, type TableRowHeightRule, TextMeasurer, TextShaper, VersionedShapingLibrary, type ViewportWindow, WORD_SEGMENTER_LOCALE, type WordBoundary, type WordBoundaryResolverDeps, type WordSegment, anchorLineY, attachNotesToLayout, boundedFallbackWordSegments, buildPageRefIndex, clampListValue, computeDoubleBorderMetricsPt, computeFootnoteReserves, contentControlBoundaries, contentControlHoldingParagraph, contentControlRecordsInPart, contentControlsOfLayout, createBoundedFallbackWordBoundary, createDefaultWordBoundary, createDocumentFurnitureSource, createDocumentLinkProjectors, createDocumentNotesInput, createDocumentStyleDependencies, createFieldLinkRegistry, createFixedMeasurer, createHarfBuzzTextShaper, createIntlWordBoundary, createLayoutScheduler, createLayoutSession, createListCounterState, createParagraphLayoutCache, defaultNoteSeparatorRuleStyle, deriveNoteDisplayMarks, deriveNoteDisplayMarksResolved, documentOrder, documentRelationshipTargetIn, effectiveBorderSide, effectiveContentControlLock, emptyTocPlaceholderParagraphIds, emptyTocSuppressedResultParagraphIds, everyStoryOrder, expandLvlText, exportSourceRangeOf, filterRefsOnPage, findSeparatorNote, forEachSemanticDrawing, forEachSemanticSpan, forEachSemanticStory, forEachStoryParagraphFragment, formatDecimal, formatDecimalZero, formatLowerLetter, formatLowerRoman, formatNumFmt, formatPageNumber, formatUpperLetter, formatUpperRoman, fragmentOwnsAtomOffset, fragmentsOfParagraph, graphemeBoundaryEpoch, graphemeCount, graphemeOffsetToUtf16, harfBuzzFontValidator, initializeHarfBuzz, intlGraphemeBoundary, isCanvasMeasurementAvailable, isCumulativeGeometryTrustedFromLineOrigin, isGeometryTrustedCaretOffset, isHarfBuzzInitialized, isIntlSegmenterAvailable, isIntlWordSegmenterAvailable, isMarkerOnlySeparatorNote, isWholeGraphemeHorizontalBoundary, keyedRangeRects, layoutHeaderFooterStory, layoutNoteById, layoutNoteSeparator, layoutNoteStory, layoutSemanticDocument, lineAtPosition, lineSegments, linesOf, listMarkerBox, mapSymbolPuaText, normalNotesOf, noteDisplayMarkMap, noteLineIdPrefix, noteMarkKey, noteSeparatorAreaBox, noteSeparatorRuleBox, noteStoryBlocks, pageBorderFrame, pageRefPageNumbersFromLayout, pagesToMaterialize, paragraphFragmentsOf, paragraphFragmentsOfBlocks, paragraphLayoutKey, paragraphMarkDeleted, paragraphShading, paragraphShadingBox, parseAutonumInstruction, planRefFieldResultRefresh, positionPastDeletion, projectedNoteMarkText, provisionalNoteMarks, readTableStructure, resetGraphemeBoundary, resolveDefaultSurfaceMeasurer, resolveDefaultWordBoundary, resolveOoxmlShadingFill, resolveStrictHexFill, reviewAnchorIndex, reviewItemGeometry, revisionRemovesParagraph, roundFontUnitToFixedPoint, runBorderStrokesForLine, segmentGraphemes, segmentWords, selectionRects, semanticHorizontalBoundaries, setGraphemeBoundary, setHarfBuzzWasmUrl, sha256FontBytes, shadingFillFromElement, shapedHorizontalBoundaries, storyBlocks, syntheticSeparatorBox, tabLeaderPattern, tableOriginX, tocFieldChromeParagraphIds, tryCreateCanvasMeasurer, unionLayoutBoxes, utf16OffsetToGrapheme, wordBoundary, wordSegmentsToGraphemeRecords };