import { type Phase3AnchorPlacement, type Phase3LinePlacement } from "./phase3-render.js"; import type { PdfDocumentPhase3, PdfPhase3Margins } from "./phase3-types.js"; import type { PdfRenderedPage } from "./pdf-renderer.js"; export interface Phase5TableFragmentAnalysis { bodyRowIndices: number[]; headerRowCount: number; pageIndex: number; rowFragments: Array<{ bodyRowIndex: number; height: number; rowSliceStart: number; }>; tableId: string; tableTop: number; } export interface Phase5DocumentAnalysis { meta: NonNullable; page: { height: number; margins: PdfPhase3Margins; width: number; }; pages: PdfRenderedPage[]; tables: Array<{ columnWidths: number[]; fragments: Phase5TableFragmentAnalysis[]; id: string; totalBodyRows: number; }>; } export interface Phase5DetailedDocumentAnalysis extends Phase5DocumentAnalysis { anchors: Phase3AnchorPlacement[]; linePlacements: Phase3LinePlacement[]; } export interface TablePaginationQualityDecision { adjacentHeadingFits: boolean; adjacentHeadingPageIndex?: number; balancedSplitAllowed?: boolean; documentPageStartIndex: number; firstFragmentTableTop?: number; fitsOnFreshPage: boolean; fragmentPageIndices: number[]; wouldSplitOnCurrentPage: boolean; } export declare function assertTablePaginationQualityGate(decision: TablePaginationQualityDecision): void; export declare function assertHeadingRelocationCoordinates(before: T[], after: T[], topDownOffset: number): void; export declare function relocateAdjacentHeadingTexts(texts: T[], topDownOffset: number): T[]; export declare function analyzePhase5Document(document: PdfDocumentPhase3): Promise; export declare function terminalPageUsage(analysis: Phase5DocumentAnalysis): number; export declare function pageUsage(analysis: Phase5DocumentAnalysis, pageIndex: number): number; export declare function pageUsages(analysis: Phase5DocumentAnalysis): number[]; export declare function analyzePhase5DocumentDetailed(document: PdfDocumentPhase3): Promise; //# sourceMappingURL=phase5-table-layout.d.ts.map