import { BaseElement, Text } from 'slate';
export type TableCustomElement = TableNode | TableHeadNode | TableFooterNode | TrNode | ThNode | TdNode;
export interface TableNode {
    type: 'table';
    children: Array<TableHeadNode | TrNode | TableFooterNode>;
    finished?: boolean;
    otherProps?: {
        mergeCells?: Array<{
            row: number;
            col: number;
            rowSpan: number;
            colSpan: number;
        }>;
        finished?: boolean;
        config?: any;
        columns?: Array<any>;
    };
}
export interface TableHeadNode {
    type: 'table-head';
    children: TrNode[];
}
export interface TableFooterNode {
    type: 'table-footer';
    children: TrNode[];
}
export interface TrNode {
    type: 'table-row';
    children: Array<TdNode | ThNode>;
}
export interface ThNode {
    type: 'header-cell';
    rowSpan?: number;
    colSpan?: number;
    children: Array<TableCustomElement | Text>;
}
export interface TdNode {
    type: 'table-cell';
    rowSpan?: number;
    colSpan?: number;
    select?: boolean;
    children: Array<TableCustomElement | BaseElement['children'] | Text>;
}
