New

docx-editor 1.x has shipped. Vue support, i18n, agents. Read the migration guide →

API Referencev1.0.2

@eigenpal/docx-editor-core/types/content

Document Content Model — barrel.

All content-bearing types: runs, hyperlinks, bookmarks, fields, images, shapes, tables, lists, paragraphs, headers/footers, footnotes/endnotes, and sections.

The types form a deeply interrelated tree (Paragraph ↔ Table ↔ ShapeTextBody) and are split across `./content/*.ts` by domain. This file re-exports them so existing imports from `@eigenpal/docx-editor-core/types/content` keep working unchanged.

Interfaces(67)

Block-level SDT (content control wrapping paragraphs/tables)

interface BlockSdt
MemberTypeSummary
content(Paragraph | Table)[]Block content inside the control
propertiesSdtPropertiesSDT properties
type'blockSdt'

Bookmark end marker (w:bookmarkEnd)

interface BookmarkEnd
MemberTypeSummary
idnumberBookmark ID
type'bookmarkEnd'

Bookmark start marker (w:bookmarkStart)

interface BookmarkStart
MemberTypeSummary
colFirst?numberColumn index for table bookmarks
colLast?number
idnumberBookmark ID
namestringBookmark name
type'bookmarkStart'

Line break

interface BreakContent
MemberTypeSummary
breakType?'page' | 'column' | 'textWrapping'Break type
clear?'none' | 'left' | 'right' | 'all'Clear type for text wrapping break
type'break'

Column definition

interface Column
MemberTypeSummary
space?numberSpace after column in twips
width?numberColumn width in twips
interface

Comment_2

A comment from `comments.xml` — the top-level entity for review comments and replies. `id` matches the inline `CommentRangeStart` / `CommentRangeEnd` markers that anchor it inside a paragraph; `parentId` threads replies under their parent; `done` reflects Word's "Resolve" state (`w15:done`).

interface Comment
MemberTypeSummary
authorstringAuthor name
contentParagraph[]Comment content (paragraphs)
date?stringDate
done?booleanWhether the comment is resolved/done
idnumberComment ID (matches commentRangeStart/End)
initials?stringAuthor initials
parentId?numberParent comment ID (for replies)

Comment range end marker in paragraph content

interface CommentRangeEnd
MemberTypeSummary
idnumber
type'commentRangeEnd'

Comment range start marker in paragraph content

interface CommentRangeStart
MemberTypeSummary
idnumber
type'commentRangeStart'

Complex field (w:fldChar begin/separate/end with w:instrText)

interface ComplexField
MemberTypeSummary
dirty?booleanField is dirty
fieldCodeRun[]Field code runs
fieldResultRun[]Display result runs
fieldTypeFieldTypeParsed field type
fldLock?booleanField is locked
instructionstringField instruction
type'complexField'

Deletion wrapper (w:del) — runs deleted by tracked changes

interface Deletion
MemberTypeSummary
content(Run | Hyperlink)[]Deleted content
infoTrackedChangeInfoTracked change metadata
type'deletion'

Document body (`w:body`) — the editable content of the document.

Contains the ordered block content (paragraphs and tables), the section layout chain derived from inline `sectPr` markers, the final `sectPr`, and any document-level comments. This is what most edit operations mutate; headers/footers/styles live elsewhere in the package.

