/** PowerPoint body lvl1 hanging indent: marL 18pt / 28pt type. */ export declare const PPTX_BODY_BULLET_INDENT_EM: number; export type PptxTextInset = { t: number; r: number; b: number; l: number; }; export type ImportedParagraphMetrics = { lineHeight: number; margin: number | null; }; /** CSS cascade: the last `prop:` in a style string wins. */ export declare function lastCssDeclaration(style: string, prop: string): string | null; /** * Read line-height / paragraph spacing from pptxtojson paragraph HTML. * Duplicate `line-height` declarations (default 1.2 then the real value) must * use the last one — otherwise imported boxes clip like the Odkazy slide. */ export declare function importedParagraphMetrics(html: string, ratio: number): ImportedParagraphMetrics; /** pptxtojson insets are pt; the editor paints px. */ export declare function scalePptxTextInset(inset: PptxTextInset | undefined, ratio: number): [number, number, number, number] | undefined; /** * Overflow-wrap:anywhere line count using a mean glyph width. URLs have no * spaces, so PowerPoint / CSS wrap them by character. */ export declare function estimateAnywhereWrapLines(text: string, innerWidth: number, fontSize: number, avgGlyphEm?: number): number; export declare function estimateColumnHeight(linesPerBlock: number[], fontSize: number, lineHeight: number, blockSpace: number): number; export declare function textFitsFixedBox(contentHeight: number, boxInnerHeight: number, epsilon?: number): boolean;