import { IRangeWithCoord, ISelectionCellWithMergeInfo, ISelectionWithCoord, Nullable, RANGE_TYPE } from '@univerjs/core';
export declare class SelectionRenderModel implements IRangeWithCoord {
    private _startColumn;
    private _startRow;
    private _endColumn;
    private _endRow;
    private _startX;
    private _startY;
    private _endX;
    private _endY;
    /**
     * The highlight cell of a selection. aka: current cell
     */
    private _primary;
    private _rangeType;
    get startColumn(): number;
    get startRow(): number;
    get endColumn(): number;
    get endRow(): number;
    get startX(): number;
    get startY(): number;
    get endX(): number;
    get endY(): number;
    get currentCell(): Nullable<ISelectionCellWithMergeInfo>;
    get rangeType(): RANGE_TYPE;
    /**
     * @deprecated, Duplicate with `Rectangle`
     */
    isEqual(rangeWithCoord: IRangeWithCoord): boolean;
    /**
     * @deprecated, Duplicate with `Rectangle`
     */
    isInclude(rangeWithCoord: IRangeWithCoord): boolean;
    highlightToSelection(): IRangeWithCoord | undefined;
    getRange(): IRangeWithCoord;
    getCell(): Nullable<ISelectionCellWithMergeInfo>;
    getRangeType(): RANGE_TYPE;
    setRangeType(rangeType: RANGE_TYPE): void;
    getValue(): ISelectionWithCoord;
    setValue(newSelectionRange: IRangeWithCoord, currentCell: Nullable<ISelectionCellWithMergeInfo>): void;
    /**
     * Set primary cell.
     *
     * TODO @lumixraku there are 3 concepts for same thing, primary and current and highlight, primary is better cuz selectionModel is using primary.
     * @param currentCell
     */
    setCurrentCell(currentCell: Nullable<ISelectionCellWithMergeInfo>): void;
    clearCurrentCell(): void;
}