interface DocumentBody
MemberTypeSummary
comments?Comment[]Comments from comments.xml
contentBlockContent[]All content (paragraphs, tables)
finalSectionProperties?SectionPropertiesFinal section properties (from body's sectPr)
sections?Section[]Sections (derived from sectPr in paragraphs and final sectPr)

Drawing/image reference

interface DrawingContent
MemberTypeSummary
imageImageImage data
type'drawing'

Endnote (w:endnote)

interface Endnote
MemberTypeSummary
content(Paragraph | Table)[]Content. Per ECMA-376 §17.11.4 endnotes can hold the same blocks as the body — paragraphs and tables. See note on `Footnote.content`.
idnumberEndnote ID
noteType?'normal' | 'separator' | 'continuationSeparator' | 'continuationNotice'Special endnote type
type'endnote'

Endnote properties

interface EndnoteProperties
MemberTypeSummary
numFmt?NumberFormat
numRestart?NoteNumberRestart
numStart?number
position?EndnotePosition

Field character (begin/separate/end)

interface FieldCharContent
MemberTypeSummary
charType'begin' | 'separate' | 'end'Field character type
dirty?booleanField is dirty (needs update)
fldLock?booleanField is locked
type'fieldChar'
interface FooterReference
MemberTypeSummary
rIdstring
typeHeaderFooterType

Footnote (w:footnote)

interface Footnote
MemberTypeSummary
content(Paragraph | Table)[]Content. Per ECMA-376 §17.11.10 footnotes can hold the same blocks as the body — paragraphs and tables. The parser previously only collected w:p children which silently dropped any w:tbl inside a footnote; widened to match HeaderFooter / TableCell shape so the body pipeline (toProseDoc → toFlowBlocks) can render them uniformly.
idnumberFootnote ID
noteType?'normal' | 'separator' | 'continuationSeparator' | 'continuationNotice'Special footnote type
type'footnote'

Footnote properties

interface FootnoteProperties
MemberTypeSummary
numFmt?NumberFormat
numRestart?NoteNumberRestart
numStart?number
position?FootnotePosition

Header or footer content

interface HeaderFooter
MemberTypeSummary
content(Paragraph | Table)[]Content (paragraphs, tables, etc.)
hdrFtrTypeHeaderFooterTypeHeader/footer type
type'header' | 'footer'

Header or footer reference

interface HeaderReference
MemberTypeSummary
rIdstring
typeHeaderFooterType
interface

Image_2

Embedded image (`w:drawing` with an inline or anchored picture). Carries the relationship-id pointer to the binary in `word/media/`, its resolved data URL (`src`), display dimensions, optional crop / transform / wrap behaviors, and anchor positioning for floating images.

See ECMA-376 §20.4 (DrawingML wordprocessingDrawing).

interface Image
MemberTypeSummary
allowOverlap?boolean`wp:anchor allowOverlap` — when true (default), anchored objects may overlap; when false, Word repositions them to avoid collisions. We don't currently reposition; we round-trip the flag so saving preserves the author's intent.
alt?stringAlt text for accessibility
crop?ImageCropSource-image crop (fractional, OOXML `a:srcRect`).
decorative?booleanWhether this is a decorative image
effects?{ brightness?: number; contrast?: number; saturation?: number; }Image effects
filename?stringOriginal filename
hlinkHref?stringHyperlink URL for clickable image
id?stringUnique ID
layoutInCell?boolean`wp:anchor layoutInCell` — when true (default), an anchored image inside a table cell is constrained to the cell. When false, the image escapes the cell into the page area. Round-tripped on save.
mimeType?stringImage MIME type
opacity?numberOpacity in [0, 1] (OOXML `a:alphaModFix amt`). Undefined = fully opaque.
originalSize?ImageSizeOriginal size before any transforms
outline?ShapeOutlineImage outline/border
padding?ImagePaddingPadding around image
position?ImagePositionPosition for floating images
rIdstringRelationship ID for the image data
sizeImageSizeImage size
src?stringResolved image data (base64 or blob URL)
title?stringTitle/description
transform?ImageTransformImage transformations
type'image'
wrapImageWrapWrap settings

Image crop, expressed as fractions of the source image to trim from each edge. OOXML's `<a:srcRect l="10000" t="0" r="5000" b="0"/>` uses units of 1/100000 (so 10000 → 0.1 → 10% trimmed from the left). We store the normalised fraction so both the renderer and the saver can read it directly without re-parsing units.

interface ImageCrop
MemberTypeSummary
bottom?number
left?number
right?number
top?number

Image padding/margins

interface ImagePadding
MemberTypeSummary
bottom?number
left?number
right?number
top?number

Position for floating images

interface ImagePosition
MemberTypeSummary
horizontal{ relativeTo: 'character' | 'column' | 'insideMargin' | 'leftMargin' | 'margin' | 'outsideMargin' | 'page' | 'rightMargin'; alignment?: 'left' | 'right' | 'center' | 'inside' | 'outside'; posOffset?: number; }Horizontal positioning
vertical{ relativeTo: 'insideMargin' | 'line' | 'margin' | 'outsideMargin' | 'page' | 'paragraph' | 'topMargin' | 'bottomMargin'; alignment?: 'top' | 'bottom' | 'center' | 'inside' | 'outside'; posOffset?: number; }Vertical positioning

Image size specification

interface ImageSize
MemberTypeSummary
heightnumberHeight in EMUs
widthnumberWidth in EMUs (English Metric Units)

Image transformation

interface ImageTransform
MemberTypeSummary
flipH?booleanFlip horizontal
flipV?booleanFlip vertical
rotation?numberRotation in degrees

Image wrap type for floating images

interface ImageWrap
MemberTypeSummary
distB?number
distL?number
distR?number
distT?numberDistance from text
typeWrapType
wrapText?'bothSides' | 'left' | 'right' | 'largest'Wrap text direction

Inline SDT (content control within a paragraph)

interface InlineSdt
MemberTypeSummary
content(Run | Hyperlink | SimpleField | ComplexField | InlineSdt | MathEquation)[]Inline content held inside the control. OOXML allows runs, hyperlinks, simple/complex fields, nested SDTs, and math at this level; the renderer must descend into all of them so docProps-bound fields and similar template content survive paged rendering.
propertiesSdtPropertiesSDT properties
type'inlineSdt'

Insertion wrapper (w:ins) — runs inserted by tracked changes

interface Insertion
MemberTypeSummary
content(Run | Hyperlink)[]Inserted content
infoTrackedChangeInfoTracked change metadata
type'insertion'

Field instruction text

interface InstrTextContent
MemberTypeSummary
textstringField instruction
type'instrText'

Math equation content (m:oMath or m:oMathPara)

interface MathEquation
MemberTypeSummary
display'inline' | 'block'Whether this is a block (oMathPara) or inline (oMath) equation
ommlXmlstringRaw OMML XML for round-trip preservation
plainText?stringPlain text representation for accessibility/fallback
type'mathEquation'

Move-from wrapper (w:moveFrom) — content moved away from this position

interface MoveFrom
MemberTypeSummary
content(Run | Hyperlink)[]Moved content
infoTrackedChangeInfoTracked change metadata
type'moveFrom'

Move-from range end marker (w:moveFromRangeEnd)

interface MoveFromRangeEnd
MemberTypeSummary
idnumber
type'moveFromRangeEnd'

Move-from range start marker (w:moveFromRangeStart) — ECMA-376 §17.13.5.22 Pairs with moveFromRangeEnd to delimit the source of a move in the document.

interface MoveFromRangeStart
MemberTypeSummary
idnumber
namestring
type'moveFromRangeStart'

Move-to wrapper (w:moveTo) — content moved into this position

interface MoveTo
MemberTypeSummary
content(Run | Hyperlink)[]Moved content
infoTrackedChangeInfoTracked change metadata
type'moveTo'

Move-to range end marker (w:moveToRangeEnd)

interface MoveToRangeEnd
MemberTypeSummary
idnumber
type'moveToRangeEnd'

Move-to range start marker (w:moveToRangeStart) — ECMA-376 §17.13.5.24 Pairs with moveToRangeEnd to delimit the destination of a move.

interface MoveToRangeStart
MemberTypeSummary
idnumber
namestring
type'moveToRangeStart'

Non-breaking hyphen

interface NoBreakHyphenContent
MemberTypeSummary
type'noBreakHyphen'

Footnote or endnote reference

interface NoteReferenceContent
MemberTypeSummary
idnumberNote ID
type'footnoteRef' | 'endnoteRef'

Paragraph (`w:p`) — the primary block-level container in a Word document.

Every paragraph carries direct formatting (`formatting`), tracked property changes (`propertyChanges`), inline content (`content`), and optional list rendering / section break metadata. `paraId` is Word's stable identifier (`w14:paraId`) and is what `EditorBridge` and the agent toolkit use to address paragraphs.

See ECMA-376 §17.3.1.

interface Paragraph
MemberTypeSummary
contentParagraphContent[]Paragraph content
formatting?ParagraphFormattingParagraph formatting
listRendering?ListRenderingComputed list rendering (if this is a list item)
paraId?stringUnique paragraph ID
propertyChanges?ParagraphPropertyChange[]Paragraph-level tracked property changes (w:pPrChange)
renderedPageBreakBefore?booleanWord's cached layout says this paragraph started on a new rendered page.
sectionProperties?SectionPropertiesSection properties (if this paragraph ends a section)
textId?stringText ID
type'paragraph'

Paragraph property change (w:pPrChange)

interface ParagraphPropertyChange
MemberTypeSummary
currentFormatting?ParagraphFormattingParagraph properties after the tracked change (editor model convenience)
infoPropertyChangeInfoTracked change metadata
previousFormatting?ParagraphFormattingParagraph properties before the tracked change
type'paragraphPropertyChange'

Generic tracked property-change wrapper metadata (w:*PrChange)

interface PropertyChangeInfo extends TrackedChangeInfo
MemberTypeSummary
rsid?stringOptional revision session ID

A run (`w:r`) — a contiguous span of inline content sharing one set of character properties (bold, italic, font, color, etc.). Runs are the atomic unit of character formatting; toggling bold on a selection that spans different formatting creates new runs.

See ECMA-376 §17.3.2.

interface Run
```ts
const run: Run = {
  type: 'run',
  formatting: { bold: true },
  content: [{ type: 'text', text: 'Hello' }],
};
```
MemberTypeSummary
contentRunContent[]Run content (text, tabs, breaks, etc.)
formatting?TextFormattingText formatting properties
propertyChanges?RunPropertyChange[]Run-level tracked property changes (w:rPrChange)
type'run'

Run property change (w:rPrChange)

interface RunPropertyChange
MemberTypeSummary
currentFormatting?TextFormattingRun properties after the tracked change (editor model convenience)
infoPropertyChangeInfoTracked change metadata
previousFormatting?TextFormattingRun properties before the tracked change
type'runPropertyChange'

SDT properties (w:sdtPr)

interface SdtProperties
MemberTypeSummary
alias?stringAlias (friendly name)
checked?booleanCheckbox checked state
dateFormat?stringDate format for date controls
listItems?{ displayText: string; value: string; }[]Dropdown/combobox list items
lock?'sdtLocked' | 'contentLocked' | 'sdtContentLocked' | 'unlocked'Lock content editing
placeholder?stringPlaceholder text
sdtTypeSdtTypeSDT type
showingPlaceholder?booleanWhether showing placeholder
tag?stringTag (developer identifier)

One section of the document — a `SectionProperties` plus the block content (`Paragraph`s and `Table`s) that lives under those properties.

Sections are derived during parse: every paragraph carrying an inline `sectPr` ends a section, and the body's final `sectPr` defines the last section. Each section may carry its own headers/footers map.

interface Section
MemberTypeSummary
contentBlockContent[]Content in this section
footers?Map<HeaderFooterType, HeaderFooter>Footers for this section
headers?Map<HeaderFooterType, HeaderFooter>Headers for this section
propertiesSectionPropertiesSection properties

Section properties (`w:sectPr`) — page geometry, margins, columns, header/footer references, and page numbering for one section of the document. Sections are introduced by inline `sectPr` markers on the terminating paragraph (`Paragraph.sectionProperties`) and the body's final `sectPr`.

All distance units are twips (1/20 of a point) on the wire. The layout engine converts to pixels.

See ECMA-376 §17.6.

interface SectionProperties
MemberTypeSummary
background?{ color?: ColorValue; themeColor?: ThemeColorSlot; themeTint?: string; themeShade?: string; }Page background
bidi?booleanRight-to-left section
columnCount?numberNumber of columns
columns?Column[]Individual column definitions
columnSpace?numberSpace between columns in twips
docGrid?{ type?: 'default' | 'lines' | 'linesAndChars' | 'snapToChars'; linePitch?: number; charSpace?: number; }Document grid
endnotePr?EndnotePropertiesEndnote properties for this section
equalWidth?booleanEqual width columns
evenAndOddHeaders?booleanDifferent odd/even page headers/footers
footerDistance?numberFooter distance from bottom in twips
footerReferences?FooterReference[]Footer references
footnotePr?FootnotePropertiesFootnote properties for this section
gutter?numberGutter margin in twips
headerDistance?numberHeader distance from top in twips
headerReferences?HeaderReference[]Header references
lineNumbers?{ start?: number; countBy?: number; distance?: number; restart?: LineNumberRestart; }Line numbering settings
marginBottom?numberBottom margin in twips
marginLeft?numberLeft margin in twips
marginRight?numberRight margin in twips
marginTop?numberTop margin in twips
orientation?PageOrientationPage orientation
pageBorders?{ top?: BorderSpec; bottom?: BorderSpec; left?: BorderSpec; right?: BorderSpec; display?: 'allPages' | 'firstPage' | 'notFirstPage'; offsetFrom?: 'page' | 'text'; zOrder?: 'front' | 'back'; }Page borders
pageHeight?numberPage height in twips
pageWidth?numberPage width in twips
paperSrcFirst?numberFirst page paper source
paperSrcOther?numberOther pages paper source
sectionStart?SectionStartSection start type
separator?booleanSeparator line between columns
titlePg?booleanDifferent first page header/footer
verticalAlign?VerticalAlignVertical alignment of text

Shape/drawing object (wps:wsp)

interface Shape
MemberTypeSummary
customGeometry?stringCustom geometry points
fill?ShapeFillFill
id?stringUnique ID
name?stringName
outline?ShapeOutlineOutline/stroke
position?ImagePositionPosition for floating shapes
shapeTypeShapeTypeShape type preset
sizeImageSizeSize in EMUs
textBody?ShapeTextBodyText content inside the shape
transform?ImageTransformTransform
type'shape'
wrap?ImageWrapWrap settings

Shape reference

interface ShapeContent
MemberTypeSummary
shapeShapeShape data
type'shape'

Shape fill type

interface ShapeFill
MemberTypeSummary
color?ColorValueSolid fill color
gradient?{ type: 'linear' | 'radial' | 'rectangular' | 'path'; angle?: number; stops: Array<{ position: number; color: ColorValue; }>; }Gradient stops for gradient fill
type'none' | 'solid' | 'gradient' | 'pattern' | 'picture'

Shape outline/stroke

interface ShapeOutline
MemberTypeSummary
cap?'flat' | 'round' | 'square'Line cap
color?ColorValueLine color
headEnd?{ type: 'none' | 'triangle' | 'stealth' | 'diamond' | 'oval' | 'arrow'; width?: 'sm' | 'med' | 'lg'; length?: 'sm' | 'med' | 'lg'; }Head arrow
join?'bevel' | 'miter' | 'round'Line join
style?'solid' | 'dot' | 'dash' | 'lgDash' | 'dashDot' | 'lgDashDot' | 'lgDashDotDot' | 'sysDot' | 'sysDash' | 'sysDashDot' | 'sysDashDotDot'Line style
tailEnd?{ type: 'none' | 'triangle' | 'stealth' | 'diamond' | 'oval' | 'arrow'; width?: 'sm' | 'med' | 'lg'; length?: 'sm' | 'med' | 'lg'; }Tail arrow
width?numberLine width in EMUs

Text body inside a shape

interface ShapeTextBody
MemberTypeSummary
anchor?'top' | 'middle' | 'bottom' | 'distributed' | 'justified'Anchor/vertical alignment
anchorCenter?booleanAnchor center
autoFit?'none' | 'normal' | 'shape'Auto fit
contentParagraph[]Paragraphs inside the shape
margins?{ top?: number; bottom?: number; left?: number; right?: number; }Text margins
rotation?numberRotation
vertical?booleanText direction

Simple field (w:fldSimple)

interface SimpleField
MemberTypeSummary
content(Run | Hyperlink)[]Current display value
dirty?booleanField is dirty
fieldTypeFieldTypeParsed field type
fldLock?booleanField is locked
instructionstringField instruction (e.g., "PAGE \* MERGEFORMAT")
type'simpleField'

Soft hyphen

interface SoftHyphenContent
MemberTypeSummary
type'softHyphen'

Symbol character (special font character)

interface SymbolContent
MemberTypeSummary
charstringCharacter code
fontstringFont name
type'symbol'

Tab character

interface TabContent
MemberTypeSummary
type'tab'

Table (`w:tbl`) — a block-level grid of rows × cells. Tables carry their own formatting layer (borders, shading, alignment, indent, floating placement) and an explicit column-width grid in twips. Tables can nest arbitrarily through `TableCell.content`.

See ECMA-376 §17.4.

interface Table
MemberTypeSummary
columnWidths?number[]Column widths in twips
formatting?TableFormattingTable formatting
propertyChanges?TablePropertyChange[]Table-level tracked property changes (w:tblPrChange)
rowsTableRow[]Table rows
type'table'

Table cell (`w:tc`). Holds nested block content (paragraphs and nested tables), cell-level formatting (borders, shading, vertical merge), tracked property changes, and tracked structural changes for cell insert/delete/merge operations.

interface TableCell
MemberTypeSummary
content(Paragraph | Table)[]Cell content (paragraphs, tables, etc.)
formatting?TableCellFormattingCell formatting
propertyChanges?TableCellPropertyChange[]Cell-level tracked property changes (w:tcPrChange)
structuralChange?TableStructuralChangeInfoTracked structural changes (cell insert/delete/merge)
type'tableCell'

Table cell property change (w:tcPrChange)

interface TableCellPropertyChange
MemberTypeSummary
currentFormatting?TableCellFormattingCell properties after the tracked change (editor model convenience)
infoPropertyChangeInfoTracked change metadata
previousFormatting?TableCellFormattingCell properties before the tracked change
type'tableCellPropertyChange'

Table property change (w:tblPrChange)

interface TablePropertyChange
MemberTypeSummary
currentFormatting?TableFormattingTable properties after the tracked change (editor model convenience)
infoPropertyChangeInfoTracked change metadata
previousFormatting?TableFormattingTable properties before the tracked change
type'tablePropertyChange'

Table row (`w:tr`) — an ordered list of `TableCell` plus row-level formatting (height, repeated header, cantSplit) and tracked changes for inserts/deletes.

interface TableRow
MemberTypeSummary
cellsTableCell[]Cells in this row
formatting?TableRowFormattingRow formatting
propertyChanges?TableRowPropertyChange[]Row-level tracked property changes (w:trPrChange)
structuralChange?TableStructuralChangeInfoTracked structural changes (row insert/delete)
type'tableRow'

Table row property change (w:trPrChange)

interface TableRowPropertyChange
MemberTypeSummary
currentFormatting?TableRowFormattingRow properties after the tracked change (editor model convenience)
infoPropertyChangeInfoTracked change metadata
previousFormatting?TableRowFormattingRow properties before the tracked change
type'tableRowPropertyChange'

Table structural tracked change metadata (row/cell insert/delete/merge)

interface TableStructuralChangeInfo
MemberTypeSummary
infoTrackedChangeInfoTracked change metadata
type'tableRowInsertion' | 'tableRowDeletion' | 'tableCellInsertion' | 'tableCellDeletion' | 'tableCellMerge'

Text box (floating text container)

interface TextBox
MemberTypeSummary
contentParagraph[]Text content
fill?ShapeFillFill
id?stringUnique ID
margins?{ top?: number; bottom?: number; left?: number; right?: number; }Internal margins
outline?ShapeOutlineOutline
position?ImagePositionPosition
sizeImageSizeSize
type'textBox'
wrap?ImageWrapWrap settings

Plain text run content (`w:t`). `preserveSpace` mirrors the `xml:space="preserve"` attribute and matters for runs that begin or end with whitespace — without it, Word collapses leading/trailing spaces.

interface TextContent
MemberTypeSummary
preserveSpace?booleanPreserve whitespace (xml:space="preserve")
textstringThe text string
type'text'

Tracked change metadata (w:ins, w:del attributes)

interface TrackedChangeInfo
MemberTypeSummary
authorstringAuthor who made the change
date?stringDate of the change
idnumberRevision ID

Type aliases(16)

Block-level content types

type BlockContent = Paragraph | Table | BlockSdt;

Endnote position

type EndnotePosition = 'sectEnd' | 'docEnd';
type Field = SimpleField | ComplexField;

Known field types

type FieldType = 'PAGE' | 'NUMPAGES' | 'NUMWORDS' | 'NUMCHARS' | 'DATE' | 'TIME' | 'CREATEDATE' | 'SAVEDATE' | 'PRINTDATE' | 'AUTHOR' | 'TITLE' | 'SUBJECT' | 'KEYWORDS' | 'COMMENTS' | 'FILENAME' | 'FILESIZE' | 'TEMPLATE' | 'DOCPROPERTY' | 'DOCVARIABLE' | 'REF' | 'PAGEREF' | 'NOTEREF' | 'HYPERLINK' | 'TOC' | 'TOA' | 'INDEX' | 'SEQ' | 'STYLEREF' | 'AUTONUM' | 'AUTONUMLGL' | 'AUTONUMOUT' | 'IF' | 'MERGEFIELD' | 'NEXT' | 'NEXTIF' | 'ASK' | 'SET' | 'QUOTE' | 'INCLUDETEXT' | 'INCLUDEPICTURE' | 'SYMBOL' | 'ADVANCE' | 'EDITTIME' | 'REVNUM' | 'SECTION' | 'SECTIONPAGES' | 'USERADDRESS' | 'USERNAME' | 'USERINITIALS' | 'UNKNOWN';

Footnote position

type FootnotePosition = 'pageBottom' | 'beneathText' | 'sectEnd' | 'docEnd';

Header/footer type

type HeaderFooterType = 'default' | 'first' | 'even';

Line number restart type

type LineNumberRestart = 'continuous' | 'newPage' | 'newSection';

Number restart type

type NoteNumberRestart = 'continuous' | 'eachSect' | 'eachPage';

Page orientation

type PageOrientation = 'portrait' | 'landscape';

Inline content that can appear inside a paragraph. Covers runs (text), hyperlinks, bookmarks, fields, structured document tags, comment range markers, tracked-change wrappers, and math equations. Every node in this union carries a `type` discriminator so consumers can narrow at runtime.

type ParagraphContent = Run | Hyperlink | BookmarkStart | BookmarkEnd | SimpleField | ComplexField | InlineSdt | CommentRangeStart | CommentRangeEnd | Insertion | Deletion | MoveFrom | MoveTo | MoveFromRangeStart | MoveFromRangeEnd | MoveToRangeStart | MoveToRangeEnd | MathEquation;

All possible run content types

type RunContent = TextContent | TabContent | BreakContent | SymbolContent | NoteReferenceContent | FieldCharContent | InstrTextContent | SoftHyphenContent | NoBreakHyphenContent | DrawingContent | ShapeContent;

SDT type (content control type)

type SdtType = 'richText' | 'plainText' | 'date' | 'dropdown' | 'comboBox' | 'checkbox' | 'picture' | 'buildingBlockGallery' | 'group' | 'unknown';

Section start type

type SectionStart = 'continuous' | 'nextPage' | 'oddPage' | 'evenPage' | 'nextColumn';

Shape types

type ShapeType = 'rect' | 'roundRect' | 'ellipse' | 'triangle' | 'rtTriangle' | 'parallelogram' | 'trapezoid' | 'pentagon' | 'hexagon' | 'heptagon' | 'octagon' | 'decagon' | 'dodecagon' | 'star4' | 'star5' | 'star6' | 'star7' | 'star8' | 'star10' | 'star12' | 'star16' | 'star24' | 'star32' | 'line' | 'straightConnector1' | 'bentConnector2' | 'bentConnector3' | 'bentConnector4' | 'bentConnector5' | 'curvedConnector2' | 'curvedConnector3' | 'curvedConnector4' | 'curvedConnector5' | 'rightArrow' | 'leftArrow' | 'upArrow' | 'downArrow' | 'leftRightArrow' | 'upDownArrow' | 'quadArrow' | 'leftRightUpArrow' | 'bentArrow' | 'uturnArrow' | 'leftUpArrow' | 'bentUpArrow' | 'curvedRightArrow' | 'curvedLeftArrow' | 'curvedUpArrow' | 'curvedDownArrow' | 'stripedRightArrow' | 'notchedRightArrow' | 'homePlate' | 'chevron' | 'rightArrowCallout' | 'downArrowCallout' | 'leftArrowCallout' | 'upArrowCallout' | 'leftRightArrowCallout' | 'quadArrowCallout' | 'circularArrow' | 'flowChartProcess' | 'flowChartAlternateProcess' | 'flowChartDecision' | 'flowChartInputOutput' | 'flowChartPredefinedProcess' | 'flowChartInternalStorage' | 'flowChartDocument' | 'flowChartMultidocument' | 'flowChartTerminator' | 'flowChartPreparation' | 'flowChartManualInput' | 'flowChartManualOperation' | 'flowChartConnector' | 'flowChartOffpageConnector' | 'flowChartPunchedCard' | 'flowChartPunchedTape' | 'flowChartSummingJunction' | 'flowChartOr' | 'flowChartCollate' | 'flowChartSort' | 'flowChartExtract' | 'flowChartMerge' | 'flowChartOnlineStorage' | 'flowChartDelay' | 'flowChartMagneticTape' | 'flowChartMagneticDisk' | 'flowChartMagneticDrum' | 'flowChartDisplay' | 'wedgeRectCallout' | 'wedgeRoundRectCallout' | 'wedgeEllipseCallout' | 'cloudCallout' | 'borderCallout1' | 'borderCallout2' | 'borderCallout3' | 'accentCallout1' | 'accentCallout2' | 'accentCallout3' | 'callout1' | 'callout2' | 'callout3' | 'accentBorderCallout1' | 'accentBorderCallout2' | 'accentBorderCallout3' | 'actionButtonBlank' | 'actionButtonHome' | 'actionButtonHelp' | 'actionButtonInformation' | 'actionButtonBackPrevious' | 'actionButtonForwardNext' | 'actionButtonBeginning' | 'actionButtonEnd' | 'actionButtonReturn' | 'actionButtonDocument' | 'actionButtonSound' | 'actionButtonMovie' | 'irregularSeal1' | 'irregularSeal2' | 'frame' | 'halfFrame' | 'corner' | 'diagStripe' | 'chord' | 'arc' | 'bracketPair' | 'bracePair' | 'leftBracket' | 'rightBracket' | 'leftBrace' | 'rightBrace' | 'can' | 'cube' | 'bevel' | 'donut' | 'noSmoking' | 'blockArc' | 'foldedCorner' | 'smileyFace' | 'heart' | 'lightningBolt' | 'sun' | 'moon' | 'cloud' | 'snip1Rect' | 'snip2SameRect' | 'snip2DiagRect' | 'snipRoundRect' | 'round1Rect' | 'round2SameRect' | 'round2DiagRect' | 'plaque' | 'teardrop' | 'mathPlus' | 'mathMinus' | 'mathMultiply' | 'mathDivide' | 'mathEqual' | 'mathNotEqual' | 'gear6' | 'gear9' | 'funnel' | 'pieWedge' | 'pie' | 'leftCircularArrow' | 'leftRightCircularArrow' | 'swooshArrow' | 'textBox';

Run-level tracked wrappers represented in WordprocessingML.

type TrackedRunChange = Insertion | Deletion | MoveFrom | MoveTo;

Vertical alignment

type VerticalAlign = 'top' | 'center' | 'both' | 'bottom';