import { Editor, Block } from 'slate'; import { TableOption } from './create-table'; import { Option } from './option'; export interface EditTableCommands { isSelectionInTable: () => boolean; findCurrentTable: () => Block | null; insertTable: (col?: number, row?: number, tableOption?: TableOption) => EditTableCommands & Editor; disableResizing: () => void; enableResizing: () => void; insertRow: () => EditTableCommands & Editor; insertAbove: () => EditTableCommands & Editor; insertBelow: () => EditTableCommands & Editor; insertLeft: () => EditTableCommands & Editor; insertRight: () => EditTableCommands & Editor; mergeRight: () => EditTableCommands & Editor; mergeBelow: () => EditTableCommands & Editor; mergeSelection: () => EditTableCommands & Editor; splitCell: () => EditTableCommands & Editor; removeRow: () => EditTableCommands & Editor; removeColumn: () => EditTableCommands & Editor; removeTable: () => EditTableCommands & Editor; } export declare function EditTable(options?: Option): { schema: { blocks: { [x: string]: { parent: { type: string; }; nodes: { match: { object: string; }; min: number; }[]; } | { parent: { type: string; }; nodes: { match: { object: string; type: string; }; min: number; }[]; } | { nodes: { match: { object: string; type: string; }; min: number; }[]; parent?: undefined; }; }; }; onKeyDown: (event: any, editor: Editor, next: () => any) => any; renderNode: (props: any, editor: any, next: () => void) => any; renderBlock: (props: any, editor: any, next: () => void) => any; queries: { hasTablePlugin: () => boolean; isSelectionInTable: (editor: Editor) => boolean; canSelectedCellsMerge: (editor: Editor) => boolean; findCurrentTable: (editor: Editor) => Block | null; }; commands: { disableResizing: (editor: Editor, ...args: any[]) => any; enableResizing: (editor: Editor, ...args: any[]) => any; insertTable: (editor: Editor, ...args: any[]) => any; insertAbove: (editor: Editor, ...args: any[]) => any; insertBelow: (editor: Editor, ...args: any[]) => any; insertLeft: (editor: Editor, ...args: any[]) => any; insertRight: (editor: Editor, ...args: any[]) => any; mergeRight: (editor: Editor, ...args: any[]) => any; mergeBelow: (editor: Editor, ...args: any[]) => any; mergeSelection: (editor: Editor, ...args: any[]) => any; splitCell: (editor: Editor, ...args: any[]) => any; removeRow: (editor: Editor, ...args: any[]) => any; removeColumn: (editor: Editor, ...args: any[]) => any; removeTable: (editor: Editor, ...args: any[]) => any; }; }; export declare function hasTablePlugin(e: T): e is T & EditTableCommands;