interface IBEditorTableGridPlacement {
    cell: HTMLTableCellElement;
    colIndex: number;
    colspan: number;
    rowIndex: number;
    rowspan: number;
}
export interface IBEditorTableGrid {
    columnCount: number;
    matrix: Array<Array<HTMLTableCellElement | null>>;
    placements: Map<HTMLTableCellElement, IBEditorTableGridPlacement>;
    rowCount: number;
    rows: HTMLTableRowElement[];
    table: HTMLTableElement;
}
interface IBEditorTableGridBounds {
    colEndIndex: number;
    colStartIndex: number;
    rowEndIndex: number;
    rowStartIndex: number;
}
export interface IBEditorTableGridRectSelection extends IBEditorTableGridBounds {
    cells: HTMLTableCellElement[];
    table: HTMLTableElement;
    tableGrid: IBEditorTableGrid;
}
export declare function resolveBEditorTableGrid(table: HTMLTableElement): IBEditorTableGrid | null;
export declare function resolveBEditorTableGridPlacement(tableGrid: IBEditorTableGrid, cell: HTMLTableCellElement): IBEditorTableGridPlacement | null;
export declare function canExpandBEditorTableGridRectSelection(selectedCells: HTMLTableCellElement[], expandedCells: HTMLTableCellElement[], tableGrid: IBEditorTableGrid, bounds: IBEditorTableGridBounds): boolean;
export declare function resolveBEditorTableGridRectSelection(cells: HTMLTableCellElement[]): IBEditorTableGridRectSelection | null;
export declare function resolveBEditorTableGridCellAt(tableGrid: IBEditorTableGrid, rowIndex: number, colIndex: number): HTMLTableCellElement | null;
export declare function resolveBEditorTableGridTargetCell(cell: HTMLTableCellElement, direction: {
    column: number;
    row: number;
}, moveToEdge: boolean): HTMLTableCellElement | null;
export {};
