import type { Node } from 'prosemirror-model'; type TableCellRealDesc = { type: 'real'; offset: number; node: Node; colspan?: number; rowspan?: number; }; type TableCellVirtualDesc = { type: 'virtual'; /** Index of real cell, that prodeced this virtual cell */ colspan?: [number, number]; /** Index of real cell, that prodeced this virtual cell */ rowspan?: [number, number]; }; type Pos = { from: number; to: number; }; export type CellPos = ({ type: 'real'; } & Pos) | { type: 'virtual'; closestPos: number; }; type TableCellDesc = TableCellRealDesc | TableCellVirtualDesc; type TableRowDesc = { node: Node; cells: TableCellDesc[]; offset: number; colspan?: boolean; rowspan?: boolean; }; export declare class TableDesc { readonly rows: number; readonly cols: number; readonly rowsDesc: readonly TableRowDesc[]; readonly baseOffset: number; private static __cache; static create(table: Node): TableDesc | null; private constructor(); rowHasVirtualCells(rowIndex: number): boolean; columnHasVirtualCells(columnIndex: number): boolean; isSafeColumn(columnIndex: number): boolean; isSafeRow(rowIndex: number): boolean; getOffsetForRow(rowIndex: number): number; getRelativePosForRow(rowIndex: number): Pos; getRelativePosForCell(rowIndex: number, columnIndex: number): CellPos; getRelativePosForColumn(columnIndex: number): CellPos[]; getCellNodeType(): import("prosemirror-model").NodeType; getRowNodeType(): import("prosemirror-model").NodeType; } export {};