import type { PdfPageContent } from '../models/PdfPageContent.js'; /** * Element composition pipeline: groups raw text runs into paragraphs and * headings in reading order, preserving images. * * Three stages, each a pure module under ./composer/: * 1. overlapMerge - spatial merging of runs into composites (column-aware) * 2. readingOrder - human reading order (preservation invariant: the * output is a permutation of the input, never a filter) * 3. textTypes - h1-h5 / paragraph classification by font size * plus dropCaps (decorative first letters merged back into their paragraph). */ export declare class PdfElementComposer { /** * Compose elements by grouping text elements into paragraphs while preserving images. * @param pages Array of PDF page content with raw elements * @returns Array of PDF page content with composed elements (paragraphs + images) */ static composeElements(pages: PdfPageContent[]): PdfPageContent[]; /** * Compose elements for a single page. */ private static composePageElements; /** * Convert composites back to PdfElements, mapping the stage-3 classification * onto the element type. */ private static convertToElements; /** * Merge text and non-text elements while preserving the algorithmic order of * the text elements. Non-text elements are position-sorted and interleaved * by vertical position. */ private static interleaveWithNonText; } //# sourceMappingURL=PdfElementComposer.d.ts.map