import type { ColumnBoundary, Composite, CompositePageStats, DetectedColumn } from './types.js'; /** * Stage-1 detector: cluster standard-width text composites by left position * and return column boundaries ONLY for a confident multi-column layout. * Returns an empty array otherwise (callers then merge without a column * constraint). See the module doc for the contract difference vs stage 2. */ export declare function detectMergeColumnBoundaries(composites: Composite[], pageStats: CompositePageStats): ColumnBoundary[]; /** * Assign a composite to a stage-1 column by left edge, then center, then the * closest column. Never returns "no column". */ export declare function assignToColumn(composite: Composite, columns: ColumnBoundary[]): number; /** * Stage-2 detector: beam scanning over a horizontal density histogram. * ALWAYS accounts for every composite (preservation invariant): the returned * columns partition the input, falling back to a single column when the * layout is not confidently multi-column. */ export declare function detectReadingOrderColumns(composites: Composite[]): DetectedColumn[]; //# sourceMappingURL=columnDetection.d.ts.map