import { FlowBlock, Line, Run, TextRun } from './index.js'; export declare const PAGE_BREAK_DELETION_ANCHOR_ATTR = "data-page-break-deletion-anchor"; export declare const DELETED_PAGE_BREAK_LABEL = "Deleted page break"; export declare function isPageBreakDeletionAnchorRun(run: Run): run is TextRun & { dataAttrs: { [PAGE_BREAK_DELETION_ANCHOR_ATTR]: 'true'; }; }; export declare const NOTE_REFERENCE_MARKER_ATTR = "data-v2-note-ref"; export declare const NOTE_LABEL_MARKER_ATTR = "data-v2-note-label"; /** Body note markers paint text but occupy one source-coordinate unit. */ export declare function isBodyNoteReferenceRun(run: Run): boolean; export declare function isZeroWidthMarkerRun(run: Run): boolean; export declare function hasZeroWidthMarkerSpan(run: Run): boolean; export declare function isGeneratedFieldResultRun(run: Run): boolean; /** Synthetic note-band or appended-endnote label keyed to its source note. */ export declare function isNoteLabelRun(run: Run): boolean; /** Numbered marker text whose measurement identity can use digit capabilities. */ export declare function isNumberedNoteMarkerRun(run: Run): boolean; export declare function isEmptySdtPlaceholderRun(run: Run): run is TextRun & { visualPlaceholder: 'emptyInlineSdt' | 'emptyBlockSdt'; }; export declare function isEmptyInlineSdtPlaceholderRun(run: Run): run is TextRun & { visualPlaceholder: 'emptyInlineSdt'; }; /** * Expands text runs that contain inline newlines into multiple runs. * * @param {Run[]} runs - The runs to expand * @returns {Run[]} The expanded runs */ export declare function expandRunsForInlineNewlines(runs: Run[]): Run[]; /** * Extracts the subset of runs that appear in a specific line. * Handles partial runs that span multiple lines. * * @param block - The paragraph block containing the runs * @param line - The line to extract runs for * @returns Array of runs present in the line */ export declare function sliceRunsForLine(block: FlowBlock, line: Line): Run[]; /** * Whether a line's text must be painted from measured segment coordinates. * * Explicit tab coordinates require positioned painting. Horizontally scaled * text does as well because browser inline flow cannot preserve the measured * advance after `scaleX`. Keeping this decision in the shared contracts layer * prevents the resolver and painter from disagreeing about whether paragraph * indentation is represented by CSS or by the segments' absolute X values. */ export declare function usesPositionedTextGeometry(line: Line, runsForLine: Run[], isRtl: boolean): boolean;