This is the full developer documentation for Ream
# Convert DOCX, XLSX, PPTX & PDF in the browser
> Ream is a TypeScript library that converts Word, Excel, PowerPoint and PDF — including the legacy .doc / .xls / .ppt — to PDF, SVG, HTML, DOCX or XLSX, right in the browser. No LibreOffice, no headless Office.
MIT TypeScript Browser · Node · Edge
Read any office document.\
Convert it to anything.
=======================
Ream parses Word, Excel, PowerPoint and PDF — including the legacy .doc / .xls / .ppt — and writes PDF, SVG, HTML, DOCX or XLSX. In the browser, straight from the ECMA-376 and ISO 32000 specifications. No LibreOffice, no headless Office, no commercial SDK.
[Getting started ](/guides/getting-started/)[Try it in the browser ](/playground/)[View on GitHub](https://github.com/alex-krassavin/reamkit)
Reads · seven formats in
.docx .xlsx .pptx .pdf .doc .xls .ppt
Ream.parse() → FlowDoc
Writes · five formats out
.pdf .svg .html .docx .xlsx
## Built from the spec, in the browser
One parse, any target — the architecture in six pieces.
### From the spec
Built directly from ECMA-376 (OOXML) and ISO 32000 / 19005 (PDF / PDF/A) — not a wrapper around LibreOffice, headless Office, or any commercial SDK.
### Browser-first
Pure TypeScript on Uint8Array in and Uint8Array out — zero node:\* imports on the conversion path. The same code runs in the browser, Node, serverless and edge.
### Seven formats in
The OOXML trio plus .pdf and the legacy binary .doc / .xls / .ppt (97–2003). DrawingML shapes, charts and OfficeMath throughout.
### Real typography
Type0 + CIDFontType2 embedding with subsetting, Knuth–Plass line breaking, Liang hyphenation, OpenType ligatures and kerning, BiDi and Arabic joining.
### Compliant PDF
PDF/A-1/2/3 (a/b/u) and PDF/UA-1 — all veraPDF-validated — plus tagged PDF, digital signatures and AES-256 encryption.
### One parse, any target
Ream.parse(bytes) reads once into a format-neutral interlayer; convert renders PDF, SVG, HTML, DOCX or XLSX from it. Formats plug in as adapters.
Questions, bug reports or collaboration — [Docs for AI: llms.txt](/llms.txt) Built from ECMA-376 & ISO 32000
# reamkit
## Modules
[Section titled “Modules”](#modules)
* [core/document-model](/api/core/document-model/)
* [index](/api/index/)
# core/document-model
The typed document model — the OOXML-faithful node types (paragraphs, runs, tables, sections, drawings, charts, math) that the readers populate and the writers consume. Imported via the `reamkit/document-model` subpath.
## Interfaces
[Section titled “Interfaces”](#interfaces)
* [AbstractNumbering](/api/core/document-model/interfaces/abstractnumbering/)
* [Border](/api/core/document-model/interfaces/border/)
* [CellBorders](/api/core/document-model/interfaces/cellborders/)
* [CellDataBar](/api/core/document-model/interfaces/celldatabar/)
* [CellIcon](/api/core/document-model/interfaces/cellicon/)
* [CellMargins](/api/core/document-model/interfaces/cellmargins/)
* [CellProperties](/api/core/document-model/interfaces/cellproperties/)
* [CellShading](/api/core/document-model/interfaces/cellshading/)
* [CellSparkline](/api/core/document-model/interfaces/cellsparkline/)
* [Chart](/api/core/document-model/interfaces/chart/)
* [ChartBlock](/api/core/document-model/interfaces/chartblock/)
* [ChartDataPoint](/api/core/document-model/interfaces/chartdatapoint/)
* [ChartSeries](/api/core/document-model/interfaces/chartseries/)
* [Comment](/api/core/document-model/interfaces/comment/)
* [CustomGeometry](/api/core/document-model/interfaces/customgeometry/)
* [DocumentModel](/api/core/document-model/interfaces/documentmodel/)
* [FloatAnchor](/api/core/document-model/interfaces/floatanchor/)
* [FontFamilyMap](/api/core/document-model/interfaces/fontfamilymap/)
* [HeaderFooterReference](/api/core/document-model/interfaces/headerfooterreference/)
* [ImageBlock](/api/core/document-model/interfaces/imageblock/)
* [InlineImage](/api/core/document-model/interfaces/inlineimage/)
* [MathAccent](/api/core/document-model/interfaces/mathaccent/)
* [MathBar](/api/core/document-model/interfaces/mathbar/)
* [MathDelimiter](/api/core/document-model/interfaces/mathdelimiter/)
* [MathEqArray](/api/core/document-model/interfaces/matheqarray/)
* [MathFraction](/api/core/document-model/interfaces/mathfraction/)
* [MathFunc](/api/core/document-model/interfaces/mathfunc/)
* [MathGroupChr](/api/core/document-model/interfaces/mathgroupchr/)
* [MathLimit](/api/core/document-model/interfaces/mathlimit/)
* [MathMatrix](/api/core/document-model/interfaces/mathmatrix/)
* [MathNary](/api/core/document-model/interfaces/mathnary/)
* [MathRadical](/api/core/document-model/interfaces/mathradical/)
* [MathRow](/api/core/document-model/interfaces/mathrow/)
* [MathRun](/api/core/document-model/interfaces/mathrun/)
* [MathScript](/api/core/document-model/interfaces/mathscript/)
* [Numbering](/api/core/document-model/interfaces/numbering/)
* [NumberingInstance](/api/core/document-model/interfaces/numberinginstance/)
* [NumberingLevel](/api/core/document-model/interfaces/numberinglevel/)
* [NumberingReference](/api/core/document-model/interfaces/numberingreference/)
* [PageMargins](/api/core/document-model/interfaces/pagemargins/)
* [PageSize](/api/core/document-model/interfaces/pagesize/)
* [Paragraph](/api/core/document-model/interfaces/paragraph/)
* [ParagraphProperties](/api/core/document-model/interfaces/paragraphproperties/)
* [RowProperties](/api/core/document-model/interfaces/rowproperties/)
* [Run](/api/core/document-model/interfaces/run/)
* [RunProperties](/api/core/document-model/interfaces/runproperties/)
* [Section](/api/core/document-model/interfaces/section/)
* [SectionColumns](/api/core/document-model/interfaces/sectioncolumns/)
* [SectionProperties](/api/core/document-model/interfaces/sectionproperties/)
* [ShapeBlock](/api/core/document-model/interfaces/shapeblock/)
* [ShapeFill](/api/core/document-model/interfaces/shapefill/)
* [ShapeGeometry](/api/core/document-model/interfaces/shapegeometry/)
* [ShapeLine](/api/core/document-model/interfaces/shapeline/)
* [ShapeTextBody](/api/core/document-model/interfaces/shapetextbody/)
* [ShapeTransform](/api/core/document-model/interfaces/shapetransform/)
* [Style](/api/core/document-model/interfaces/style/)
* [StyleSheet](/api/core/document-model/interfaces/stylesheet/)
* [Table](/api/core/document-model/interfaces/table/)
* [TableCell](/api/core/document-model/interfaces/tablecell/)
* [TableLook](/api/core/document-model/interfaces/tablelook/)
* [TableProperties](/api/core/document-model/interfaces/tableproperties/)
* [TableRow](/api/core/document-model/interfaces/tablerow/)
* [TableStyleCondition](/api/core/document-model/interfaces/tablestylecondition/)
* [TableStyleLayer](/api/core/document-model/interfaces/tablestylelayer/)
## Type Aliases
[Section titled “Type Aliases”](#type-aliases)
* [Alignment](/api/core/document-model/type-aliases/alignment/)
* [BodyElement](/api/core/document-model/type-aliases/bodyelement/)
* [BorderStyle](/api/core/document-model/type-aliases/borderstyle/)
* [CellIconShape](/api/core/document-model/type-aliases/celliconshape/)
* [CellMerge](/api/core/document-model/type-aliases/cellmerge/)
* [ChartType](/api/core/document-model/type-aliases/charttype/)
* [CustomPathCmd](/api/core/document-model/type-aliases/custompathcmd/)
* [HeaderFooterType](/api/core/document-model/type-aliases/headerfootertype/)
* [MathNode](/api/core/document-model/type-aliases/mathnode/)
* [NumberingFormat](/api/core/document-model/type-aliases/numberingformat/)
* [ShapeDash](/api/core/document-model/type-aliases/shapedash/)
* [ShapeFillKind](/api/core/document-model/type-aliases/shapefillkind/)
* [StyleType](/api/core/document-model/type-aliases/styletype/)
* [TableStyleConditionType](/api/core/document-model/type-aliases/tablestyleconditiontype/)
* [UnderlineStyle](/api/core/document-model/type-aliases/underlinestyle/)
* [VerticalAlign](/api/core/document-model/type-aliases/verticalalign/)
## References
[Section titled “References”](#references)
### DocumentInfo
[Section titled “DocumentInfo”](#documentinfo)
Re-exports [DocumentInfo](/api/index/interfaces/documentinfo/)
# AbstractNumbering
Defined in: [src/core/document-model/types.ts:394](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L394)
§17.9.1 `w:abstractNum` — a reusable list definition keyed by level.
## Properties
[Section titled “Properties”](#properties)
### id
[Section titled “id”](#id)
> `readonly` **id**: `string`
Defined in: [src/core/document-model/types.ts:395](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L395)
***
### levels
[Section titled “levels”](#levels)
> `readonly` **levels**: `ReadonlyMap`<`number`, [`NumberingLevel`](/api/core/document-model/interfaces/numberinglevel/)>
Defined in: [src/core/document-model/types.ts:396](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L396)
# Border
Defined in: [src/core/document-model/types.ts:487](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L487)
One border edge: its line style plus optional width and colour.
## Properties
[Section titled “Properties”](#properties)
### colorHex?
[Section titled “colorHex?”](#colorhex)
> `readonly` `optional` **colorHex?**: `string`
Defined in: [src/core/document-model/types.ts:490](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L490)
***
### style
[Section titled “style”](#style)
> `readonly` **style**: [`BorderStyle`](/api/core/document-model/type-aliases/borderstyle/)
Defined in: [src/core/document-model/types.ts:488](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L488)
***
### width?
[Section titled “width?”](#width)
> `readonly` `optional` **width?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:489](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L489)
# CellBorders
Defined in: [src/core/document-model/types.ts:494](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L494)
§17.4.39 `w:tcBorders` — the per-edge borders of a cell (or table).
## Properties
[Section titled “Properties”](#properties)
### bottom?
[Section titled “bottom?”](#bottom)
> `readonly` `optional` **bottom?**: [`Border`](/api/core/document-model/interfaces/border/)
Defined in: [src/core/document-model/types.ts:497](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L497)
***
### diagonalDown?
[Section titled “diagonalDown?”](#diagonaldown)
> `readonly` `optional` **diagonalDown?**: [`Border`](/api/core/document-model/interfaces/border/)
Defined in: [src/core/document-model/types.ts:505](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L505)
Diagonal strokes across the cell box: `diagonalDown` runs top-left → bottom-right, `diagonalUp` bottom-left → top-right (Excel diagonal borders).
***
### diagonalUp?
[Section titled “diagonalUp?”](#diagonalup)
> `readonly` `optional` **diagonalUp?**: [`Border`](/api/core/document-model/interfaces/border/)
Defined in: [src/core/document-model/types.ts:506](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L506)
***
### insideH?
[Section titled “insideH?”](#insideh)
> `readonly` `optional` **insideH?**: [`Border`](/api/core/document-model/interfaces/border/)
Defined in: [src/core/document-model/types.ts:499](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L499)
***
### insideV?
[Section titled “insideV?”](#insidev)
> `readonly` `optional` **insideV?**: [`Border`](/api/core/document-model/interfaces/border/)
Defined in: [src/core/document-model/types.ts:500](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L500)
***
### left?
[Section titled “left?”](#left)
> `readonly` `optional` **left?**: [`Border`](/api/core/document-model/interfaces/border/)
Defined in: [src/core/document-model/types.ts:498](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L498)
***
### right?
[Section titled “right?”](#right)
> `readonly` `optional` **right?**: [`Border`](/api/core/document-model/interfaces/border/)
Defined in: [src/core/document-model/types.ts:496](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L496)
***
### top?
[Section titled “top?”](#top)
> `readonly` `optional` **top?**: [`Border`](/api/core/document-model/interfaces/border/)
Defined in: [src/core/document-model/types.ts:495](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L495)
# CellDataBar
Defined in: [src/core/document-model/types.ts:528](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L528)
A conditional-format data bar: a horizontal bar of width `fraction` (`0..1` of the cell), painted over the shading and under the text (E-SHEET SC1c). It starts at `startFraction` from the cell’s left (default 0); a mixed-sign range puts the axis inside the cell so negative bars run left of it (tail TC4).
## Properties
[Section titled “Properties”](#properties)
### colorHex
[Section titled “colorHex”](#colorhex)
> `readonly` **colorHex**: `string`
Defined in: [src/core/document-model/types.ts:530](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L530)
***
### fraction
[Section titled “fraction”](#fraction)
> `readonly` **fraction**: `number`
Defined in: [src/core/document-model/types.ts:529](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L529)
***
### startFraction?
[Section titled “startFraction?”](#startfraction)
> `readonly` `optional` **startFraction?**: `number`
Defined in: [src/core/document-model/types.ts:531](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L531)
# CellIcon
Defined in: [src/core/document-model/types.ts:555](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L555)
One resolved conditional-format icon: its [CellIconShape](/api/core/document-model/type-aliases/celliconshape/), colour and fill level.
## Properties
[Section titled “Properties”](#properties)
### colorHex
[Section titled “colorHex”](#colorhex)
> `readonly` **colorHex**: `string`
Defined in: [src/core/document-model/types.ts:557](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L557)
***
### fill?
[Section titled “fill?”](#fill)
> `readonly` `optional` **fill?**: `object`
Defined in: [src/core/document-model/types.ts:562](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L562)
Meter glyphs (`bars` / `pie`): how many of `levels` units are filled with `colorHex`; the rest are drawn in a neutral grey. Absent for single glyphs.
#### filled
[Section titled “filled”](#filled)
> `readonly` **filled**: `number`
#### levels
[Section titled “levels”](#levels)
> `readonly` **levels**: `number`
***
### shape
[Section titled “shape”](#shape)
> `readonly` **shape**: [`CellIconShape`](/api/core/document-model/type-aliases/celliconshape/)
Defined in: [src/core/document-model/types.ts:556](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L556)
# CellMargins
Defined in: [src/core/document-model/types.ts:510](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L510)
§17.4.42 `w:tcMar` — a cell’s inner padding per side.
## Properties
[Section titled “Properties”](#properties)
### bottom?
[Section titled “bottom?”](#bottom)
> `readonly` `optional` **bottom?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:513](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L513)
***
### left?
[Section titled “left?”](#left)
> `readonly` `optional` **left?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:514](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L514)
***
### right?
[Section titled “right?”](#right)
> `readonly` `optional` **right?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:512](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L512)
***
### top?
[Section titled “top?”](#top)
> `readonly` `optional` **top?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:511](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L511)
# CellProperties
Defined in: [src/core/document-model/types.ts:591](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L591)
§17.4.30 `w:tcPr` — a cell’s properties: span/merge, chrome, and CF overlays.
## Properties
[Section titled “Properties”](#properties)
### borders?
[Section titled “borders?”](#borders)
> `readonly` `optional` **borders?**: [`CellBorders`](/api/core/document-model/interfaces/cellborders/)
Defined in: [src/core/document-model/types.ts:595](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L595)
***
### colSpan?
[Section titled “colSpan?”](#colspan)
> `readonly` `optional` **colSpan?**: `number`
Defined in: [src/core/document-model/types.ts:593](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L593)
***
### dataBar?
[Section titled “dataBar?”](#databar)
> `readonly` `optional` **dataBar?**: [`CellDataBar`](/api/core/document-model/interfaces/celldatabar/)
Defined in: [src/core/document-model/types.ts:598](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L598)
***
### dropdown?
[Section titled “dropdown?”](#dropdown)
> `readonly` `optional` **dropdown?**: `boolean`
Defined in: [src/core/document-model/types.ts:605](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L605)
A data-validation `list` cell (E-SHEET SV1): the renderer paints an in-cell dropdown affordance at the cell’s right edge (a small button + ▾ glyph).
***
### icon?
[Section titled “icon?”](#icon)
> `readonly` `optional` **icon?**: [`CellIcon`](/api/core/document-model/interfaces/cellicon/)
Defined in: [src/core/document-model/types.ts:599](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L599)
***
### margins?
[Section titled “margins?”](#margins)
> `readonly` `optional` **margins?**: [`CellMargins`](/api/core/document-model/interfaces/cellmargins/)
Defined in: [src/core/document-model/types.ts:596](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L596)
***
### merge?
[Section titled “merge?”](#merge)
> `readonly` `optional` **merge?**: [`CellMerge`](/api/core/document-model/type-aliases/cellmerge/)
Defined in: [src/core/document-model/types.ts:594](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L594)
***
### shading?
[Section titled “shading?”](#shading)
> `readonly` `optional` **shading?**: [`CellShading`](/api/core/document-model/interfaces/cellshading/)
Defined in: [src/core/document-model/types.ts:597](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L597)
***
### sparkline?
[Section titled “sparkline?”](#sparkline)
> `readonly` `optional` **sparkline?**: [`CellSparkline`](/api/core/document-model/interfaces/cellsparkline/)
Defined in: [src/core/document-model/types.ts:600](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L600)
***
### width?
[Section titled “width?”](#width)
> `readonly` `optional` **width?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:592](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L592)
# CellShading
Defined in: [src/core/document-model/types.ts:518](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L518)
§17.4.33 `w:shd` — a cell’s solid background fill (6-hex).
## Properties
[Section titled “Properties”](#properties)
### colorHex
[Section titled “colorHex”](#colorhex)
> `readonly` **colorHex**: `string`
Defined in: [src/core/document-model/types.ts:519](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L519)
# CellSparkline
Defined in: [src/core/document-model/types.ts:570](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L570)
A sparkline: a mini chart filling the cell, plotting `values` (E-SHEET SC2). Format-neutral — the xlsx layer resolves the data range to a value sequence; the layout renders line / column / win-loss geometry sized to the cell.
## Properties
[Section titled “Properties”](#properties)
### colorHex?
[Section titled “colorHex?”](#colorhex)
> `readonly` `optional` **colorHex?**: `string`
Defined in: [src/core/document-model/types.ts:577](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L577)
***
### kind
[Section titled “kind”](#kind)
> `readonly` **kind**: `"line"` | `"column"` | `"winLoss"`
Defined in: [src/core/document-model/types.ts:571](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L571)
***
### values
[Section titled “values”](#values)
> `readonly` **values**: readonly (`number` | `null`)\[]
Defined in: [src/core/document-model/types.ts:576](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L576)
A blank/non-numeric cell in the range is a gap (`null`) so x-positions stay aligned: a line breaks across it, a column/win-loss skips its slot.
# Chart
Defined in: [src/core/document-model/types.ts:851](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L851)
A parsed chart (§21.2): its type, title, categories, series and rendering options.
## Properties
[Section titled “Properties”](#properties)
### barDir?
[Section titled “barDir?”](#bardir)
> `readonly` `optional` **barDir?**: `"bar"` | `"col"`
Defined in: [src/core/document-model/types.ts:858](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L858)
***
### catAxisTitle?
[Section titled “catAxisTitle?”](#cataxistitle)
> `readonly` `optional` **catAxisTitle?**: `string`
Defined in: [src/core/document-model/types.ts:862](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L862)
***
### categories
[Section titled “categories”](#categories)
> `readonly` **categories**: readonly `string`\[]
Defined in: [src/core/document-model/types.ts:854](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L854)
***
### doughnut?
[Section titled “doughnut?”](#doughnut)
> `readonly` `optional` **doughnut?**: `boolean`
Defined in: [src/core/document-model/types.ts:860](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L860)
***
### grouping?
[Section titled “grouping?”](#grouping)
> `readonly` `optional` **grouping?**: `"clustered"` | `"stacked"` | `"percentStacked"` | `"standard"`
Defined in: [src/core/document-model/types.ts:859](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L859)
***
### hasLegend
[Section titled “hasLegend”](#haslegend)
> `readonly` **hasLegend**: `boolean`
Defined in: [src/core/document-model/types.ts:856](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L856)
***
### legendPos?
[Section titled “legendPos?”](#legendpos)
> `readonly` `optional` **legendPos?**: `"r"` | `"l"` | `"t"` | `"b"`
Defined in: [src/core/document-model/types.ts:857](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L857)
***
### series
[Section titled “series”](#series)
> `readonly` **series**: readonly [`ChartSeries`](/api/core/document-model/interfaces/chartseries/)\[]
Defined in: [src/core/document-model/types.ts:855](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L855)
***
### seriesColorCycle?
[Section titled “seriesColorCycle?”](#seriescolorcycle)
> `readonly` `optional` **seriesColorCycle?**: readonly `string`\[]
Defined in: [src/core/document-model/types.ts:868](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L868)
MS-ODRAWXML `chartColorStyle` (`colorsN.xml`): the cycle of series colours; overrides the built-in Office accent cycle when present.
***
### showValues?
[Section titled “showValues?”](#showvalues)
> `readonly` `optional` **showValues?**: `boolean`
Defined in: [src/core/document-model/types.ts:861](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L861)
***
### title?
[Section titled “title?”](#title)
> `readonly` `optional` **title?**: `string`
Defined in: [src/core/document-model/types.ts:853](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L853)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: [`ChartType`](/api/core/document-model/type-aliases/charttype/)
Defined in: [src/core/document-model/types.ts:852](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L852)
***
### valAxisTitle?
[Section titled “valAxisTitle?”](#valaxistitle)
> `readonly` `optional` **valAxisTitle?**: `string`
Defined in: [src/core/document-model/types.ts:863](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L863)
# ChartBlock
Defined in: [src/core/document-model/types.ts:872](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L872)
A block-level chart reference (`c:chart`): its size and relationship id.
## Properties
[Section titled “Properties”](#properties)
### altText?
[Section titled “altText?”](#alttext)
> `readonly` `optional` **altText?**: `string`
Defined in: [src/core/document-model/types.ts:880](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L880)
`wp:docPr @descr/@title` — alternate text for the tagged-PDF Figure (`/Alt`).
***
### chartRelId
[Section titled “chartRelId”](#chartrelid)
> `readonly` **chartRelId**: `string`
Defined in: [src/core/document-model/types.ts:875](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L875)
***
### float?
[Section titled “float?”](#float)
> `readonly` `optional` **float?**: [`FloatAnchor`](/api/core/document-model/interfaces/floatanchor/)
Defined in: [src/core/document-model/types.ts:874](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L874)
§20.4.2.3 — present when the drawing is anchored (floating).
***
### height
[Section titled “height”](#height)
> `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:877](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L877)
***
### paragraphProperties
[Section titled “paragraphProperties”](#paragraphproperties)
> `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/)
Defined in: [src/core/document-model/types.ts:878](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L878)
***
### width
[Section titled “width”](#width)
> `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:876](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L876)
# ChartDataPoint
Defined in: [src/core/document-model/types.ts:836](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L836)
A per-point colour override (`c:dPt`) at series index `idx`.
## Properties
[Section titled “Properties”](#properties)
### colorHex
[Section titled “colorHex”](#colorhex)
> `readonly` **colorHex**: `string`
Defined in: [src/core/document-model/types.ts:838](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L838)
***
### idx
[Section titled “idx”](#idx)
> `readonly` **idx**: `number`
Defined in: [src/core/document-model/types.ts:837](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L837)
# ChartSeries
Defined in: [src/core/document-model/types.ts:842](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L842)
One chart data series (`c:ser`): its name, values and colour overrides.
## Properties
[Section titled “Properties”](#properties)
### colorHex?
[Section titled “colorHex?”](#colorhex)
> `readonly` `optional` **colorHex?**: `string`
Defined in: [src/core/document-model/types.ts:846](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L846)
***
### name?
[Section titled “name?”](#name)
> `readonly` `optional` **name?**: `string`
Defined in: [src/core/document-model/types.ts:843](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L843)
***
### pointColors?
[Section titled “pointColors?”](#pointcolors)
> `readonly` `optional` **pointColors?**: readonly [`ChartDataPoint`](/api/core/document-model/interfaces/chartdatapoint/)\[]
Defined in: [src/core/document-model/types.ts:847](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L847)
***
### values
[Section titled “values”](#values)
> `readonly` **values**: readonly `number`\[]
Defined in: [src/core/document-model/types.ts:844](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L844)
***
### xValues?
[Section titled “xValues?”](#xvalues)
> `readonly` `optional` **xValues?**: readonly `number`\[]
Defined in: [src/core/document-model/types.ts:845](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L845)
# Comment
Defined in: [src/core/document-model/types.ts:344](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L344)
ECMA-376 Part 1 §17.13.4.2 `w:comment` — a review comment: its block content plus the author/date attribution. Anchored from a run’s `commentRef`.
## Properties
[Section titled “Properties”](#properties)
### author?
[Section titled “author?”](#author)
> `readonly` `optional` **author?**: `string`
Defined in: [src/core/document-model/types.ts:346](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L346)
***
### authorId?
[Section titled “authorId?”](#authorid)
> `readonly` `optional` **authorId?**: `string`
Defined in: [src/core/document-model/types.ts:355](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L355)
The author’s resolved identity (usually an email) from word/people.xml (`w15:person` → `w15:presenceInfo/@w15:userId`), matched on the author name. Absent when the file ships no people part or the author is not listed.
***
### content
[Section titled “content”](#content)
> `readonly` **content**: readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]
Defined in: [src/core/document-model/types.ts:345](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L345)
***
### date?
[Section titled “date?”](#date)
> `readonly` `optional` **date?**: `string`
Defined in: [src/core/document-model/types.ts:349](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L349)
Raw w:date timestamp (ISO 8601), as authored — not reformatted.
***
### done?
[Section titled “done?”](#done)
> `readonly` `optional` **done?**: `boolean`
Defined in: [src/core/document-model/types.ts:363](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L363)
w15:done — the comment thread was marked resolved.
***
### initials?
[Section titled “initials?”](#initials)
> `readonly` `optional` **initials?**: `string`
Defined in: [src/core/document-model/types.ts:347](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L347)
***
### parentId?
[Section titled “parentId?”](#parentid)
> `readonly` `optional` **parentId?**: `string`
Defined in: [src/core/document-model/types.ts:361](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L361)
Microsoft commentsExtended (w15) — the id of the comment this one replies to, forming a thread. Set only when word/commentsExtended.xml links this comment’s paragraph to a parent (w15:paraIdParent). Top-level comments omit it.
# CustomGeometry
Defined in: [src/core/document-model/types.ts:743](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L743)
§20.1.9.11 `custGeom` — a custom geometry: its path-space extent (`pathWidth`/`pathHeight`) and the [CustomPathCmd](/api/core/document-model/type-aliases/custompathcmd/) list that draws it.
## Properties
[Section titled “Properties”](#properties)
### commands
[Section titled “commands”](#commands)
> `readonly` **commands**: readonly [`CustomPathCmd`](/api/core/document-model/type-aliases/custompathcmd/)\[]
Defined in: [src/core/document-model/types.ts:746](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L746)
***
### pathHeight
[Section titled “pathHeight”](#pathheight)
> `readonly` **pathHeight**: `number`
Defined in: [src/core/document-model/types.ts:745](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L745)
***
### pathWidth
[Section titled “pathWidth”](#pathwidth)
> `readonly` **pathWidth**: `number`
Defined in: [src/core/document-model/types.ts:744](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L744)
# DocumentModel
Defined in: [src/core/document-model/types.ts:981](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L981)
The parsed WordprocessingML document: body, stylesheet, numbering and section setup.
## Properties
[Section titled “Properties”](#properties)
### body
[Section titled “body”](#body)
> `readonly` **body**: readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]
Defined in: [src/core/document-model/types.ts:982](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L982)
***
### numbering?
[Section titled “numbering?”](#numbering)
> `readonly` `optional` **numbering?**: [`Numbering`](/api/core/document-model/interfaces/numbering/)
Defined in: [src/core/document-model/types.ts:984](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L984)
***
### section?
[Section titled “section?”](#section)
> `readonly` `optional` **section?**: [`SectionProperties`](/api/core/document-model/interfaces/sectionproperties/)
Defined in: [src/core/document-model/types.ts:985](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L985)
***
### styleSheet
[Section titled “styleSheet”](#stylesheet)
> `readonly` **styleSheet**: [`StyleSheet`](/api/core/document-model/interfaces/stylesheet/)
Defined in: [src/core/document-model/types.ts:983](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L983)
# FloatAnchor
Defined in: [src/core/document-model/types.ts:943](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L943)
§20.4.2.3 `wp:anchor` — a floating drawing’s placement. v1 honours out-of-flow placement for wrap `'none'` (incl. `behindDoc`); the side-wrapping modes (square/tight/through) and `topAndBottom` stay in flow as blocks.
## Properties
[Section titled “Properties”](#properties)
### behind?
[Section titled “behind?”](#behind)
> `readonly` `optional` **behind?**: `boolean`
Defined in: [src/core/document-model/types.ts:945](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L945)
***
### posH?
[Section titled “posH?”](#posh)
> `readonly` `optional` **posH?**: `object`
Defined in: [src/core/document-model/types.ts:946](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L946)
#### align?
[Section titled “align?”](#align)
> `readonly` `optional` **align?**: `"right"` | `"left"` | `"center"`
#### offsetPt?
[Section titled “offsetPt?”](#offsetpt)
> `readonly` `optional` **offsetPt?**: [`Pt`](/api/index/type-aliases/pt/)
#### relativeFrom
[Section titled “relativeFrom”](#relativefrom)
> `readonly` **relativeFrom**: `"page"` | `"column"` | `"margin"`
***
### posV?
[Section titled “posV?”](#posv)
> `readonly` `optional` **posV?**: `object`
Defined in: [src/core/document-model/types.ts:951](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L951)
#### offsetPt?
[Section titled “offsetPt?”](#offsetpt-1)
> `readonly` `optional` **offsetPt?**: [`Pt`](/api/index/type-aliases/pt/)
#### relativeFrom
[Section titled “relativeFrom”](#relativefrom-1)
> `readonly` **relativeFrom**: `"page"` | `"line"` | `"paragraph"` | `"margin"`
***
### wrap
[Section titled “wrap”](#wrap)
> `readonly` **wrap**: `"none"` | `"square"` | `"tight"` | `"through"` | `"topAndBottom"`
Defined in: [src/core/document-model/types.ts:944](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L944)
# FontFamilyMap
Defined in: [src/core/document-model/types.ts:37](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L37)
The four script slots of `w:rFonts` (§17.3.2.26). A character picks its font from the slot its Unicode range maps to (ASCII, high-ANSI, complex-script, East-Asian).
## Properties
[Section titled “Properties”](#properties)
### ascii?
[Section titled “ascii?”](#ascii)
> `readonly` `optional` **ascii?**: `string`
Defined in: [src/core/document-model/types.ts:38](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L38)
***
### cs?
[Section titled “cs?”](#cs)
> `readonly` `optional` **cs?**: `string`
Defined in: [src/core/document-model/types.ts:40](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L40)
***
### eastAsia?
[Section titled “eastAsia?”](#eastasia)
> `readonly` `optional` **eastAsia?**: `string`
Defined in: [src/core/document-model/types.ts:41](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L41)
***
### hAnsi?
[Section titled “hAnsi?”](#hansi)
> `readonly` `optional` **hAnsi?**: `string`
Defined in: [src/core/document-model/types.ts:39](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L39)
# HeaderFooterReference
Defined in: [src/core/document-model/types.ts:912](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L912)
§17.10.5/§17.10.2 `w:headerReference`/`w:footerReference` — a typed rels pointer.
## Properties
[Section titled “Properties”](#properties)
### relationshipId
[Section titled “relationshipId”](#relationshipid)
> `readonly` **relationshipId**: `string`
Defined in: [src/core/document-model/types.ts:914](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L914)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: [`HeaderFooterType`](/api/core/document-model/type-aliases/headerfootertype/)
Defined in: [src/core/document-model/types.ts:913](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L913)
# ImageBlock
Defined in: [src/core/document-model/types.ts:689](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L689)
ECMA-376 Part 1 §20.4.2.8 — a block-level image (`wp:inline` picture extent). EMU = English Metric Units: 914400 per inch (1 pt = 12700 EMU).
## Properties
[Section titled “Properties”](#properties)
### altText?
[Section titled “altText?”](#alttext)
> `readonly` `optional` **altText?**: `string`
Defined in: [src/core/document-model/types.ts:697](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L697)
`wp:docPr @descr/@title` — alternate text for the tagged-PDF Figure (`/Alt`).
***
### float?
[Section titled “float?”](#float)
> `readonly` `optional` **float?**: [`FloatAnchor`](/api/core/document-model/interfaces/floatanchor/)
Defined in: [src/core/document-model/types.ts:691](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L691)
§20.4.2.3 — present when the drawing is anchored (floating).
***
### height
[Section titled “height”](#height)
> `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:694](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L694)
***
### paragraphProperties
[Section titled “paragraphProperties”](#paragraphproperties)
> `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/)
Defined in: [src/core/document-model/types.ts:695](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L695)
***
### resource?
[Section titled “resource?”](#resource)
> `readonly` `optional` **resource?**: [`ResourceId`](/api/index/type-aliases/resourceid/)
Defined in: [src/core/document-model/types.ts:692](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L692)
***
### width
[Section titled “width”](#width)
> `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:693](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L693)
# InlineImage
Defined in: [src/core/document-model/types.ts:118](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L118)
ECMA-376 §20.4.2.8 — `wp:inline` picture extent inside a `w:r`. Stored on [Run](/api/core/document-model/interfaces/run/) alongside (or instead of) `text` so layout can position the image as if it were a glyph in the line box.
## Properties
[Section titled “Properties”](#properties)
### height
[Section titled “height”](#height)
> `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:125](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L125)
***
### resource?
[Section titled “resource?”](#resource)
> `readonly` `optional` **resource?**: [`ResourceId`](/api/index/type-aliases/resourceid/)
Defined in: [src/core/document-model/types.ts:123](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L123)
Content-addressed bytes in the document’s `ResourceStore`; absent when the source relationship did not resolve (the layout box still reserves space).
***
### width
[Section titled “width”](#width)
> `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:124](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L124)
# MathAccent
Defined in: [src/core/document-model/types.ts:233](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L233)
`m:acc` — accent character over a base (hat, bar, vec, dot, tilde …).
## Properties
[Section titled “Properties”](#properties)
### base
[Section titled “base”](#base)
> `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:236](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L236)
***
### char
[Section titled “char”](#char)
> `readonly` **char**: `string`
Defined in: [src/core/document-model/types.ts:235](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L235)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"accent"`
Defined in: [src/core/document-model/types.ts:234](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L234)
# MathBar
Defined in: [src/core/document-model/types.ts:240](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L240)
`m:bar` — a bar above or below the base.
## Properties
[Section titled “Properties”](#properties)
### base
[Section titled “base”](#base)
> `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:242](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L242)
***
### pos
[Section titled “pos”](#pos)
> `readonly` **pos**: `"top"` | `"bot"`
Defined in: [src/core/document-model/types.ts:243](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L243)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"bar"`
Defined in: [src/core/document-model/types.ts:241](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L241)
# MathDelimiter
Defined in: [src/core/document-model/types.ts:218](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L218)
`m:d` — delimiters around one or more elements.
## Properties
[Section titled “Properties”](#properties)
### begChr
[Section titled “begChr”](#begchr)
> `readonly` **begChr**: `string`
Defined in: [src/core/document-model/types.ts:220](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L220)
***
### children
[Section titled “children”](#children)
> `readonly` **children**: readonly [`MathNode`](/api/core/document-model/type-aliases/mathnode/)\[]
Defined in: [src/core/document-model/types.ts:223](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L223)
***
### endChr
[Section titled “endChr”](#endchr)
> `readonly` **endChr**: `string`
Defined in: [src/core/document-model/types.ts:221](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L221)
***
### sepChr?
[Section titled “sepChr?”](#sepchr)
> `readonly` `optional` **sepChr?**: `string`
Defined in: [src/core/document-model/types.ts:222](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L222)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"delimiter"`
Defined in: [src/core/document-model/types.ts:219](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L219)
# MathEqArray
Defined in: [src/core/document-model/types.ts:258](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L258)
`m:eqArr` — an equation array: a stack of equations, each on its own line, left-aligned, the block vertically centred on the math axis.
## Properties
[Section titled “Properties”](#properties)
### rows
[Section titled “rows”](#rows)
> `readonly` **rows**: readonly [`MathNode`](/api/core/document-model/type-aliases/mathnode/)\[]
Defined in: [src/core/document-model/types.ts:260](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L260)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"eqArr"`
Defined in: [src/core/document-model/types.ts:259](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L259)
# MathFraction
Defined in: [src/core/document-model/types.ts:169](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L169)
`m:f` — fraction. `barless` = `m:fPr/m:type val="noBar"`.
## Properties
[Section titled “Properties”](#properties)
### barless?
[Section titled “barless?”](#barless)
> `readonly` `optional` **barless?**: `boolean`
Defined in: [src/core/document-model/types.ts:173](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L173)
***
### den
[Section titled “den”](#den)
> `readonly` **den**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:172](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L172)
***
### num
[Section titled “num”](#num)
> `readonly` **num**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:171](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L171)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"fraction"`
Defined in: [src/core/document-model/types.ts:170](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L170)
# MathFunc
Defined in: [src/core/document-model/types.ts:203](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L203)
`m:func` — function application (sin x, …): a name applied to an argument.
## Properties
[Section titled “Properties”](#properties)
### body
[Section titled “body”](#body)
> `readonly` **body**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:206](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L206)
***
### name
[Section titled “name”](#name)
> `readonly` **name**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:205](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L205)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"func"`
Defined in: [src/core/document-model/types.ts:204](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L204)
# MathGroupChr
Defined in: [src/core/document-model/types.ts:247](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L247)
`m:groupChr` — a grouping character (brace …) above or below the base.
## Properties
[Section titled “Properties”](#properties)
### base
[Section titled “base”](#base)
> `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:250](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L250)
***
### char
[Section titled “char”](#char)
> `readonly` **char**: `string`
Defined in: [src/core/document-model/types.ts:249](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L249)
***
### pos
[Section titled “pos”](#pos)
> `readonly` **pos**: `"top"` | `"bot"`
Defined in: [src/core/document-model/types.ts:251](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L251)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"groupChr"`
Defined in: [src/core/document-model/types.ts:248](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L248)
# MathLimit
Defined in: [src/core/document-model/types.ts:210](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L210)
`m:limLow` / `m:limUpp` — a limit below/above the base.
## Properties
[Section titled “Properties”](#properties)
### base
[Section titled “base”](#base)
> `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:212](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L212)
***
### lim
[Section titled “lim”](#lim)
> `readonly` **lim**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:213](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L213)
***
### pos
[Section titled “pos”](#pos)
> `readonly` **pos**: `"low"` | `"upp"`
Defined in: [src/core/document-model/types.ts:214](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L214)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"limit"`
Defined in: [src/core/document-model/types.ts:211](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L211)
# MathMatrix
Defined in: [src/core/document-model/types.ts:227](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L227)
`m:m` — matrix of cells (rows × columns).
## Properties
[Section titled “Properties”](#properties)
### rows
[Section titled “rows”](#rows)
> `readonly` **rows**: readonly readonly [`MathNode`](/api/core/document-model/type-aliases/mathnode/)\[]\[]
Defined in: [src/core/document-model/types.ts:229](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L229)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"matrix"`
Defined in: [src/core/document-model/types.ts:228](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L228)
# MathNary
Defined in: [src/core/document-model/types.ts:193](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L193)
`m:nary` — n-ary operator (∑ ∏ ∫ …) with optional sub/sup limits.
## Properties
[Section titled “Properties”](#properties)
### body
[Section titled “body”](#body)
> `readonly` **body**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:196](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L196)
***
### limLoc?
[Section titled “limLoc?”](#limloc)
> `readonly` `optional` **limLoc?**: `"undOvr"` | `"subSup"`
Defined in: [src/core/document-model/types.ts:199](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L199)
***
### op
[Section titled “op”](#op)
> `readonly` **op**: `string`
Defined in: [src/core/document-model/types.ts:195](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L195)
***
### sub?
[Section titled “sub?”](#sub)
> `readonly` `optional` **sub?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:197](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L197)
***
### sup?
[Section titled “sup?”](#sup)
> `readonly` `optional` **sup?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:198](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L198)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"nary"`
Defined in: [src/core/document-model/types.ts:194](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L194)
# MathRadical
Defined in: [src/core/document-model/types.ts:186](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L186)
`m:rad` — radical with optional degree (`m:deg`).
## Properties
[Section titled “Properties”](#properties)
### degree?
[Section titled “degree?”](#degree)
> `readonly` `optional` **degree?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:189](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L189)
***
### radicand
[Section titled “radicand”](#radicand)
> `readonly` **radicand**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:188](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L188)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"radical"`
Defined in: [src/core/document-model/types.ts:187](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L187)
# MathRow
Defined in: [src/core/document-model/types.ts:151](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L151)
A sequence of sibling nodes (`m:oMath`, `m:e`, `m:num`, `m:den`, `m:fName` …).
## Properties
[Section titled “Properties”](#properties)
### children
[Section titled “children”](#children)
> `readonly` **children**: readonly [`MathNode`](/api/core/document-model/type-aliases/mathnode/)\[]
Defined in: [src/core/document-model/types.ts:153](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L153)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"row"`
Defined in: [src/core/document-model/types.ts:152](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L152)
# MathRun
Defined in: [src/core/document-model/types.ts:160](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L160)
`m:r` / `m:t` — literal symbols. `italic`/`bold` come from `m:rPr`/`m:sty`; `nor` (normal text) forces upright. With none set, letters auto-italicise.
## Properties
[Section titled “Properties”](#properties)
### bold?
[Section titled “bold?”](#bold)
> `readonly` `optional` **bold?**: `boolean`
Defined in: [src/core/document-model/types.ts:164](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L164)
***
### italic?
[Section titled “italic?”](#italic)
> `readonly` `optional` **italic?**: `boolean`
Defined in: [src/core/document-model/types.ts:163](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L163)
***
### nor?
[Section titled “nor?”](#nor)
> `readonly` `optional` **nor?**: `boolean`
Defined in: [src/core/document-model/types.ts:165](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L165)
***
### text
[Section titled “text”](#text)
> `readonly` **text**: `string`
Defined in: [src/core/document-model/types.ts:162](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L162)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"run"`
Defined in: [src/core/document-model/types.ts:161](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L161)
# MathScript
Defined in: [src/core/document-model/types.ts:177](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L177)
`m:sSup` / `m:sSub` / `m:sSubSup` / `m:sPre` (pre-scripts).
## Properties
[Section titled “Properties”](#properties)
### base
[Section titled “base”](#base)
> `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:179](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L179)
***
### pre?
[Section titled “pre?”](#pre)
> `readonly` `optional` **pre?**: `boolean`
Defined in: [src/core/document-model/types.ts:182](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L182)
***
### sub?
[Section titled “sub?”](#sub)
> `readonly` `optional` **sub?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:180](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L180)
***
### sup?
[Section titled “sup?”](#sup)
> `readonly` `optional` **sup?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:181](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L181)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: `"script"`
Defined in: [src/core/document-model/types.ts:178](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L178)
# Numbering
Defined in: [src/core/document-model/types.ts:406](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L406)
The parsed `word/numbering.xml`: abstract definitions + their instances.
## Properties
[Section titled “Properties”](#properties)
### abstractNums
[Section titled “abstractNums”](#abstractnums)
> `readonly` **abstractNums**: `ReadonlyMap`<`string`, [`AbstractNumbering`](/api/core/document-model/interfaces/abstractnumbering/)>
Defined in: [src/core/document-model/types.ts:407](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L407)
***
### numInstances
[Section titled “numInstances”](#numinstances)
> `readonly` **numInstances**: `ReadonlyMap`<`string`, [`NumberingInstance`](/api/core/document-model/interfaces/numberinginstance/)>
Defined in: [src/core/document-model/types.ts:408](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L408)
# NumberingInstance
Defined in: [src/core/document-model/types.ts:400](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L400)
§17.9.18 `w:num` — a concrete list instance bound to an [AbstractNumbering](/api/core/document-model/interfaces/abstractnumbering/).
## Properties
[Section titled “Properties”](#properties)
### abstractNumId
[Section titled “abstractNumId”](#abstractnumid)
> `readonly` **abstractNumId**: `string`
Defined in: [src/core/document-model/types.ts:402](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L402)
***
### numId
[Section titled “numId”](#numid)
> `readonly` **numId**: `string`
Defined in: [src/core/document-model/types.ts:401](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L401)
# NumberingLevel
Defined in: [src/core/document-model/types.ts:383](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L383)
One level of an abstract numbering definition (`w:lvl`): its format and chrome.
## Properties
[Section titled “Properties”](#properties)
### format
[Section titled “format”](#format)
> `readonly` **format**: [`NumberingFormat`](/api/core/document-model/type-aliases/numberingformat/)
Defined in: [src/core/document-model/types.ts:386](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L386)
***
### ilvl
[Section titled “ilvl”](#ilvl)
> `readonly` **ilvl**: `number`
Defined in: [src/core/document-model/types.ts:384](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L384)
***
### lvlText
[Section titled “lvlText”](#lvltext)
> `readonly` **lvlText**: `string`
Defined in: [src/core/document-model/types.ts:388](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L388)
§17.9.11 `w:lvlText` — the marker template (e.g. `"%1."`).
***
### paragraphProperties
[Section titled “paragraphProperties”](#paragraphproperties)
> `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/)
Defined in: [src/core/document-model/types.ts:389](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L389)
***
### runProperties
[Section titled “runProperties”](#runproperties)
> `readonly` **runProperties**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/)
Defined in: [src/core/document-model/types.ts:390](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L390)
***
### start
[Section titled “start”](#start)
> `readonly` **start**: `number`
Defined in: [src/core/document-model/types.ts:385](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L385)
# NumberingReference
Defined in: [src/core/document-model/types.ts:377](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L377)
A paragraph’s list reference (`w:numPr`): the numbering instance id + level.
## Properties
[Section titled “Properties”](#properties)
### ilvl
[Section titled “ilvl”](#ilvl)
> `readonly` **ilvl**: `number`
Defined in: [src/core/document-model/types.ts:379](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L379)
***
### numId
[Section titled “numId”](#numid)
> `readonly` **numId**: `string`
Defined in: [src/core/document-model/types.ts:378](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L378)
# PageMargins
Defined in: [src/core/document-model/types.ts:899](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L899)
§17.6.11 `w:pgMar` — the section’s page margins (and header/footer offsets).
## Properties
[Section titled “Properties”](#properties)
### bottom
[Section titled “bottom”](#bottom)
> `readonly` **bottom**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:902](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L902)
***
### footer?
[Section titled “footer?”](#footer)
> `readonly` `optional` **footer?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:905](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L905)
***
### header?
[Section titled “header?”](#header)
> `readonly` `optional` **header?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:904](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L904)
***
### left
[Section titled “left”](#left)
> `readonly` **left**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:903](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L903)
***
### right
[Section titled “right”](#right)
> `readonly` **right**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:901](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L901)
***
### top
[Section titled “top”](#top)
> `readonly` **top**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:900](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L900)
# PageSize
Defined in: [src/core/document-model/types.ts:892](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L892)
ECMA-376 Part 1 §17.6.13 `w:pgSz` — the section’s page dimensions + orientation.
## Properties
[Section titled “Properties”](#properties)
### height
[Section titled “height”](#height)
> `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:894](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L894)
***
### orientation?
[Section titled “orientation?”](#orientation)
> `readonly` `optional` **orientation?**: `"portrait"` | `"landscape"`
Defined in: [src/core/document-model/types.ts:895](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L895)
***
### width
[Section titled “width”](#width)
> `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:893](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L893)
# Paragraph
Defined in: [src/core/document-model/types.ts:328](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L328)
ECMA-376 Part 1 §17.3.1 — a paragraph: its [ParagraphProperties](/api/core/document-model/interfaces/paragraphproperties/) and runs.
## Properties
[Section titled “Properties”](#properties)
### bookmarks?
[Section titled “bookmarks?”](#bookmarks)
> `readonly` `optional` **bookmarks?**: readonly `string`\[]
Defined in: [src/core/document-model/types.ts:337](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L337)
§17.13.6.2 `w:bookmarkStart` — names of bookmarks opening in (or immediately before) this paragraph. Paragraph-level v1: the destination is the paragraph’s first line.
***
### native?
[Section titled “native?”](#native)
> `readonly` `optional` **native?**: [`NativeBag`](/api/index/interfaces/nativebag/)
Defined in: [src/core/document-model/types.ts:329](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L329)
***
### properties
[Section titled “properties”](#properties-1)
> `readonly` **properties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/)
Defined in: [src/core/document-model/types.ts:330](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L330)
***
### runs
[Section titled “runs”](#runs)
> `readonly` **runs**: readonly [`Run`](/api/core/document-model/interfaces/run/)\[]
Defined in: [src/core/document-model/types.ts:331](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L331)
# ParagraphProperties
Defined in: [src/core/document-model/types.ts:83](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L83)
ECMA-376 Part 1 §17.3.1 — Paragraph Properties (`pPr`). All lengths in canonical Pt (converted from twips by the parser); all fields optional for cascade inheritance.
`indentFirstLine` encodes both `` (positive value) and `` (stored as the negative twips, so a hanging indent of 360 twips becomes `indentFirstLine = -18pt` — the first line ends up 360 twips to the left of `indentLeft`).
## Properties
[Section titled “Properties”](#properties)
### alignment?
[Section titled “alignment?”](#alignment)
> `readonly` `optional` **alignment?**: [`Alignment`](/api/core/document-model/type-aliases/alignment/)
Defined in: [src/core/document-model/types.ts:85](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L85)
***
### bidi?
[Section titled “bidi?”](#bidi)
> `readonly` `optional` **bidi?**: `boolean`
Defined in: [src/core/document-model/types.ts:105](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L105)
ECMA-376 §17.3.1.6 — `w:bidi`. Sets the paragraph’s base direction to RTL, so the BiDi paragraph embedding level is 1 and default alignment is right.
***
### indentFirstLine?
[Section titled “indentFirstLine?”](#indentfirstline)
> `readonly` `optional` **indentFirstLine?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:92](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L92)
***
### indentLeft?
[Section titled “indentLeft?”](#indentleft)
> `readonly` `optional` **indentLeft?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:90](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L90)
***
### indentRight?
[Section titled “indentRight?”](#indentright)
> `readonly` `optional` **indentRight?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:91](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L91)
***
### numbering?
[Section titled “numbering?”](#numbering)
> `readonly` `optional` **numbering?**: [`NumberingReference`](/api/core/document-model/interfaces/numberingreference/)
Defined in: [src/core/document-model/types.ts:95](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L95)
***
### outlineLevel?
[Section titled “outlineLevel?”](#outlinelevel)
> `readonly` `optional` **outlineLevel?**: `number`
Defined in: [src/core/document-model/types.ts:110](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L110)
ECMA-376 §17.3.1.20 — `w:outlineLvl`. Outline level 0–8 maps to Heading 1–9; 9 (or absent) is body text. Drives tagged-PDF heading structure (H1–H6).
***
### pageBreakBefore?
[Section titled “pageBreakBefore?”](#pagebreakbefore)
> `readonly` `optional` **pageBreakBefore?**: `boolean`
Defined in: [src/core/document-model/types.ts:100](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L100)
ECMA-376 Part 1 §17.3.1.21 — `w:pageBreakBefore`. When true, the paragraph starts on a fresh page even if there is room on the current one.
***
### runProperties?
[Section titled “runProperties?”](#runproperties)
> `readonly` `optional` **runProperties?**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/)
Defined in: [src/core/document-model/types.ts:94](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L94)
The implicit default run properties for runs in this paragraph (`w:pPr/w:rPr`).
***
### spacingAfter?
[Section titled “spacingAfter?”](#spacingafter)
> `readonly` `optional` **spacingAfter?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:87](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L87)
***
### spacingBefore?
[Section titled “spacingBefore?”](#spacingbefore)
> `readonly` `optional` **spacingBefore?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:86](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L86)
***
### spacingLine?
[Section titled “spacingLine?”](#spacingline)
> `readonly` `optional` **spacingLine?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:88](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L88)
***
### spacingLineRule?
[Section titled “spacingLineRule?”](#spacinglinerule)
> `readonly` `optional` **spacingLineRule?**: `"auto"` | `"exact"` | `"atLeast"`
Defined in: [src/core/document-model/types.ts:89](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L89)
***
### styleId?
[Section titled “styleId?”](#styleid)
> `readonly` `optional` **styleId?**: `string`
Defined in: [src/core/document-model/types.ts:84](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L84)
# RowProperties
Defined in: [src/core/document-model/types.ts:609](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L609)
§17.4.81 `w:trPr` — a table row’s properties: height, split/header flags.
## Properties
[Section titled “Properties”](#properties)
### cantSplit?
[Section titled “cantSplit?”](#cantsplit)
> `readonly` `optional` **cantSplit?**: `boolean`
Defined in: [src/core/document-model/types.ts:612](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L612)
***
### height?
[Section titled “height?”](#height)
> `readonly` `optional` **height?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:610](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L610)
***
### heightRule?
[Section titled “heightRule?”](#heightrule)
> `readonly` `optional` **heightRule?**: `"auto"` | `"exact"` | `"atLeast"`
Defined in: [src/core/document-model/types.ts:611](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L611)
***
### isHeader?
[Section titled “isHeader?”](#isheader)
> `readonly` `optional` **isHeader?**: `boolean`
Defined in: [src/core/document-model/types.ts:613](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L613)
***
### pageBreakBefore?
[Section titled “pageBreakBefore?”](#pagebreakbefore)
> `readonly` `optional` **pageBreakBefore?**: `boolean`
Defined in: [src/core/document-model/types.ts:618](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L618)
Force this row to begin a new page (xlsx manual ``). The renderer flushes the page before the row, then repeats any leading header rows.
# Run
Defined in: [src/core/document-model/types.ts:268](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L268)
ECMA-376 Part 1 §17.3.2 — a run: a span of `text` (or an inline image / math object) sharing one set of [RunProperties](/api/core/document-model/interfaces/runproperties/), plus the reference markers (hyperlink, note, comment, page-number field) the layout acts on.
## Properties
[Section titled “Properties”](#properties)
### anchor?
[Section titled “anchor?”](#anchor)
> `readonly` `optional` **anchor?**: `string`
Defined in: [src/core/document-model/types.ts:292](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L292)
§17.16.22 `w:hyperlink @w:anchor` — internal link target: a bookmark name in this document (never a URL — bypasses the scheme allowlist).
***
### commentRangeRefs?
[Section titled “commentRangeRefs?”](#commentrangerefs)
> `readonly` `optional` **commentRangeRefs?**: readonly `string`\[]
Defined in: [src/core/document-model/types.ts:305](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L305)
§17.13.4.3/4 `w:commentRangeStart`/`End` — the ids of the comment ranges this run falls inside (a run may be covered by several). Renderers highlight the covered span; the marker run (`commentRef`) sits at the range’s end.
***
### commentRef?
[Section titled “commentRef?”](#commentref)
> `readonly` `optional` **commentRef?**: `string`
Defined in: [src/core/document-model/types.ts:299](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L299)
§17.13.4.1 `w:commentReference` — the run anchors a review comment by id; the comment’s content/author live in `FlowDoc.comments`.
***
### endnoteRef?
[Section titled “endnoteRef?”](#endnoteref)
> `readonly` `optional` **endnoteRef?**: `string`
Defined in: [src/core/document-model/types.ts:294](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L294)
***
### field?
[Section titled “field?”](#field)
> `readonly` `optional` **field?**: `"PAGE"` | `"NUMPAGES"`
Defined in: [src/core/document-model/types.ts:284](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L284)
§17.16.5.35 PAGE / §17.16.5.33 NUMPAGES — the run is a page-number field; `text` holds the source’s cached result. Header/footer rendering substitutes the real number per page; body rendering keeps the cache.
***
### footnoteRef?
[Section titled “footnoteRef?”](#footnoteref)
> `readonly` `optional` **footnoteRef?**: `string`
Defined in: [src/core/document-model/types.ts:293](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L293)
***
### href?
[Section titled “href?”](#href)
> `readonly` `optional` **href?**: `string`
Defined in: [src/core/document-model/types.ts:278](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L278)
ECMA-376 §17.16.22 — the run sits inside a `w:hyperlink` whose `r:id` resolved to an external target. The URL is stored as written in the rels part; writers MUST pass it through the scheme allowlist (`core/links`) before emitting anything clickable.
***
### inlineImage?
[Section titled “inlineImage?”](#inlineimage)
> `readonly` `optional` **inlineImage?**: [`InlineImage`](/api/core/document-model/interfaces/inlineimage/)
Defined in: [src/core/document-model/types.ts:317](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L317)
When set, the run renders this image inline in the line; `text` is ignored.
***
### listMarker?
[Section titled “listMarker?”](#listmarker)
> `readonly` `optional` **listMarker?**: `true`
Defined in: [src/core/document-model/types.ts:315](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L315)
The run is a list-item marker materialized by `applyNumbering` (`"1."`, `"•"`). Tagged PDF wraps its glyphs in a Lbl structure element (§14.8.4.3.3).
***
### math?
[Section titled “math?”](#math)
> `readonly` `optional` **math?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/)
Defined in: [src/core/document-model/types.ts:319](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L319)
When set, the run is an inline OfficeMath object; `text` is ignored.
***
### native?
[Section titled “native?”](#native)
> `readonly` `optional` **native?**: [`NativeBag`](/api/index/interfaces/nativebag/)
Defined in: [src/core/document-model/types.ts:269](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L269)
***
### noteNumber?
[Section titled “noteNumber?”](#notenumber)
> `readonly` `optional` **noteNumber?**: `true`
Defined in: [src/core/document-model/types.ts:310](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L310)
§17.11.13 `w:footnoteRef` / §17.11.5 `w:endnoteRef` — inside note content: render the OWNING note’s number here.
***
### pageBreak?
[Section titled “pageBreak?”](#pagebreak)
> `readonly` `optional` **pageBreak?**: `boolean`
Defined in: [src/core/document-model/types.ts:324](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L324)
ECMA-376 Part 1 §17.3.3.1 — `w:br w:type="page"`. A forced page break: the paragraph’s following content starts on a new page.
***
### properties
[Section titled “properties”](#properties-1)
> `readonly` **properties**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/)
Defined in: [src/core/document-model/types.ts:271](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L271)
***
### text
[Section titled “text”](#text)
> `readonly` **text**: `string`
Defined in: [src/core/document-model/types.ts:270](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L270)
# RunProperties
Defined in: [src/core/document-model/types.ts:51](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L51)
ECMA-376 Part 1 §17.3.2 — Run Properties (`rPr`). All fields optional so the cascade can inherit them (undefined = “inherit from parent in the style chain”). Boolean toggle properties follow §17.17.4: an absent `` means “inherit”; a present `` with no val (or val=true/1/on) means true; val=false/0/off means explicit false.
## Properties
[Section titled “Properties”](#properties)
### bold?
[Section titled “bold?”](#bold)
> `readonly` `optional` **bold?**: `boolean`
Defined in: [src/core/document-model/types.ts:53](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L53)
***
### colorHex?
[Section titled “colorHex?”](#colorhex)
> `readonly` `optional` **colorHex?**: `string`
Defined in: [src/core/document-model/types.ts:58](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L58)
***
### fontFamily?
[Section titled “fontFamily?”](#fontfamily)
> `readonly` `optional` **fontFamily?**: [`FontFamilyMap`](/api/core/document-model/interfaces/fontfamilymap/)
Defined in: [src/core/document-model/types.ts:59](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L59)
***
### fontSizePt?
[Section titled “fontSizePt?”](#fontsizept)
> `readonly` `optional` **fontSizePt?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:57](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L57)
***
### italic?
[Section titled “italic?”](#italic)
> `readonly` `optional` **italic?**: `boolean`
Defined in: [src/core/document-model/types.ts:54](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L54)
***
### lang?
[Section titled “lang?”](#lang)
> `readonly` `optional` **lang?**: `string`
Defined in: [src/core/document-model/types.ts:70](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L70)
ECMA-376 §17.3.2.20 — `w:lang @w:val` (e.g. `"en-US"`, `"ru-RU"`). Used for the tagged-PDF per-element `/Lang`; does not affect visual layout.
***
### rtl?
[Section titled “rtl?”](#rtl)
> `readonly` `optional` **rtl?**: `boolean`
Defined in: [src/core/document-model/types.ts:65](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L65)
ECMA-376 §17.3.2.30 — `w:rtl`. Marks the run as right-to-left, which seeds the BiDi algorithm with an R/AL bias even for neutral characters.
***
### strike?
[Section titled “strike?”](#strike)
> `readonly` `optional` **strike?**: `boolean`
Defined in: [src/core/document-model/types.ts:56](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L56)
***
### styleId?
[Section titled “styleId?”](#styleid)
> `readonly` `optional` **styleId?**: `string`
Defined in: [src/core/document-model/types.ts:52](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L52)
***
### underline?
[Section titled “underline?”](#underline)
> `readonly` `optional` **underline?**: [`UnderlineStyle`](/api/core/document-model/type-aliases/underlinestyle/)
Defined in: [src/core/document-model/types.ts:55](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L55)
***
### verticalAlign?
[Section titled “verticalAlign?”](#verticalalign)
> `readonly` `optional` **verticalAlign?**: [`VerticalAlign`](/api/core/document-model/type-aliases/verticalalign/)
Defined in: [src/core/document-model/types.ts:60](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L60)
# Section
Defined in: [src/core/document-model/types.ts:975](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L975)
One section descriptor for a multi-section document (ECMA-376 §17.6.17). Each section’s `sectPr` lives either inside a paragraph’s `pPr` (mid-document break) or as the final child of `w:body` (final section). Records the properties and the upper-exclusive bound in `BodyElement[]` the section covers — section i applies to `body[sections[i-1].endIndex..sections[i].endIndex)`.
## Properties
[Section titled “Properties”](#properties)
### endIndex
[Section titled “endIndex”](#endindex)
> `readonly` **endIndex**: `number`
Defined in: [src/core/document-model/types.ts:977](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L977)
***
### properties
[Section titled “properties”](#properties-1)
> `readonly` **properties**: [`SectionProperties`](/api/core/document-model/interfaces/sectionproperties/)
Defined in: [src/core/document-model/types.ts:976](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L976)
# SectionColumns
Defined in: [src/core/document-model/types.ts:961](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L961)
§17.6.4 — column definitions: an equal-width `count` + gutter, or explicit per-column widths/gutters (`w:col` children).
## Properties
[Section titled “Properties”](#properties)
### count
[Section titled “count”](#count)
> `readonly` **count**: `number`
Defined in: [src/core/document-model/types.ts:962](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L962)
***
### explicit?
[Section titled “explicit?”](#explicit)
> `readonly` `optional` **explicit?**: readonly `object`\[]
Defined in: [src/core/document-model/types.ts:964](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L964)
***
### spacePt
[Section titled “spacePt”](#spacept)
> `readonly` **spacePt**: `number`
Defined in: [src/core/document-model/types.ts:963](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L963)
# SectionProperties
Defined in: [src/core/document-model/types.ts:918](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L918)
§17.6.17 `w:sectPr` — a section’s page setup, header/footer refs and columns.
## Properties
[Section titled “Properties”](#properties)
### columns?
[Section titled “columns?”](#columns)
> `readonly` `optional` **columns?**: [`SectionColumns`](/api/core/document-model/interfaces/sectioncolumns/)
Defined in: [src/core/document-model/types.ts:935](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L935)
§17.6.4 `w:cols` — multi-column section layout.
***
### evenAndOddHeaders?
[Section titled “evenAndOddHeaders?”](#evenandoddheaders)
> `readonly` `optional` **evenAndOddHeaders?**: `boolean`
Defined in: [src/core/document-model/types.ts:933](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L933)
ECMA-376 §17.15.1.36 — `w:evenAndOddHeaders` toggle in `word/settings.xml` (document-wide, not per-section). When true even-numbered pages use the `even` header/footer references.
***
### footers
[Section titled “footers”](#footers)
> `readonly` **footers**: readonly [`HeaderFooterReference`](/api/core/document-model/interfaces/headerfooterreference/)\[]
Defined in: [src/core/document-model/types.ts:922](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L922)
***
### headers
[Section titled “headers”](#headers)
> `readonly` **headers**: readonly [`HeaderFooterReference`](/api/core/document-model/interfaces/headerfooterreference/)\[]
Defined in: [src/core/document-model/types.ts:921](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L921)
***
### margins?
[Section titled “margins?”](#margins)
> `readonly` `optional` **margins?**: [`PageMargins`](/api/core/document-model/interfaces/pagemargins/)
Defined in: [src/core/document-model/types.ts:920](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L920)
***
### pageSize?
[Section titled “pageSize?”](#pagesize)
> `readonly` `optional` **pageSize?**: [`PageSize`](/api/core/document-model/interfaces/pagesize/)
Defined in: [src/core/document-model/types.ts:919](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L919)
***
### titlePg?
[Section titled “titlePg?”](#titlepg)
> `readonly` `optional` **titlePg?**: `boolean`
Defined in: [src/core/document-model/types.ts:927](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L927)
ECMA-376 §17.10.6 — `w:titlePg` toggle in `sectPr`. When true the first page of the section uses the `first` header/footer references.
# ShapeBlock
Defined in: [src/core/document-model/types.ts:810](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L810)
A block-level DrawingML shape (§20.1): its size, [ShapeGeometry](/api/core/document-model/interfaces/shapegeometry/), fill, outline, transform and optional text body. A standalone shape carries the paragraph’s properties for block spacing / alignment, mirroring [ImageBlock](/api/core/document-model/interfaces/imageblock/).
## Properties
[Section titled “Properties”](#properties)
### altText?
[Section titled “altText?”](#alttext)
> `readonly` `optional` **altText?**: `string`
Defined in: [src/core/document-model/types.ts:822](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L822)
`wp:docPr @descr/@title` — alternate text for the tagged-PDF Figure (`/Alt`).
***
### fill
[Section titled “fill”](#fill)
> `readonly` **fill**: [`ShapeFill`](/api/core/document-model/interfaces/shapefill/)
Defined in: [src/core/document-model/types.ts:816](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L816)
***
### float?
[Section titled “float?”](#float)
> `readonly` `optional` **float?**: [`FloatAnchor`](/api/core/document-model/interfaces/floatanchor/)
Defined in: [src/core/document-model/types.ts:812](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L812)
§20.4.2.3 — present when the drawing is anchored (floating).
***
### geometry
[Section titled “geometry”](#geometry)
> `readonly` **geometry**: [`ShapeGeometry`](/api/core/document-model/interfaces/shapegeometry/)
Defined in: [src/core/document-model/types.ts:815](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L815)
***
### height
[Section titled “height”](#height)
> `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:814](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L814)
***
### line?
[Section titled “line?”](#line)
> `readonly` `optional` **line?**: [`ShapeLine`](/api/core/document-model/interfaces/shapeline/)
Defined in: [src/core/document-model/types.ts:817](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L817)
***
### paragraphProperties
[Section titled “paragraphProperties”](#paragraphproperties)
> `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/)
Defined in: [src/core/document-model/types.ts:820](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L820)
***
### text?
[Section titled “text?”](#text)
> `readonly` `optional` **text?**: [`ShapeTextBody`](/api/core/document-model/interfaces/shapetextbody/)
Defined in: [src/core/document-model/types.ts:819](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L819)
***
### transform?
[Section titled “transform?”](#transform)
> `readonly` `optional` **transform?**: [`ShapeTransform`](/api/core/document-model/interfaces/shapetransform/)
Defined in: [src/core/document-model/types.ts:818](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L818)
***
### width
[Section titled “width”](#width)
> `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:813](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L813)
# ShapeFill
Defined in: [src/core/document-model/types.ts:761](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L761)
A shape’s fill: none, a solid colour, or a ShapeGradient.
## Properties
[Section titled “Properties”](#properties)
### colorHex?
[Section titled “colorHex?”](#colorhex)
> `readonly` `optional` **colorHex?**: `string`
Defined in: [src/core/document-model/types.ts:763](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L763)
***
### gradient?
[Section titled “gradient?”](#gradient)
> `readonly` `optional` **gradient?**: `ShapeGradient`
Defined in: [src/core/document-model/types.ts:764](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L764)
***
### kind
[Section titled “kind”](#kind)
> `readonly` **kind**: [`ShapeFillKind`](/api/core/document-model/type-aliases/shapefillkind/)
Defined in: [src/core/document-model/types.ts:762](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L762)
# ShapeGeometry
Defined in: [src/core/document-model/types.ts:750](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L750)
§20.1.10.55 `prstGeom` / §20.1.9.11 `custGeom` — a shape’s geometry source.
## Properties
[Section titled “Properties”](#properties)
### adjust?
[Section titled “adjust?”](#adjust)
> `readonly` `optional` **adjust?**: `ReadonlyMap`<`string`, `number`>
Defined in: [src/core/document-model/types.ts:753](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L753)
***
### custom?
[Section titled “custom?”](#custom)
> `readonly` `optional` **custom?**: [`CustomGeometry`](/api/core/document-model/interfaces/customgeometry/)
Defined in: [src/core/document-model/types.ts:754](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L754)
***
### kind
[Section titled “kind”](#kind)
> `readonly` **kind**: `"preset"` | `"custom"`
Defined in: [src/core/document-model/types.ts:751](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L751)
***
### preset?
[Section titled “preset?”](#preset)
> `readonly` `optional` **preset?**: `string`
Defined in: [src/core/document-model/types.ts:752](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L752)
# ShapeLine
Defined in: [src/core/document-model/types.ts:779](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L779)
§20.1.2.2.24 `a:ln` — a shape’s outline (stroke).
## Properties
[Section titled “Properties”](#properties)
### cap?
[Section titled “cap?”](#cap)
> `readonly` `optional` **cap?**: `"square"` | `"flat"` | `"round"`
Defined in: [src/core/document-model/types.ts:783](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L783)
***
### colorHex?
[Section titled “colorHex?”](#colorhex)
> `readonly` `optional` **colorHex?**: `string`
Defined in: [src/core/document-model/types.ts:781](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L781)
***
### dash?
[Section titled “dash?”](#dash)
> `readonly` `optional` **dash?**: [`ShapeDash`](/api/core/document-model/type-aliases/shapedash/)
Defined in: [src/core/document-model/types.ts:782](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L782)
***
### fill?
[Section titled “fill?”](#fill)
> `readonly` `optional` **fill?**: `"none"` | `"solid"`
Defined in: [src/core/document-model/types.ts:784](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L784)
***
### width?
[Section titled “width?”](#width)
> `readonly` `optional` **width?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:780](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L780)
# ShapeTextBody
Defined in: [src/core/document-model/types.ts:795](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L795)
`wps:txbx` (`w:txbxContent`) + `wps:bodyPr` — text inside a shape.
## Properties
[Section titled “Properties”](#properties)
### anchor?
[Section titled “anchor?”](#anchor)
> `readonly` `optional` **anchor?**: `"t"` | `"b"` | `"ctr"`
Defined in: [src/core/document-model/types.ts:801](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L801)
***
### content
[Section titled “content”](#content)
> `readonly` **content**: readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]
Defined in: [src/core/document-model/types.ts:796](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L796)
***
### insetBottom?
[Section titled “insetBottom?”](#insetbottom)
> `readonly` `optional` **insetBottom?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:800](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L800)
***
### insetLeft?
[Section titled “insetLeft?”](#insetleft)
> `readonly` `optional` **insetLeft?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:797](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L797)
***
### insetRight?
[Section titled “insetRight?”](#insetright)
> `readonly` `optional` **insetRight?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:799](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L799)
***
### insetTop?
[Section titled “insetTop?”](#insettop)
> `readonly` `optional` **insetTop?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:798](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L798)
# ShapeTransform
Defined in: [src/core/document-model/types.ts:788](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L788)
§20.1.7.6 `a:xfrm` — a shape’s rotation (1/60000°, clockwise) + flips.
## Properties
[Section titled “Properties”](#properties)
### flipH?
[Section titled “flipH?”](#fliph)
> `readonly` `optional` **flipH?**: `boolean`
Defined in: [src/core/document-model/types.ts:790](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L790)
***
### flipV?
[Section titled “flipV?”](#flipv)
> `readonly` `optional` **flipV?**: `boolean`
Defined in: [src/core/document-model/types.ts:791](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L791)
***
### rotation60k?
[Section titled “rotation60k?”](#rotation60k)
> `readonly` `optional` **rotation60k?**: `number`
Defined in: [src/core/document-model/types.ts:789](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L789)
# Style
Defined in: [src/core/document-model/types.ts:455](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L455)
ECMA-376 §17.7 — one style definition: its id, category, `basedOn` parent, and the run/paragraph properties it contributes (plus the table-style layers for `type === 'table'`).
## Properties
[Section titled “Properties”](#properties)
### basedOn?
[Section titled “basedOn?”](#basedon)
> `readonly` `optional` **basedOn?**: `string`
Defined in: [src/core/document-model/types.ts:458](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L458)
***
### colBandSize?
[Section titled “colBandSize?”](#colbandsize)
> `readonly` `optional` **colBandSize?**: `number`
Defined in: [src/core/document-model/types.ts:467](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L467)
***
### id
[Section titled “id”](#id)
> `readonly` **id**: `string`
Defined in: [src/core/document-model/types.ts:456](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L456)
***
### isDefault
[Section titled “isDefault”](#isdefault)
> `readonly` **isDefault**: `boolean`
Defined in: [src/core/document-model/types.ts:459](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L459)
***
### paragraphProperties
[Section titled “paragraphProperties”](#paragraphproperties)
> `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/)
Defined in: [src/core/document-model/types.ts:461](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L461)
***
### rowBandSize?
[Section titled “rowBandSize?”](#rowbandsize)
> `readonly` `optional` **rowBandSize?**: `number`
Defined in: [src/core/document-model/types.ts:466](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L466)
`w:tblPr/w:tblStyleRowBandSize` / `ColBandSize` (default 1).
***
### runProperties
[Section titled “runProperties”](#runproperties)
> `readonly` **runProperties**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/)
Defined in: [src/core/document-model/types.ts:460](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L460)
***
### tableConditions?
[Section titled “tableConditions?”](#tableconditions)
> `readonly` `optional` **tableConditions?**: readonly [`TableStyleCondition`](/api/core/document-model/interfaces/tablestylecondition/)\[]
Defined in: [src/core/document-model/types.ts:464](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L464)
***
### tableLayer?
[Section titled “tableLayer?”](#tablelayer)
> `readonly` `optional` **tableLayer?**: [`TableStyleLayer`](/api/core/document-model/interfaces/tablestylelayer/)
Defined in: [src/core/document-model/types.ts:463](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L463)
Table styles only (§17.7.6): the base layer and conditional overrides.
***
### type
[Section titled “type”](#type)
> `readonly` **type**: [`StyleType`](/api/core/document-model/type-aliases/styletype/)
Defined in: [src/core/document-model/types.ts:457](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L457)
# StyleSheet
Defined in: [src/core/document-model/types.ts:475](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L475)
The parsed `word/styles.xml`: document defaults (`docDefaults`) plus the styles map keyed by id. The cascade resolver merges these into the resolved property objects the renderer consumes.
## Properties
[Section titled “Properties”](#properties)
### defaultParagraphProperties
[Section titled “defaultParagraphProperties”](#defaultparagraphproperties)
> `readonly` **defaultParagraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/)
Defined in: [src/core/document-model/types.ts:477](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L477)
***
### defaultRunProperties
[Section titled “defaultRunProperties”](#defaultrunproperties)
> `readonly` **defaultRunProperties**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/)
Defined in: [src/core/document-model/types.ts:476](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L476)
***
### styles
[Section titled “styles”](#styles)
> `readonly` **styles**: `ReadonlyMap`<`string`, [`Style`](/api/core/document-model/interfaces/style/)>
Defined in: [src/core/document-model/types.ts:478](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L478)
# Table
Defined in: [src/core/document-model/types.ts:678](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L678)
§17.4.38 `w:tbl` — a table: its [TableProperties](/api/core/document-model/interfaces/tableproperties/), the `w:tblGrid` column widths (`grid`), and its rows.
## Properties
[Section titled “Properties”](#properties)
### grid
[Section titled “grid”](#grid)
> `readonly` **grid**: readonly [`Pt`](/api/index/type-aliases/pt/)\[]
Defined in: [src/core/document-model/types.ts:681](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L681)
***
### native?
[Section titled “native?”](#native)
> `readonly` `optional` **native?**: [`NativeBag`](/api/index/interfaces/nativebag/)
Defined in: [src/core/document-model/types.ts:679](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L679)
***
### properties
[Section titled “properties”](#properties-1)
> `readonly` **properties**: [`TableProperties`](/api/core/document-model/interfaces/tableproperties/)
Defined in: [src/core/document-model/types.ts:680](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L680)
***
### rows
[Section titled “rows”](#rows)
> `readonly` **rows**: readonly [`TableRow`](/api/core/document-model/interfaces/tablerow/)\[]
Defined in: [src/core/document-model/types.ts:682](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L682)
# TableCell
Defined in: [src/core/document-model/types.ts:663](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L663)
§17.4.66 `w:tc` — a table cell: its [CellProperties](/api/core/document-model/interfaces/cellproperties/) and block content.
## Properties
[Section titled “Properties”](#properties)
### content
[Section titled “content”](#content)
> `readonly` **content**: readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]
Defined in: [src/core/document-model/types.ts:665](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L665)
***
### properties
[Section titled “properties”](#properties-1)
> `readonly` **properties**: [`CellProperties`](/api/core/document-model/interfaces/cellproperties/)
Defined in: [src/core/document-model/types.ts:664](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L664)
# TableLook
Defined in: [src/core/document-model/types.ts:626](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L626)
§17.4.62 `w:tblLook` — which of the table style’s conditional formats apply. Modern files carry explicit attributes; legacy files a hex bitmask (both parsed). Band flags are negative (“no band”) per the spec.
## Properties
[Section titled “Properties”](#properties)
### firstColumn?
[Section titled “firstColumn?”](#firstcolumn)
> `readonly` `optional` **firstColumn?**: `boolean`
Defined in: [src/core/document-model/types.ts:629](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L629)
***
### firstRow?
[Section titled “firstRow?”](#firstrow)
> `readonly` `optional` **firstRow?**: `boolean`
Defined in: [src/core/document-model/types.ts:627](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L627)
***
### lastColumn?
[Section titled “lastColumn?”](#lastcolumn)
> `readonly` `optional` **lastColumn?**: `boolean`
Defined in: [src/core/document-model/types.ts:630](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L630)
***
### lastRow?
[Section titled “lastRow?”](#lastrow)
> `readonly` `optional` **lastRow?**: `boolean`
Defined in: [src/core/document-model/types.ts:628](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L628)
***
### noHBand?
[Section titled “noHBand?”](#nohband)
> `readonly` `optional` **noHBand?**: `boolean`
Defined in: [src/core/document-model/types.ts:631](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L631)
***
### noVBand?
[Section titled “noVBand?”](#novband)
> `readonly` `optional` **noVBand?**: `boolean`
Defined in: [src/core/document-model/types.ts:632](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L632)
# TableProperties
Defined in: [src/core/document-model/types.ts:636](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L636)
§17.4.60 `w:tblPr` — a table’s properties: style ref, width/layout, chrome.
## Properties
[Section titled “Properties”](#properties)
### alignment?
[Section titled “alignment?”](#alignment)
> `readonly` `optional` **alignment?**: `"right"` | `"left"` | `"center"`
Defined in: [src/core/document-model/types.ts:653](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L653)
ECMA-376 §17.4.27 (`w:jc`) / xlsx ``. Centers or right-aligns a table narrower than the content width; absent ⇒ left.
***
### borders?
[Section titled “borders?”](#borders)
> `readonly` `optional` **borders?**: [`CellBorders`](/api/core/document-model/interfaces/cellborders/)
Defined in: [src/core/document-model/types.ts:648](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L648)
***
### defaultCellMargins?
[Section titled “defaultCellMargins?”](#defaultcellmargins)
> `readonly` `optional` **defaultCellMargins?**: [`CellMargins`](/api/core/document-model/interfaces/cellmargins/)
Defined in: [src/core/document-model/types.ts:647](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L647)
***
### frozen?
[Section titled “frozen?”](#frozen)
> `readonly` `optional` **frozen?**: `object`
Defined in: [src/core/document-model/types.ts:659](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L659)
A sticky-pane hint from a frozen worksheet view (E-SHEET SE3): the first `rows` rows / `cols` columns stay pinned while the rest scrolls. Consumed only by the HTML writer (an interactive target); PDF/SVG ignore it.
#### cols
[Section titled “cols”](#cols)
> `readonly` **cols**: `number`
#### rows
[Section titled “rows”](#rows)
> `readonly` **rows**: `number`
***
### layout?
[Section titled “layout?”](#layout)
> `readonly` `optional` **layout?**: `"auto"` | `"fixed"`
Defined in: [src/core/document-model/types.ts:646](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L646)
***
### look?
[Section titled “look?”](#look)
> `readonly` `optional` **look?**: [`TableLook`](/api/core/document-model/interfaces/tablelook/)
Defined in: [src/core/document-model/types.ts:642](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L642)
***
### styleId?
[Section titled “styleId?”](#styleid)
> `readonly` `optional` **styleId?**: `string`
Defined in: [src/core/document-model/types.ts:641](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L641)
§17.7.6 — raw reference to a table style (resolved by the reader’s `resolveTableStyles` transform; round-trip material afterwards).
***
### widthFraction?
[Section titled “widthFraction?”](#widthfraction)
> `readonly` `optional` **widthFraction?**: `number`
Defined in: [src/core/document-model/types.ts:644](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L644)
***
### widthPt?
[Section titled “widthPt?”](#widthpt)
> `readonly` `optional` **widthPt?**: [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/document-model/types.ts:643](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L643)
***
### widthType?
[Section titled “widthType?”](#widthtype)
> `readonly` `optional` **widthType?**: `"auto"` | `"dxa"` | `"pct"` | `"nil"`
Defined in: [src/core/document-model/types.ts:645](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L645)
# TableRow
Defined in: [src/core/document-model/types.ts:669](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L669)
§17.4.79 `w:tr` — a table row: its [RowProperties](/api/core/document-model/interfaces/rowproperties/) and cells.
## Properties
[Section titled “Properties”](#properties)
### cells
[Section titled “cells”](#cells)
> `readonly` **cells**: readonly [`TableCell`](/api/core/document-model/interfaces/tablecell/)\[]
Defined in: [src/core/document-model/types.ts:671](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L671)
***
### properties
[Section titled “properties”](#properties-1)
> `readonly` **properties**: [`RowProperties`](/api/core/document-model/interfaces/rowproperties/)
Defined in: [src/core/document-model/types.ts:670](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L670)
# TableStyleCondition
Defined in: [src/core/document-model/types.ts:445](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L445)
A conditional table-style override: the region `type` and the layer it applies.
## Properties
[Section titled “Properties”](#properties)
### layer
[Section titled “layer”](#layer)
> `readonly` **layer**: [`TableStyleLayer`](/api/core/document-model/interfaces/tablestylelayer/)
Defined in: [src/core/document-model/types.ts:447](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L447)
***
### type
[Section titled “type”](#type)
> `readonly` **type**: [`TableStyleConditionType`](/api/core/document-model/type-aliases/tablestyleconditiontype/)
Defined in: [src/core/document-model/types.ts:446](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L446)
# TableStyleLayer
Defined in: [src/core/document-model/types.ts:420](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L420)
§17.7.6 — one table-style formatting layer: the style’s own base layer (`w:style/tblPr` + `tcPr` + `rPr` + `pPr`) or one conditional override (`w:tblStylePr`). Borders come from `tblBorders` (table layer) or `tcBorders` (region layer) — whichever the layer carries.
## Properties
[Section titled “Properties”](#properties)
### borders?
[Section titled “borders?”](#borders)
> `readonly` `optional` **borders?**: [`CellBorders`](/api/core/document-model/interfaces/cellborders/)
Defined in: [src/core/document-model/types.ts:421](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L421)
***
### cellMargins?
[Section titled “cellMargins?”](#cellmargins)
> `readonly` `optional` **cellMargins?**: [`CellMargins`](/api/core/document-model/interfaces/cellmargins/)
Defined in: [src/core/document-model/types.ts:422](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L422)
***
### paragraphProperties?
[Section titled “paragraphProperties?”](#paragraphproperties)
> `readonly` `optional` **paragraphProperties?**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/)
Defined in: [src/core/document-model/types.ts:425](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L425)
***
### runProperties?
[Section titled “runProperties?”](#runproperties)
> `readonly` `optional` **runProperties?**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/)
Defined in: [src/core/document-model/types.ts:424](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L424)
***
### shading?
[Section titled “shading?”](#shading)
> `readonly` `optional` **shading?**: [`CellShading`](/api/core/document-model/interfaces/cellshading/)
Defined in: [src/core/document-model/types.ts:423](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L423)
# Alignment
> **Alignment** = `"left"` | `"right"` | `"center"` | `"both"` | `"distribute"`
Defined in: [src/core/document-model/types.ts:15](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L15)
Paragraph horizontal alignment (`w:jc`); `both` = justified.
# BodyElement
> **BodyElement** = { `kind`: `"paragraph"`; `paragraph`: [`Paragraph`](/api/core/document-model/interfaces/paragraph/); } | { `kind`: `"table"`; `table`: [`Table`](/api/core/document-model/interfaces/table/); } | { `image`: [`ImageBlock`](/api/core/document-model/interfaces/imageblock/); `kind`: `"image"`; } | { `kind`: `"shape"`; `shape`: [`ShapeBlock`](/api/core/document-model/interfaces/shapeblock/); } | { `chart`: [`ChartBlock`](/api/core/document-model/interfaces/chartblock/); `kind`: `"chart"`; }
Defined in: [src/core/document-model/types.ts:884](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L884)
One top-level body item: a discriminated union over the block kinds.
# BorderStyle
> **BorderStyle** = `"none"` | `"single"` | `"double"` | `"thick"` | `"dotted"` | `"dashed"`
Defined in: [src/core/document-model/types.ts:484](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L484)
§17.18.2 ST\_Border — a cell-border line style (the subset Ream renders).
# CellIconShape
> **CellIconShape** = `"circle"` | `"square"` | `"diamond"` | `"triangleUp"` | `"triangleDown"` | `"triangleRight"` | `"check"` | `"cross"` | `"exclamation"` | `"bars"` | `"pie"`
Defined in: [src/core/document-model/types.ts:539](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L539)
A conditional-format icon: a small glyph at the cell’s left, chosen by the value’s bucket (E-SHEET SC1c). Format-neutral — the xlsx layer maps Excel’s named icon families (3TrafficLights, 3Arrows, …) onto these shapes + colours.
# CellMerge
> **CellMerge** = `"start"` | `"middle"` | `"end"`
Defined in: [src/core/document-model/types.ts:588](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L588)
Resolved position of a cell in a vertical merge group (ECMA-376 §17.4.85 `vMerge` markers are resolved by the reader): `start` opens a group that at least one cell continues, `middle` / `end` are continuations; undefined = not merged. Continuation cells stay in their rows (they hold the column slot); writers that need an HTML-style rowSpan can derive it by counting a start’s middle/end run downwards.
# ChartType
> **ChartType** = `"bar"` | `"line"` | `"pie"` | `"area"` | `"scatter"` | `"unknown"`
Defined in: [src/core/document-model/types.ts:833](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L833)
ECMA-376 Part 1 §21.2 — the kind of a DrawingML chart. A chart is referenced from a `w:drawing` (`a:graphicData uri=…/chart` → `c:chart r:id`) and its data lives in a separate chart part (e.g. `word/charts/chart1.xml`). The parsed [Chart](/api/core/document-model/interfaces/chart/) is keyed by that relationship id and supplied to the renderer alongside the body (mirroring image bytes), so [ChartBlock](/api/core/document-model/interfaces/chartblock/) only carries the ref.
# CustomPathCmd
> **CustomPathCmd** = { `cmd`: `"move"`; `x`: `number`; `y`: `number`; } | { `cmd`: `"line"`; `x`: `number`; `y`: `number`; } | { `cmd`: `"cubic"`; `x`: `number`; `x1`: `number`; `x2`: `number`; `y`: `number`; `y1`: `number`; `y2`: `number`; } | { `cmd`: `"quad"`; `x`: `number`; `x1`: `number`; `y`: `number`; `y1`: `number`; } | { `cmd`: `"arc"`; `hR`: `number`; `stAng`: `number`; `swAng`: `number`; `wR`: `number`; } | { `cmd`: `"close"`; }
Defined in: [src/core/document-model/types.ts:711](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L711)
§20.1.10.55 prstGeom path command (custGeom ``), in path-space units (`a:path @w/@h`). `quad` is elevated to cubic at layout; `arc` uses the DrawingML angle convention (1/60000°, clockwise, y-down) and is converted to beziers by the geometry layer.
# HeaderFooterType
> **HeaderFooterType** = `"default"` | `"first"` | `"even"`
Defined in: [src/core/document-model/types.ts:909](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L909)
§17.10 — which page class a header/footer reference applies to.
# MathNode
> **MathNode** = [`MathRow`](/api/core/document-model/interfaces/mathrow/) | [`MathRun`](/api/core/document-model/interfaces/mathrun/) | [`MathFraction`](/api/core/document-model/interfaces/mathfraction/) | [`MathScript`](/api/core/document-model/interfaces/mathscript/) | [`MathRadical`](/api/core/document-model/interfaces/mathradical/) | [`MathNary`](/api/core/document-model/interfaces/mathnary/) | [`MathFunc`](/api/core/document-model/interfaces/mathfunc/) | [`MathLimit`](/api/core/document-model/interfaces/mathlimit/) | [`MathDelimiter`](/api/core/document-model/interfaces/mathdelimiter/) | [`MathMatrix`](/api/core/document-model/interfaces/mathmatrix/) | [`MathAccent`](/api/core/document-model/interfaces/mathaccent/) | [`MathBar`](/api/core/document-model/interfaces/mathbar/) | [`MathGroupChr`](/api/core/document-model/interfaces/mathgroupchr/) | [`MathEqArray`](/api/core/document-model/interfaces/matheqarray/)
Defined in: [src/core/document-model/types.ts:134](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L134)
ECMA-376 Part 1 §22 — OfficeMathML (OMML). A recursive math element tree. The union grows by milestone; the layout engine renders structural elements (fraction bars, radicals, big operators, stretchy delimiters) as vector paths and ordinary symbols as font glyphs.
# NumberingFormat
> **NumberingFormat** = `"decimal"` | `"lowerLetter"` | `"upperLetter"` | `"lowerRoman"` | `"upperRoman"` | `"bullet"` | `"none"`
Defined in: [src/core/document-model/types.ts:367](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L367)
ECMA-376 Part 1 §17.9 — `w:numFmt` list marker format.
# ShapeDash
> **ShapeDash** = `"solid"` | `"dot"` | `"dash"` | `"dashDot"` | `"lgDash"` | `"lgDashDot"` | `"sysDash"` | `"sysDot"`
Defined in: [src/core/document-model/types.ts:768](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L768)
§20.1.10.49 ST\_PresetLineDashVal — a shape outline’s preset dash pattern.
# ShapeFillKind
> **ShapeFillKind** = `"none"` | `"solid"` | `"gradient"`
Defined in: [src/core/document-model/types.ts:758](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L758)
A shape’s fill mode (`a:noFill`/`a:solidFill`/`a:gradFill`).
# StyleType
> **StyleType** = `"paragraph"` | `"character"` | `"table"` | `"numbering"`
Defined in: [src/core/document-model/types.ts:412](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L412)
ECMA-376 Part 1 §17.7 — `w:style @w:type` style category.
# TableStyleConditionType
> **TableStyleConditionType** = `"wholeTable"` | `"band1Vert"` | `"band2Vert"` | `"band1Horz"` | `"band2Horz"` | `"firstCol"` | `"lastCol"` | `"firstRow"` | `"lastRow"` | `"nwCell"` | `"neCell"` | `"swCell"` | `"seCell"`
Defined in: [src/core/document-model/types.ts:429](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L429)
§17.7.6.3 `w:tblStylePr @w:type` — the table regions a conditional layer targets.
# UnderlineStyle
> **UnderlineStyle** = `"none"` | `"single"` | `"double"` | `"thick"` | `"dotted"` | `"dottedHeavy"` | `"dash"` | `"dashHeavy"` | `"wave"`
Defined in: [src/core/document-model/types.ts:18](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L18)
Run underline style (ECMA-376 §17.18.99 ST\_Underline, the subset Ream renders).
# VerticalAlign
> **VerticalAlign** = `"baseline"` | `"superscript"` | `"subscript"`
Defined in: [src/core/document-model/types.ts:30](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L30)
Run vertical alignment (`w:vertAlign`): baseline or super/subscript.
# index
The public API for Ream.
The package reads Word, Excel, PowerPoint and PDF — including the legacy `.doc` / `.xls` / `.ppt` — and converts any of them to PDF, SVG, HTML, DOCX or XLSX, implemented from the ECMA-376 and ISO 32000 specifications without wrapping LibreOffice, headless Office, or any commercial SDK.
Typical use:
```ts
1
import { Ream } from 'reamkit';
2
const doc = Ream.parse(bytes); // format sniffed
3
const pdf = await doc.convert('pdf'); // one parse, any target
```
Advanced consumers can build custom pipelines from the reader/writer interfaces, drive the layout engine directly via [renderStyledPdf](/api/index/functions/renderstyledpdf/), supply a hyphenator, or import the typed document model from the `reamkit/document-model` subpath.
## Classes
[Section titled “Classes”](#classes)
* [ConversionLossError](/api/index/classes/conversionlosserror/)
* [FontRegistry](/api/index/classes/fontregistry/)
* [Ream](/api/index/classes/ream/)
* [ResourceStore](/api/index/classes/resourcestore/)
## Interfaces
[Section titled “Interfaces”](#interfaces)
* [BorderItem](/api/index/interfaces/borderitem/)
* [Converter](/api/index/interfaces/converter/)
* [ConvertOptions](/api/index/interfaces/convertoptions/)
* [ConvertResult](/api/index/interfaces/convertresult/)
* [CreateConverterOptions](/api/index/interfaces/createconverteroptions/)
* [DocumentInfo](/api/index/interfaces/documentinfo/)
* [DocumentReader](/api/index/interfaces/documentreader/)
* [DocumentWriter](/api/index/interfaces/documentwriter/)
* [FetchFontSetOptions](/api/index/interfaces/fetchfontsetoptions/)
* [FillItem](/api/index/interfaces/fillitem/)
* [FlowDoc](/api/index/interfaces/flowdoc/)
* [FontBytesByVariant](/api/index/interfaces/fontbytesbyvariant/)
* [FontProvider](/api/index/interfaces/fontprovider/)
* [FontRequest](/api/index/interfaces/fontrequest/)
* [Hyphenator](/api/index/interfaces/hyphenator/)
* [HyphenatorOptions](/api/index/interfaces/hyphenatoroptions/)
* [ImageItem](/api/index/interfaces/imageitem/)
* [LaidOutDocument](/api/index/interfaces/laidoutdocument/)
* [LaidOutPage](/api/index/interfaces/laidoutpage/)
* [Loss](/api/index/interfaces/loss/)
* [NativeBag](/api/index/interfaces/nativebag/)
* [PageItemBase](/api/index/interfaces/pageitembase/)
* [ParsedTtf](/api/index/interfaces/parsedttf/)
* [PdfEncryptOptions](/api/index/interfaces/pdfencryptoptions/)
* [PdfPermissions](/api/index/interfaces/pdfpermissions/)
* [ReadOptions](/api/index/interfaces/readoptions/)
* [ReadResult](/api/index/interfaces/readresult/)
* [ReamConvertOptions](/api/index/interfaces/reamconvertoptions/)
* [ReamParseOptions](/api/index/interfaces/reamparseoptions/)
* [ShapeItem](/api/index/interfaces/shapeitem/)
* [SignatureOptions](/api/index/interfaces/signatureoptions/)
* [SignaturePlaceholder](/api/index/interfaces/signatureplaceholder/)
* [SignerCredentials](/api/index/interfaces/signercredentials/)
* [StyledRenderOptions](/api/index/interfaces/styledrenderoptions/)
* [SvgWriteOptions](/api/index/interfaces/svgwriteoptions/)
* [TextLineItem](/api/index/interfaces/textlineitem/)
* [WriteOptions](/api/index/interfaces/writeoptions/)
* [WriteResult](/api/index/interfaces/writeresult/)
## Type Aliases
[Section titled “Type Aliases”](#type-aliases)
* [FamilyKey](/api/index/type-aliases/familykey/)
* [Feature](/api/index/type-aliases/feature/)
* [FetchLike](/api/index/type-aliases/fetchlike/)
* [FontAnswer](/api/index/type-aliases/fontanswer/)
* [FontVariant](/api/index/type-aliases/fontvariant/)
* [KnownFeature](/api/index/type-aliases/knownfeature/)
* [LossReport](/api/index/type-aliases/lossreport/)
* [LossSeverity](/api/index/type-aliases/lossseverity/)
* [PageItem](/api/index/type-aliases/pageitem/)
* [Pt](/api/index/type-aliases/pt/)
* [ReamTarget](/api/index/type-aliases/reamtarget/)
* [ResourceId](/api/index/type-aliases/resourceid/)
* [SupportedLanguage](/api/index/type-aliases/supportedlanguage/)
## Variables
[Section titled “Variables”](#variables)
* [docxReader](/api/index/variables/docxreader/)
* [docxWriter](/api/index/variables/docxwriter/)
* [FEATURES](/api/index/variables/features/)
* [htmlWriter](/api/index/variables/htmlwriter/)
* [NO\_FONT](/api/index/variables/no_font/)
* [svgWriter](/api/index/variables/svgwriter/)
* [xlsxReader](/api/index/variables/xlsxreader/)
## Functions
[Section titled “Functions”](#functions)
* [callerFontProvider](/api/index/functions/callerfontprovider/)
* [chainProviders](/api/index/functions/chainproviders/)
* [createConverter](/api/index/functions/createconverter/)
* [createHyphenator](/api/index/functions/createhyphenator/)
* [createLanguageHyphenator](/api/index/functions/createlanguagehyphenator/)
* [eighthPtToPt](/api/index/functions/eighthpttopt/)
* [embeddedDocFontProvider](/api/index/functions/embeddeddocfontprovider/)
* [emuToPt](/api/index/functions/emutopt/)
* [fetchFontSet](/api/index/functions/fetchfontset/)
* [formatLoss](/api/index/functions/formatloss/)
* [getHyphenator](/api/index/functions/gethyphenator/)
* [halfPtToPt](/api/index/functions/halfpttopt/)
* [inchToPt](/api/index/functions/inchtopt/)
* [isEmbeddingRestricted](/api/index/functions/isembeddingrestricted/)
* [layoutStyledDocument](/api/index/functions/layoutstyleddocument/)
* [localFontProvider](/api/index/functions/localfontprovider/)
* [mmToPt](/api/index/functions/mmtopt/)
* [parseTtf](/api/index/functions/parsettf/)
* [pt](/api/index/functions/pt/)
* [pxToPt](/api/index/functions/pxtopt/)
* [readDocx](/api/index/functions/readdocx/)
* [readOs2FsType](/api/index/functions/reados2fstype/)
* [readXlsx](/api/index/functions/readxlsx/)
* [remoteFontProvider](/api/index/functions/remotefontprovider/)
* [renderStyledPdf](/api/index/functions/renderstyledpdf/)
* [resolveFamilyKey](/api/index/functions/resolvefamilykey/)
* [signPdf](/api/index/functions/signpdf/)
* [splitPatternBundle](/api/index/functions/splitpatternbundle/)
* [subsetTtf](/api/index/functions/subsetttf/)
* [twipsToPt](/api/index/functions/twipstopt/)
* [writeDocx](/api/index/functions/writedocx/)
* [writeHtml](/api/index/functions/writehtml/)
* [writeSvg](/api/index/functions/writesvg/)
# ConversionLossError
Defined in: [src/core/ir/loss.ts:46](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L46)
Thrown by strict-mode conversions on the first recorded loss.
## Extends
[Section titled “Extends”](#extends)
* `Error`
## Constructors
[Section titled “Constructors”](#constructors)
### Constructor
[Section titled “Constructor”](#constructor)
> **new ConversionLossError**(`loss`): `ConversionLossError`
Defined in: [src/core/ir/loss.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L48)
#### Parameters
[Section titled “Parameters”](#parameters)
##### loss
[Section titled “loss”](#loss)
[`Loss`](/api/index/interfaces/loss/)
The first loss that tripped strict mode (retained on the error).
#### Returns
[Section titled “Returns”](#returns)
`ConversionLossError`
#### Overrides
[Section titled “Overrides”](#overrides)
`Error.constructor`
## Properties
[Section titled “Properties”](#properties)
### cause?
[Section titled “cause?”](#cause)
> `optional` **cause?**: `unknown`
Defined in: docs/node\_modules/typescript/lib/lib.es2022.error.d.ts:24
#### Inherited from
[Section titled “Inherited from”](#inherited-from)
`Error.cause`
***
### loss
[Section titled “loss”](#loss-1)
> `readonly` **loss**: [`Loss`](/api/index/interfaces/loss/)
Defined in: [src/core/ir/loss.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L48)
The first loss that tripped strict mode (retained on the error).
***
### message
[Section titled “message”](#message)
> **message**: `string`
Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1075
#### Inherited from
[Section titled “Inherited from”](#inherited-from-1)
`Error.message`
***
### name
[Section titled “name”](#name)
> **name**: `string`
Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1074
#### Inherited from
[Section titled “Inherited from”](#inherited-from-2)
`Error.name`
***
### stack?
[Section titled “stack?”](#stack)
> `optional` **stack?**: `string`
Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
#### Inherited from
[Section titled “Inherited from”](#inherited-from-3)
`Error.stack`
# FontRegistry
Defined in: [src/core/font/font-registry.ts:54](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L54)
A registry of parsed font variants. The renderer resolves a `(bold, italic)` request to the closest available face via pickVariant, degrading through `bold → italic → regular` when an exact match is missing.
## Methods
[Section titled “Methods”](#methods)
### entries()
[Section titled “entries()”](#entries)
> **entries**(): `IterableIterator`<\[[`FontVariant`](/api/index/type-aliases/fontvariant/), [`ParsedTtf`](/api/index/interfaces/parsedttf/)]>
Defined in: [src/core/font/font-registry.ts:88](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L88)
Iterate the `[variant, parsed font]` pairs the registry holds.
#### Returns
[Section titled “Returns”](#returns)
`IterableIterator`<\[[`FontVariant`](/api/index/type-aliases/fontvariant/), [`ParsedTtf`](/api/index/interfaces/parsedttf/)]>
***
### hasVariant()
[Section titled “hasVariant()”](#hasvariant)
> **hasVariant**(`v`): `boolean`
Defined in: [src/core/font/font-registry.ts:93](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L93)
Whether a given variant is present.
#### Parameters
[Section titled “Parameters”](#parameters)
##### v
[Section titled “v”](#v)
[`FontVariant`](/api/index/type-aliases/fontvariant/)
#### Returns
[Section titled “Returns”](#returns-1)
`boolean`
***
### resolveByStyle()
[Section titled “resolveByStyle()”](#resolvebystyle)
> **resolveByStyle**(`bold`, `italic`): `object`
Defined in: [src/core/font/font-registry.ts:80](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L80)
Resolve a style request to the closest available face.
#### Parameters
[Section titled “Parameters”](#parameters-1)
##### bold
[Section titled “bold”](#bold)
`boolean`
Whether bold was requested.
##### italic
[Section titled “italic”](#italic)
`boolean`
Whether italic was requested.
#### Returns
[Section titled “Returns”](#returns-2)
`object`
The chosen variant and its parsed font.
##### parsed
[Section titled “parsed”](#parsed)
> **parsed**: [`ParsedTtf`](/api/index/interfaces/parsedttf/)
##### variant
[Section titled “variant”](#variant)
> **variant**: [`FontVariant`](/api/index/type-aliases/fontvariant/)
#### Throws
[Section titled “Throws”](#throws)
Error when the registry has no usable (regular) font.
***
### fromBytes()
[Section titled “fromBytes()”](#frombytes)
> `static` **fromBytes**(`input`): `FontRegistry`
Defined in: [src/core/font/font-registry.ts:63](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L63)
Parse a set of font bytes into a registry.
#### Parameters
[Section titled “Parameters”](#parameters-2)
##### input
[Section titled “input”](#input)
[`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/)
The bytes per variant (`regular` required).
#### Returns
[Section titled “Returns”](#returns-3)
`FontRegistry`
A registry holding the parsed faces.
# Ream
Defined in: [src/core/converter/ream.ts:122](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L122)
The object face of the library: parse a document once into the format-neutral [FlowDoc](/api/index/interfaces/flowdoc/) interlayer, then convert it to any number of targets without re-reading the source.
```ts
1
const doc = Ream.parse(bytes); // sniff → reader → FlowDoc
2
const pdf = await doc.convert('pdf', { fonts });
3
const svg = await doc.convert('svg', { fonts });
```
It is a thin GRASP Controller: readers parse, `flowRenderOptions` projects the FlowDoc, and layout/emit plus the writers do the work. As a deliberate composition root, importing it pulls in every format module — prefer the per-format functions when bundle size matters more than convenience. The source bytes are retained only for the two source-touching features: docx substitute-font auto-detection and PDF/A-3 `embedSource`.
## Properties
[Section titled “Properties”](#properties)
### flow
[Section titled “flow”](#flow)
> `readonly` **flow**: [`FlowDoc`](/api/index/interfaces/flowdoc/)
Defined in: [src/core/converter/ream.ts:133](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L133)
The interlayer — the parsed, format-neutral document tree.
***
### losses
[Section titled “losses”](#losses)
> `readonly` **losses**: readonly [`Loss`](/api/index/interfaces/loss/)\[]
Defined in: [src/core/converter/ream.ts:135](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L135)
Losses recorded while reading the source.
***
### sheet
[Section titled “sheet”](#sheet)
> `readonly` **sheet**: `SheetDoc` | `undefined`
Defined in: [src/core/converter/ream.ts:134](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L134)
The native SpreadsheetML tree when the source is a spreadsheet (xlsx); [Ream.flow](/api/index/classes/ream/#flow) is its projection through the print model.
## Accessors
[Section titled “Accessors”](#accessors)
### format
[Section titled “format”](#format)
#### Get Signature
[Section titled “Get Signature”](#get-signature)
> **get** **format**(): `string`
Defined in: [src/core/converter/ream.ts:165](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L165)
The source format id (`'docx'`, `'xlsx'`, …).
##### Returns
[Section titled “Returns”](#returns)
`string`
## Methods
[Section titled “Methods”](#methods)
### convert()
[Section titled “convert()”](#convert)
> **convert**(`to`, `options?`): `Promise`<`Uint8Array`<`ArrayBufferLike`>>
Defined in: [src/core/converter/ream.ts:177](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L177)
Convert the parsed document to `to` and return just the output bytes. A thin wrapper over [Ream.convertWithReport](/api/index/classes/ream/#convertwithreport) that drops the loss report.
#### Parameters
[Section titled “Parameters”](#parameters)
##### to
[Section titled “to”](#to)
[`ReamTarget`](/api/index/type-aliases/reamtarget/)
The target format.
##### options?
[Section titled “options?”](#options)
[`ReamConvertOptions`](/api/index/interfaces/reamconvertoptions/) = `{}`
Font resolution and target-specific options.
#### Returns
[Section titled “Returns”](#returns-1)
`Promise`<`Uint8Array`<`ArrayBufferLike`>>
The encoded output bytes.
***
### convertWithReport()
[Section titled “convertWithReport()”](#convertwithreport)
> **convertWithReport**(`to`, `options?`): `Promise`<[`ConvertResult`](/api/index/interfaces/convertresult/)>
Defined in: [src/core/converter/ream.ts:194](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L194)
Convert the parsed document to `to`, returning the output bytes together with the accumulated [Loss](/api/index/interfaces/loss/) report (read-time losses plus any added while writing). HTML, DOCX and XLSX are produced straight from the interlayer — no layout, no fonts, zero I/O; SVG and PDF run the layout engine and resolve fonts first.
#### Parameters
[Section titled “Parameters”](#parameters-1)
##### to
[Section titled “to”](#to-1)
[`ReamTarget`](/api/index/type-aliases/reamtarget/)
The target format. `'xlsx'` requires a spreadsheet source.
##### options?
[Section titled “options?”](#options-1)
[`ReamConvertOptions`](/api/index/interfaces/reamconvertoptions/) = `{}`
Font resolution and target-specific options.
#### Returns
[Section titled “Returns”](#returns-2)
`Promise`<[`ConvertResult`](/api/index/interfaces/convertresult/)>
The encoded bytes and the loss report.
#### Throws
[Section titled “Throws”](#throws)
Error when `to` is `'xlsx'` but the source has no grid.
#### Throws
[Section titled “Throws”](#throws-1)
ConversionLossError when `options.strict` is set and any loss was recorded.
***
### parse()
[Section titled “parse()”](#parse)
> `static` **parse**(`bytes`, `options?`): `Ream`
Defined in: [src/core/converter/ream.ts:149](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L149)
Sniff the format and parse the bytes once into the [FlowDoc](/api/index/interfaces/flowdoc/) interlayer.
#### Parameters
[Section titled “Parameters”](#parameters-2)
##### bytes
[Section titled “bytes”](#bytes)
`Uint8Array`
The raw document bytes; the format is detected by sniffing.
##### options?
[Section titled “options?”](#options-2)
[`ReamParseOptions`](/api/index/interfaces/reamparseoptions/) = `{}`
Optional reader-registry override and/or password for an encrypted source.
#### Returns
[Section titled “Returns”](#returns-3)
`Ream`
A reusable [Ream](/api/index/classes/ream/) instance.
#### Throws
[Section titled “Throws”](#throws-2)
Error when no registered reader recognizes the bytes.
# ResourceStore
Defined in: [src/core/ir/resources.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L48)
A content-addressed store for the IR’s binary payloads (images, fonts). IR trees stay pure JSON and reference bytes by [ResourceId](/api/index/type-aliases/resourceid/); ids derive from the bytes (a synchronous 64-bit FNV-1a), so identical payloads deduplicate for free and equal documents get equal ids — which keeps IR-level diffs and the byte-identical gates meaningful.
## Constructors
[Section titled “Constructors”](#constructors)
### Constructor
[Section titled “Constructor”](#constructor)
> **new ResourceStore**(): `ResourceStore`
#### Returns
[Section titled “Returns”](#returns)
`ResourceStore`
## Accessors
[Section titled “Accessors”](#accessors)
### size
[Section titled “size”](#size)
#### Get Signature
[Section titled “Get Signature”](#get-signature)
> **get** **size**(): `number`
Defined in: [src/core/ir/resources.ts:85](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L85)
The number of distinct resources stored.
##### Returns
[Section titled “Returns”](#returns-1)
`number`
## Methods
[Section titled “Methods”](#methods)
### get()
[Section titled “get()”](#get)
> **get**(`id`): `Uint8Array`<`ArrayBufferLike`> | `undefined`
Defined in: [src/core/ir/resources.ts:70](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L70)
Look up the bytes for an id, or `undefined` when absent.
#### Parameters
[Section titled “Parameters”](#parameters)
##### id
[Section titled “id”](#id)
[`ResourceId`](/api/index/type-aliases/resourceid/)
#### Returns
[Section titled “Returns”](#returns-2)
`Uint8Array`<`ArrayBufferLike`> | `undefined`
***
### has()
[Section titled “has()”](#has)
> **has**(`id`): `boolean`
Defined in: [src/core/ir/resources.ts:75](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L75)
Whether an id is present in the store.
#### Parameters
[Section titled “Parameters”](#parameters-1)
##### id
[Section titled “id”](#id-1)
[`ResourceId`](/api/index/type-aliases/resourceid/)
#### Returns
[Section titled “Returns”](#returns-3)
`boolean`
***
### ids()
[Section titled “ids()”](#ids)
> **ids**(): readonly [`ResourceId`](/api/index/type-aliases/resourceid/)\[]
Defined in: [src/core/ir/resources.ts:80](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L80)
All stored ids, in insertion order.
#### Returns
[Section titled “Returns”](#returns-4)
readonly [`ResourceId`](/api/index/type-aliases/resourceid/)\[]
***
### put()
[Section titled “put()”](#put)
> **put**(`bytes`): [`ResourceId`](/api/index/type-aliases/resourceid/)
Defined in: [src/core/ir/resources.ts:56](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L56)
Store bytes and return their content-addressed id. Re-putting identical bytes returns the existing id (deduplication); a hash collision with different bytes probes deterministic `~n` suffixes.
#### Parameters
[Section titled “Parameters”](#parameters-2)
##### bytes
[Section titled “bytes”](#bytes)
`Uint8Array`
#### Returns
[Section titled “Returns”](#returns-5)
[`ResourceId`](/api/index/type-aliases/resourceid/)
# callerFontProvider
> **callerFontProvider**(`fonts`): [`FontProvider`](/api/index/interfaces/fontprovider/)
Defined in: [src/core/fonts/provider.ts:76](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L76)
Caller-supplied bytes — answers every family (the caller chose these fonts deliberately). Falls back through bold/italic → regular like the registry.
## Parameters
[Section titled “Parameters”](#parameters)
### fonts
[Section titled “fonts”](#fonts)
[`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/)
## Returns
[Section titled “Returns”](#returns)
[`FontProvider`](/api/index/interfaces/fontprovider/)
# chainProviders
> **chainProviders**(`providers`): [`FontProvider`](/api/index/interfaces/fontprovider/)
Defined in: [src/core/fonts/provider.ts:52](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L52)
First byte-level answer wins; ‘none’ falls through to the next provider.
## Parameters
[Section titled “Parameters”](#parameters)
### providers
[Section titled “providers”](#providers)
readonly [`FontProvider`](/api/index/interfaces/fontprovider/)\[]
## Returns
[Section titled “Returns”](#returns)
[`FontProvider`](/api/index/interfaces/fontprovider/)
# createConverter
> **createConverter**(`opts?`): [`Converter`](/api/index/interfaces/converter/)
Defined in: [src/core/converter/facade.ts:140](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L140)
Build a [Converter](/api/index/interfaces/converter/) over a reader registry. The async boundary (font fetching) lives here; readers and writers stay synchronous.
## Parameters
[Section titled “Parameters”](#parameters)
### opts?
[Section titled “opts?”](#opts)
[`CreateConverterOptions`](/api/index/interfaces/createconverteroptions/) = `{}`
Optional reader-registry override.
## Returns
[Section titled “Returns”](#returns)
[`Converter`](/api/index/interfaces/converter/)
A converter exposing `readers`, `detect` and `convert`.
# createHyphenator
> **createHyphenator**(`patterns`, `options?`): [`Hyphenator`](/api/index/interfaces/hyphenator/)
Defined in: [src/core/hyphenation/liang.ts:89](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L89)
Build a Liang pattern-based [Hyphenator](/api/index/interfaces/hyphenator/) from a pattern list.
## Parameters
[Section titled “Parameters”](#parameters)
### patterns
[Section titled “patterns”](#patterns)
readonly `string`\[]
The TeX-style hyphenation patterns (e.g. `"hy3ph"`).
### options?
[Section titled “options?”](#options)
[`HyphenatorOptions`](/api/index/interfaces/hyphenatoroptions/) = `{}`
Left/right minimums and explicit exceptions.
## Returns
[Section titled “Returns”](#returns)
[`Hyphenator`](/api/index/interfaces/hyphenator/)
The hyphenator.
# createLanguageHyphenator
> **createLanguageHyphenator**(`language`, `bundle`): [`Hyphenator`](/api/index/interfaces/hyphenator/)
Defined in: [src/core/hyphenation/index.ts:71](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/index.ts#L71)
Synchronous variant of [getHyphenator](/api/index/functions/gethyphenator/): build a [Hyphenator](/api/index/interfaces/hyphenator/) from already-loaded pattern strings (useful when patterns are bundled or fetched out-of-band).
## Parameters
[Section titled “Parameters”](#parameters)
### language
[Section titled “language”](#language)
[`SupportedLanguage`](/api/index/type-aliases/supportedlanguage/)
The language (selects the left/right minimums).
### bundle
[Section titled “bundle”](#bundle)
The pattern and optional exception strings.
#### exceptions?
[Section titled “exceptions?”](#exceptions)
`string`
#### patterns
[Section titled “patterns”](#patterns)
`string`
## Returns
[Section titled “Returns”](#returns)
[`Hyphenator`](/api/index/interfaces/hyphenator/)
The hyphenator.
# eighthPtToPt
> **eighthPtToPt**(`eighthPt`): [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/ir/units.ts:45](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L45)
Eighths of a point (OOXML border widths, `w:sz` on borders): 8 = 1 pt.
## Parameters
[Section titled “Parameters”](#parameters)
### eighthPt
[Section titled “eighthPt”](#eighthpt)
`number`
## Returns
[Section titled “Returns”](#returns)
[`Pt`](/api/index/type-aliases/pt/)
# embeddedDocFontProvider
> **embeddedDocFontProvider**(`embedded`): [`FontProvider`](/api/index/interfaces/fontprovider/)
Defined in: [src/core/fonts/provider.ts:97](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L97)
Fonts embedded in the source document itself (docx fontTable), keyed by the normalized family name — an exact-name match, never a substitution.
## Parameters
[Section titled “Parameters”](#parameters)
### embedded
[Section titled “embedded”](#embedded)
`ReadonlyMap`<`string`, [`FontRegistry`](/api/index/classes/fontregistry/)>
## Returns
[Section titled “Returns”](#returns)
[`FontProvider`](/api/index/interfaces/fontprovider/)
# emuToPt
> **emuToPt**(`emu`): [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/ir/units.ts:50](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L50)
English Metric Units (DrawingML): 914400 EMU = 1 inch = 72 pt → 12700 EMU = 1 pt.
## Parameters
[Section titled “Parameters”](#parameters)
### emu
[Section titled “emu”](#emu)
`number`
## Returns
[Section titled “Returns”](#returns)
[`Pt`](/api/index/type-aliases/pt/)
# fetchFontSet
> **fetchFontSet**(`options?`): `Promise`<[`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/)>
Defined in: [src/core/fonts/remote-fonts.ts:175](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/remote-fonts.ts#L175)
Download a full variant set (regular required; bold/italic/bold-italic best-effort) for the open family that best matches the requested name.
## Parameters
[Section titled “Parameters”](#parameters)
### options?
[Section titled “options?”](#options)
[`FetchFontSetOptions`](/api/index/interfaces/fetchfontsetoptions/) = `{}`
The family to substitute and an optional fetch override.
## Returns
[Section titled “Returns”](#returns)
`Promise`<[`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/)>
The downloaded font bytes per variant.
## Throws
[Section titled “Throws”](#throws)
Error when the required regular face cannot be downloaded.
# formatLoss
> **formatLoss**(`loss`): `string`
Defined in: [src/core/ir/loss.ts:40](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L40)
Format a [Loss](/api/index/interfaces/loss/) as one human-readable line, e.g. `[degraded] charts at sheet "Q3": gradient flattened`.
## Parameters
[Section titled “Parameters”](#parameters)
### loss
[Section titled “loss”](#loss)
[`Loss`](/api/index/interfaces/loss/)
The loss to format.
## Returns
[Section titled “Returns”](#returns)
`string`
The one-line description.
# getHyphenator
> **getHyphenator**(`language`): `Promise`<[`Hyphenator`](/api/index/interfaces/hyphenator/)>
Defined in: [src/core/hyphenation/index.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/index.ts#L48)
Lazily build (and cache) a language’s [Hyphenator](/api/index/interfaces/hyphenator/). The patterns module is dynamically imported the first time a language is requested, so callers that never hyphenate pay no cold-start cost.
## Parameters
[Section titled “Parameters”](#parameters)
### language
[Section titled “language”](#language)
[`SupportedLanguage`](/api/index/type-aliases/supportedlanguage/)
The language to load.
## Returns
[Section titled “Returns”](#returns)
`Promise`<[`Hyphenator`](/api/index/interfaces/hyphenator/)>
The cached hyphenator.
# halfPtToPt
> **halfPtToPt**(`halfPt`): [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/ir/units.ts:40](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L40)
Half-points (OOXML font sizes, `w:sz`): 2 half-points = 1 pt.
## Parameters
[Section titled “Parameters”](#parameters)
### halfPt
[Section titled “halfPt”](#halfpt)
`number`
## Returns
[Section titled “Returns”](#returns)
[`Pt`](/api/index/type-aliases/pt/)
# inchToPt
> **inchToPt**(`inches`): [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/ir/units.ts:60](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L60)
Inches: 1 inch = 72 pt.
## Parameters
[Section titled “Parameters”](#parameters)
### inches
[Section titled “inches”](#inches)
`number`
## Returns
[Section titled “Returns”](#returns)
[`Pt`](/api/index/type-aliases/pt/)
# isEmbeddingRestricted
> **isEmbeddingRestricted**(`fsType`): `boolean`
Defined in: [src/core/fonts/provider.ts:180](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L180)
True when the fsType licensing nibble forbids embedding entirely.
## Parameters
[Section titled “Parameters”](#parameters)
### fsType
[Section titled “fsType”](#fstype)
`number` | `undefined`
## Returns
[Section titled “Returns”](#returns)
`boolean`
# layoutStyledDocument
> **layoutStyledDocument**(`body`, `options`): `LaidOutPdfDocument`
Defined in: [src/layout/styled-layout.ts:821](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L821)
Layout phase (the FlowDoc→PageDoc transform of ir-design §7): body → positioned pages (PageItems), font/image resources, logical structure. Drives the whole pass — numbering and note numbering, per-section geometry, per-block layout, the footnote/endnote/comment tails, then pagination — and returns the LaidOutPdfDocument (the PageDoc plus its PDF companion).
## Parameters
[Section titled “Parameters”](#parameters)
### body
[Section titled “body”](#body)
readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]
The document body the section model partitions.
### options
[Section titled “options”](#options)
[`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/)
The resolved fonts, styles, section model, and PDF-output toggles.
## Returns
[Section titled “Returns”](#returns)
`LaidOutPdfDocument`
The positioned pages plus the PDF-only PdfLayoutAux companion.
# localFontProvider
> **localFontProvider**(): [`FontProvider`](/api/index/interfaces/fontprovider/)
Defined in: [src/core/fonts/provider.ts:193](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L193)
System fonts via the Local Font Access API (Chromium 103+, permission prompt). OPT-IN by design: never wired in implicitly. Returns ‘none’ when the API is unavailable (Node, Safari, Firefox), the family is not installed, or the face’s OS/2 fsType marks embedding as restricted — embedding a restricted font into a PDF would violate its license, so the chain falls through to a substitute instead.
## Returns
[Section titled “Returns”](#returns)
[`FontProvider`](/api/index/interfaces/fontprovider/)
# mmToPt
> **mmToPt**(`mm`): [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/ir/units.ts:65](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L65)
Millimetres: 25.4 mm = 1 inch = 72 pt.
## Parameters
[Section titled “Parameters”](#parameters)
### mm
[Section titled “mm”](#mm)
`number`
## Returns
[Section titled “Returns”](#returns)
[`Pt`](/api/index/type-aliases/pt/)
# parseTtf
> **parseTtf**(`raw`): [`ParsedTtf`](/api/index/interfaces/parsedttf/)
Defined in: [src/core/font/ttf-parser.ts:100](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L100)
Parse TrueType / OpenType font bytes into a [ParsedTtf](/api/index/interfaces/parsedttf/).
## Parameters
[Section titled “Parameters”](#parameters)
### raw
[Section titled “raw”](#raw)
`Uint8Array`
The font bytes (sfnt: TrueType `0x00010000` or OpenType-CFF `OTTO`).
## Returns
[Section titled “Returns”](#returns)
[`ParsedTtf`](/api/index/interfaces/parsedttf/)
The parsed metrics, mappings and layout tables.
## Throws
[Section titled “Throws”](#throws)
Error when the bytes are not a TrueType or OpenType font.
# pt
> **pt**(`value`): [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/ir/units.ts:22](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L22)
Brand a raw number as points. The number must already BE points.
## Parameters
[Section titled “Parameters”](#parameters)
### value
[Section titled “value”](#value)
`number`
## Returns
[Section titled “Returns”](#returns)
[`Pt`](/api/index/type-aliases/pt/)
# pxToPt
> **pxToPt**(`px`): [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/ir/units.ts:55](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L55)
CSS reference pixels: 96 px = 1 inch = 72 pt.
## Parameters
[Section titled “Parameters”](#parameters)
### px
[Section titled “px”](#px)
`number`
## Returns
[Section titled “Returns”](#returns)
[`Pt`](/api/index/type-aliases/pt/)
# readDocx
> **readDocx**(`docx`): [`ReadResult`](/api/index/interfaces/readresult/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)>
Defined in: [src/word/docx-reader.ts:82](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-reader.ts#L82)
Read a `.docx` package into the [FlowDoc](/api/index/interfaces/flowdoc/) interlayer (ir-design §7): the document-derived half of what the converter used to do inline. Parses the main document, styles, numbering, notes, comments, headers/footers, charts, embedded fonts and core properties, runs the body through the stage-6 FlowDoc transforms (list markers then the style cascade), and returns the tree plus any graceful-degradation losses. Caller-supplied conversion options (fonts, PDF/A, signature) stay with the converter/facade.
## Parameters
[Section titled “Parameters”](#parameters)
### docx
[Section titled “docx”](#docx)
`Uint8Array`
The raw `.docx` (OPC ZIP) bytes.
## Returns
[Section titled “Returns”](#returns)
[`ReadResult`](/api/index/interfaces/readresult/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)>
The parsed [FlowDoc](/api/index/interfaces/flowdoc/) and the losses recorded while reading.
# readOs2FsType
> **readOs2FsType**(`bytes`): `number` | `undefined`
Defined in: [src/core/fonts/provider.ts:162](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L162)
OS/2 fsType embedding permissions (OpenType §OS/2). Returns undefined when the table is absent/corrupt. The licensing nibble: 0 = installable, 2 = RESTRICTED (no embedding), 4 = preview & print, 8 = editable.
## Parameters
[Section titled “Parameters”](#parameters)
### bytes
[Section titled “bytes”](#bytes)
`Uint8Array`
## Returns
[Section titled “Returns”](#returns)
`number` | `undefined`
# readXlsx
> **readXlsx**(`xlsx`, `options?`): [`ReadResult`](/api/index/interfaces/readresult/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)>
Defined in: [src/excel/xlsx-reader.ts:100](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/excel/xlsx-reader.ts#L100)
Read a `.xlsx` and project it to a [FlowDoc](/api/index/interfaces/flowdoc/) in one step: readXlsxToSheetDoc then projectSheetDoc. The xlsx reader records no read-time losses.
## Parameters
[Section titled “Parameters”](#parameters)
### xlsx
[Section titled “xlsx”](#xlsx)
`Uint8Array`
The `.xlsx` (OPC ZIP) bytes.
### options?
[Section titled “options?”](#options)
`ProjectSheetOptions` = `{}`
Projection knobs (the W9 reference date).
## Returns
[Section titled “Returns”](#returns)
[`ReadResult`](/api/index/interfaces/readresult/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)>
The flow document plus an (empty) loss list.
# remoteFontProvider
> **remoteFontProvider**(`options?`): [`FontProvider`](/api/index/interfaces/fontprovider/)
Defined in: [src/core/fonts/provider.ts:120](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L120)
Open CDN substitutes (Arimo / Tinos / Cousine / Carlito / Caladea — the LibreOffice metric-compatible mapping). Always answers; the chain reports it as a substitution.
## Parameters
[Section titled “Parameters”](#parameters)
### options?
[Section titled “options?”](#options)
#### fetch?
[Section titled “fetch?”](#fetch)
[`FetchLike`](/api/index/type-aliases/fetchlike/)
## Returns
[Section titled “Returns”](#returns)
[`FontProvider`](/api/index/interfaces/fontprovider/)
# renderStyledPdf
> **renderStyledPdf**(`body`, `options`): `Uint8Array`
Defined in: [src/pdf/styled-page-renderer.ts:19](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/styled-page-renderer.ts#L19)
Render a body to a PDF: lay it out, then emit it over a fresh PdfDocument. The byte-stable synchronous path.
## Parameters
[Section titled “Parameters”](#parameters)
### body
[Section titled “body”](#body)
readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]
### options
[Section titled “options”](#options)
[`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/)
## Returns
[Section titled “Returns”](#returns)
`Uint8Array`
## Throws
[Section titled “Throws”](#throws)
Error when `options.encrypt` is set — encryption requires the async renderStyledPdfEncrypted path (WebCrypto).
# resolveFamilyKey
> **resolveFamilyKey**(`name`): [`FamilyKey`](/api/index/type-aliases/familykey/)
Defined in: [src/core/fonts/remote-fonts.ts:101](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/remote-fonts.ts#L101)
Map a document-referenced font family to a curated open substitute: an exact metric twin when one is known (e.g. Calibri → Carlito), otherwise a serif/mono/sans style fallback.
## Parameters
[Section titled “Parameters”](#parameters)
### name
[Section titled “name”](#name)
`string` | `undefined`
The referenced family name (case-insensitive); empty ⇒ Arimo.
## Returns
[Section titled “Returns”](#returns)
[`FamilyKey`](/api/index/type-aliases/familykey/)
The chosen [FamilyKey](/api/index/type-aliases/familykey/).
# signPdf
> **signPdf**(`pdf`, `cred`): `Promise`<`Uint8Array`<`ArrayBufferLike`>>
Defined in: [src/pdf/signature.ts:173](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L173)
Sign a PDF that already carries a signature placeholder (from addSignaturePlaceholder). Computes the real `/ByteRange`, hashes the covered bytes (SHA-256), builds the detached PKCS#7/CMS, and writes it into the reserved `/Contents` hole — leaving every other byte untouched.
## Parameters
[Section titled “Parameters”](#parameters)
### pdf
[Section titled “pdf”](#pdf)
`Uint8Array`
The placeholder-bearing PDF bytes.
### cred
[Section titled “cred”](#cred)
[`SignerCredentials`](/api/index/interfaces/signercredentials/)
The signer’s certificate, key and algorithm.
## Returns
[Section titled “Returns”](#returns)
`Promise`<`Uint8Array`<`ArrayBufferLike`>>
A new byte array with the real ByteRange and signature spliced in.
## Throws
[Section titled “Throws”](#throws)
Error when no placeholder is found, it is malformed, WebCrypto is unavailable, or the signature exceeds the reserved `/Contents` size.
# splitPatternBundle
> **splitPatternBundle**(`bundle`): `string`\[]
Defined in: [src/core/hyphenation/liang.ts:156](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L156)
Split a TeX-style pattern bundle (a whitespace-separated string) into the pattern array [createHyphenator](/api/index/functions/createhyphenator/) expects.
## Parameters
[Section titled “Parameters”](#parameters)
### bundle
[Section titled “bundle”](#bundle)
`string`
The whitespace-separated patterns.
## Returns
[Section titled “Returns”](#returns)
`string`\[]
The pattern array (empty entries removed).
# subsetTtf
> **subsetTtf**(`parsed`, `usedGids`): `Uint8Array`
Defined in: [src/core/font/ttf-subset.ts:38](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-subset.ts#L38)
Subset a TrueType font to the glyphs in `usedGids` (plus their composite components and GID 0). All tables are kept intact so the CIDFontType2 `/CIDToGIDMap /Identity` contract holds; only `glyf`/`loca` are rebuilt, with unused glyphs zero-length.
## Parameters
[Section titled “Parameters”](#parameters)
### parsed
[Section titled “parsed”](#parsed)
[`ParsedTtf`](/api/index/interfaces/parsedttf/)
The parsed source font (must have `glyf` + `loca`).
### usedGids
[Section titled “usedGids”](#usedgids)
`Iterable`<`number`>
The glyph ids actually used.
## Returns
[Section titled “Returns”](#returns)
`Uint8Array`
The subset font bytes.
## Throws
[Section titled “Throws”](#throws)
Error when the font has no `glyf`/`loca` (e.g. a CFF/OTF font).
# twipsToPt
> **twipsToPt**(`twips`): [`Pt`](/api/index/type-aliases/pt/)
Defined in: [src/core/ir/units.ts:35](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L35)
## Parameters
[Section titled “Parameters”](#parameters)
### twips
[Section titled “twips”](#twips)
`number`
## Returns
[Section titled “Returns”](#returns)
[`Pt`](/api/index/type-aliases/pt/)
# writeDocx
> **writeDocx**(`flow`): [`WriteResult`](/api/index/interfaces/writeresult/)
Defined in: [src/word/docx-writer.ts:232](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-writer.ts#L232)
Serialize a [FlowDoc](/api/index/interfaces/flowdoc/) to a WordprocessingML package (E-DOCX) — the inverse of the docx reader. A flow medium with zero layout and zero I/O: the body’s resolved properties are written as direct (denormalized) formatting, so the round-trip is semantic, not byte-for-byte. Emits the main document plus numbering, footnotes/endnotes, comments (+ commentsExtended), per-section headers/footers, charts and media parts; anything not yet serialized is reported as a [Loss](/api/index/interfaces/loss/).
## Parameters
[Section titled “Parameters”](#parameters)
### flow
[Section titled “flow”](#flow)
[`FlowDoc`](/api/index/interfaces/flowdoc/)
The interlayer to write back.
## Returns
[Section titled “Returns”](#returns)
[`WriteResult`](/api/index/interfaces/writeresult/)
The encoded `.docx` bytes and the loss report.
# writeHtml
> **writeHtml**(`flow`): [`WriteResult`](/api/index/interfaces/writeresult/)
Defined in: [src/html/html-writer.ts:85](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/html/html-writer.ts#L85)
Render a [FlowDoc](/api/index/interfaces/flowdoc/) to a self-contained HTML document (ir-design §7).
A flow medium: no pagination, no layout engine and no fonts to embed, so this is a pure, zero-I/O transform. `flow.body` already carries FINAL effective properties (the Stage-6 contract), so values map straight to CSS; every read still routes through the cascade resolver over the empty sheet, a memoized identity on reader output. Charts and shapes emit as inline SVG; deliberately out of scope (reported as losses): inline math and headers/footers (no fixed pages to band them onto). Page-break hints map to CSS `break-before`.
## Parameters
[Section titled “Parameters”](#parameters)
### flow
[Section titled “flow”](#flow)
[`FlowDoc`](/api/index/interfaces/flowdoc/)
The format-neutral interlayer document tree.
## Returns
[Section titled “Returns”](#returns)
[`WriteResult`](/api/index/interfaces/writeresult/)
The encoded HTML bytes plus the recorded [Loss](/api/index/interfaces/loss/) list.
# writeSvg
> **writeSvg**(`laid`, `opts?`): [`WriteResult`](/api/index/interfaces/writeresult/)
Defined in: [src/svg/svg-writer.ts:43](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/svg/svg-writer.ts#L43)
Render a [LaidOutDocument](/api/index/interfaces/laidoutdocument/) to a single SVG preview (ir-design §7 / stage 6). Written purely against the PageDoc schema; knows nothing about OOXML or the PDF writer. PageItem coordinates are already top-left/y-down — SVG’s own frame — so they are emitted verbatim. Pages stack vertically in one `