import { FlowBlock, Line, Run, TextRun } from './index.js'; 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;