import { type AttrValue, type ElementNode } from '../../schema/index.js'; export declare const SPAN_COL = "colspan"; export declare const SPAN_ROW = "rowspan"; export declare const $MAX_SPAN = 1000; export interface GridCell { readonly cell: ElementNode; readonly trIndex: number; readonly tdIndex: number; readonly row: number; readonly column: number; readonly rowSpan: number; readonly colSpan: number; } export interface TableGrid { readonly rows: number; readonly columns: number; readonly cells: readonly GridCell[]; } export interface GridBox { readonly top: number; readonly left: number; readonly bottom: number; readonly right: number; } export declare function spanOf(value: AttrValue | undefined): number; export declare function cellGrid(table: ElementNode): TableGrid; export declare function coveredColumns(grid: TableGrid, row: number): number; export declare function $columnGapWidths(grid: TableGrid, row: number, columns?: number): readonly number[]; export declare function cellCovering(grid: TableGrid, row: number, column: number): GridCell | null; export declare function boxBetween(grid: TableGrid, first: GridCell, second: GridCell): GridBox; export declare function cellsInBox(grid: TableGrid, box: GridBox): readonly GridCell[]; export declare function stepCell(grid: TableGrid, from: GridCell, step: 1 | -1): GridCell | null; export declare function withSpans(cell: ElementNode, colSpan: number, rowSpan: number): ElementNode; export declare function mapCells(table: ElementNode, map: (item: GridCell) => readonly ElementNode[] | ElementNode | null): ElementNode; export declare function insertCellInRow(table: ElementNode, trIndex: number, line: number, fresh: ElementNode): ElementNode; //# sourceMappingURL=grid.d.ts.map