import type { ColumnAbstract, RowNode, RowPredicate, SpanFn } from "../types.js"; import type { LayoutCell, LayoutFullWidthRow, LayoutRow } from "./types.js"; export interface RowLayout { readonly layoutByIndex: (index: number) => LayoutRow | null | undefined; readonly layoutById: (id: string) => LayoutRow | null | undefined; readonly rootCell: (row: number, column: number) => LayoutFullWidthRow | LayoutCell | null; readonly clearCache: () => void; } export interface CreateRowLayoutOptions { readonly rowByIndex: (i: number) => RowNode | null | undefined; readonly computeColSpan: SpanFn | null; readonly computeRowSpan: SpanFn | null; readonly isFullWidth: RowPredicate | null; readonly isCutoff: RowPredicate; readonly columns: ColumnAbstract[]; readonly startCutoff: number; readonly centerCutoff: number; readonly endCutoff: number; readonly topCutoff: number; readonly rowCenterCutoff: number; readonly bottomCutoff: number; readonly rowLookback: number; readonly hasSpans: boolean; } export declare function createRowLayout({ startCutoff, centerCutoff, endCutoff, columns, topCutoff, rowCenterCutoff, bottomCutoff, rowLookback, rowByIndex, computeColSpan, computeRowSpan, isCutoff, isFullWidth, hasSpans, }: CreateRowLayoutOptions): RowLayout;