import { Table } from '../../../../common/model/tables/main-structures/table';
import { IProcessor } from '../../../../common/processor';
import { ModelManipulator } from '../../../../common/model/manipulators/model-manipulator';
import { IHistory } from '../../../../common/model/history/base/i-history';
import { SubDocument } from '../../../../common/model/sub-document';
import { Collection } from '../collection';
import { InputPositionBase } from '../../../../common/selection/input-position-base';
export declare abstract class TableBaseCollection<TApi, T> extends Collection<TApi, T> {
    protected _subDocument: SubDocument;
    protected _modelManipulator: ModelManipulator;
    protected _history: IHistory;
    constructor(processor: IProcessor, subDocument: SubDocument);
    protected _insertTable(rowCount: number, columnCount: number, position: number, availableWidth: number, inputPosition: InputPositionBase): Table;
    protected _insertRowBelow(table: Table, rowIndex: number): void;
    protected _insertRowAbove(table: Table, rowIndex: number): void;
    protected _insertCellToTheRight(table: Table, rowIndex: number, cellIndex: number, inputPosition: InputPositionBase): void;
    protected _insertCellToTheLeft(table: Table, rowIndex: number, cellIndex: number, inputPosition: InputPositionBase): void;
    protected _removeTable(table: Table): void;
    protected _removeRow(table: Table, rowIndex: number): void;
    protected _removeCell(table: Table, rowIndex: number, cellIndex: number): void;
    private _normalizeCellColumnSpans;
    private _normalizeVerticalSpans;
    private _updateTable;
}
