import { Block, Text, Inline } from 'slate'; import { Editor } from 'slate'; import { List } from 'immutable'; import { Option } from './option'; declare type CellPosition = { row: number; col: number; }; export declare type Cell = { key: string; rowKey: string; colspan: number; rowspan: number; block: Block; rowBlock: Block; nodeIndex: number; isLeftOfMergedCell: boolean; isTopOfMergedCell: boolean; } & CellPosition; export interface CellDict { [key: string]: Cell; } export declare type Layout = Cell[][]; export declare class TableLayout { table: Cell[][]; keyDict: CellDict; currentTable: Block; row: Block; cell: Block; constructor(TableLayout: Cell[][], dict: CellDict, table: Block, row: Block, cell: Block); readonly col: number; readonly firstRow: Cell[]; readonly firstColumn: Cell[]; readonly lastRow: Cell[]; readonly lastColumn: Cell[]; readonly rowIndex: number; readonly width: number; readonly height: number; readonly columnIndex: number; isTopOfMergedCell(): void; findCellBy(key: string): Cell | undefined; findNextRowKey(): string | undefined; filterHorizontalMergedCellsBy(columnIndex: number): Cell[]; filterVerticalMergedCellsBy(rowIndex: number): Cell[]; getRows(rowIndex: number): Cell[]; findBelow(key: string): Cell | undefined; getNextRowSize(key: string): number; getRight(key: string): Cell | undefined; isLastColumn(key: string): boolean; isLastRow(key: string): boolean; static create(editor: Editor, opts: Required