import { TableNavDirection } from './table-nav-direction';
import { SubDocument } from '../model/sub-document';
import { SelectionIntervalsInfo } from './selection-intervals-info';
import { FixedInterval } from '@devexpress/utils/lib/intervals/fixed';
import { ICloneable, IEquatable } from '@devexpress/utils/lib/types';
export declare class TableCellSelectionState {
    anchorCellPosition: number;
    activeCellPosition: number;
    singleCellEntryDirection: TableNavDirection;
    singleCellShrinkDirection: TableNavDirection;
    textSelectionAnchorPosition: number;
    textSelectionActivePosition: number;
    textSelectionEndOfLine: boolean;
    constructor(anchorCellPosition: number, activeCellPosition: number, singleCellEntryDirection?: TableNavDirection, singleCellShrinkDirection?: TableNavDirection, textSelectionAnchorPosition?: number, textSelectionActivePosition?: number, textSelectionEndOfLine?: boolean);
    clone(): TableCellSelectionState;
    equals(other: TableCellSelectionState | null): boolean;
}
export declare class SelectionState implements ICloneable<SelectionState>, IEquatable<SelectionState> {
    intervalsInfo: SelectionIntervalsInfo;
    forwardDirection: boolean;
    endOfLine: boolean;
    keepX: number;
    pageIndex: number;
    tableSelection: TableCellSelectionState | null;
    get interval(): FixedInterval;
    get anchorPosition(): number;
    get activePosition(): number;
    get reversedAnchorPosition(): number;
    constructor(intervalsInfo: SelectionIntervalsInfo, forwardDirection: boolean, endOfLine: boolean, pageIndex: number);
    setEndOfLine(endOfLine: boolean): this;
    resetKeepX(): this;
    setKeepX(keepX: number): this;
    setForwardDirection(fd: boolean): this;
    setInterval(interval: FixedInterval): this;
    setIntervals(intervals: FixedInterval[]): this;
    setPosition(pos: number): this;
    addInterval(interval: FixedInterval): this;
    extendLastInterval(end: number): this;
    setPageIndex(pageIndex: number): this;
    setSubDocument(subDocument: SubDocument): this;
    setTableSelectionInfo(tableSelection: TableCellSelectionState): this;
    resetTableSelectionInfo(): this;
    private getNormalizedLastInterval;
    static getDefault(activeSubDocument: SubDocument): SelectionState;
    clone(): SelectionState;
    equals(obj: SelectionState): boolean;
    partiallyEquals(obj: SelectionState): boolean;
    tableSelectionEquals(a: TableCellSelectionState | null, b: TableCellSelectionState | null): boolean;
}
export declare class SelectionFloatingState {
    private state;
    private linkedIntervals;
    constructor(state: SelectionState);
    finalize(): SelectionState;
}
