import { IModelManager } from '../../../model-manager';
import { InputPositionBase } from '../../../selection/input-position-base';
import { SubDocument } from '../../sub-document';
import { Table, TablePosition } from '../../tables/main-structures/table';
import { ModelManipulator } from '../model-manipulator';
interface ExecutingOptions {
    canNormalizeTable: boolean;
    canNormalizeVerticalMerging: boolean;
    canCopyProperties: boolean;
    needToSetNextStyle?: boolean;
}
export declare abstract class InsertTableCellOperationBase {
    subDocument: SubDocument;
    modelManager: IModelManager;
    get modelManipulator(): ModelManipulator;
    constructor(modelManager: IModelManager, subDocument: SubDocument);
    execute(table: Table, rowIndex: number, cellIndex: number, inpPos: InputPositionBase, options: ExecutingOptions): void;
    normalizeTableGridAfter(table: Table): void;
    abstract insertTableCellCore(subDocument: SubDocument, pos: TablePosition, inpPos: InputPositionBase, options: ExecutingOptions): any;
}
export declare class InsertTableCellToTheLeftOperation extends InsertTableCellOperationBase {
    insertTableCellCore(subDocument: SubDocument, pos: TablePosition, inpPos: InputPositionBase, options: ExecutingOptions): void;
}
export declare class InsertTableCellToTheRightOperation extends InsertTableCellOperationBase {
    insertTableCellCore(subDocument: SubDocument, pos: TablePosition, inpPos: InputPositionBase, options: ExecutingOptions): void;
}
export {};
