import { Table } from '../../model/tables/main-structures/table';
import { TableCell } from '../../model/tables/main-structures/table-cell';
import { TableRow } from '../../model/tables/main-structures/table-row';
import { IRichEditControl } from '../../interfaces/i-rich-edit-core';
import { CommandBase, CommandOptions, CommandSimpleOptions, ICommandOptions } from '../command-base';
import { SimpleCommandState } from '../command-states';
import { TableNavDirection } from '../../selection/table-nav-direction';
export declare class SelectTableCommandBase extends CommandBase<SimpleCommandState> {
    getState(): SimpleCommandState;
    isEnabled(): boolean;
    addSelection(firstPos: number, lastPos: number, isFirstSelection: boolean, visibleModelPosition?: number): void;
    isEnabledInReadOnlyMode(): boolean;
}
export declare class SelectTableCellCommand extends SelectTableCommandBase {
    executeCore(_state: SimpleCommandState, _options: ICommandOptions): boolean;
}
export declare class ExtendSelectTableCellCommand extends SelectTableCellCommand {
    addSelection(firstPos: number, lastPos: number, _isFirstSelection: boolean): void;
}
export declare class SelectTableColumnCommand extends SelectTableCommandBase {
    DEPRECATEDConvertOptionsParameter(parameter: any): {
        table: Table;
        columnIndices: number[];
    };
    executeCore(_state: SimpleCommandState, options: CommandSimpleOptions<{
        table: Table;
        columnIndices: number[];
    }>): boolean;
}
export declare class ExtendSelectTableColumnCommand extends SelectTableColumnCommand {
    addSelection(firstPos: number, lastPos: number, _isFirstSelection: boolean): void;
}
export declare class SelectTableRowCommandOptions extends CommandOptions {
    rows: TableRow[];
    forwardDirection: boolean;
    constructor(control: IRichEditControl, table: Table, rowIndices: number[], forwardDirection: boolean);
}
export declare class SelectTableRowCommand extends SelectTableCommandBase {
    executeCore(_state: SimpleCommandState, options: SelectTableRowCommandOptions): boolean;
}
export declare class ExtendSelectTableRowCommand extends SelectTableRowCommand {
    addSelection(firstPos: number, lastPos: number, _isFirstSelection: boolean): void;
}
export declare class SelectTableCommand extends SelectTableCommandBase {
    executeCore(_state: SimpleCommandState): boolean;
}
export declare class ExtendSelectTableCommand extends SelectTableCommand {
    addSelection(firstPos: number, lastPos: number, _isFirstSelection: boolean): void;
}
export interface SelectTableCellsRangeOptions {
    extendSelection?: boolean;
    singleCellEntryDirection?: TableNavDirection;
    singleCellShrinkDirection?: TableNavDirection;
    textSelectionAnchorPosition?: number;
    textSelectionActivePosition?: number;
    textSelectionEndOfLine?: boolean;
}
export interface SelectTableCellsRangeCommandOptions extends SelectTableCellsRangeOptions {
    firstCell: TableCell;
    lastCell: TableCell;
}
export declare class SelectTableCellsRangeCommand extends SelectTableCommandBase {
    executeCore(_state: SimpleCommandState, options: CommandSimpleOptions<SelectTableCellsRangeCommandOptions>): boolean;
}
