import { SlickEvent, SlickEventData, SlickEventHandler, SlickRange } from '../core/index.js';
import type { SlickDataView } from '../core/slickDataview.js';
import type { SlickGrid } from '../core/slickGrid.js';
import type { GridOption, HybridSelectionModelOption, SelectionModel } from '../index.js';
import type { CustomDataView, OnActiveCellChangedEventArgs } from '../interfaces/index.js';
import { SlickCellRangeSelector } from './slickCellRangeSelector.js';
export declare class SlickHybridSelectionModel implements SelectionModel<HybridSelectionModelOption> {
    readonly pluginName = "HybridSelectionModel";
    onSelectedRangesChanged: SlickEvent<SlickRange[]>;
    protected _cachedPageRowCount: number;
    protected _dataView?: CustomDataView | SlickDataView;
    protected _grid: SlickGrid;
    protected _eventHandler: SlickEventHandler;
    protected _prevSelectedRow?: number;
    protected _prevKeyDown: string;
    protected _ranges: SlickRange[];
    protected _selector?: SlickCellRangeSelector;
    protected _isRowMoveManagerHandler: any;
    protected _activeSelectionIsRow: boolean;
    protected _options: HybridSelectionModelOption;
    protected _defaults: HybridSelectionModelOption;
    constructor(options?: Partial<HybridSelectionModelOption>);
    get eventHandler(): SlickEventHandler;
    get gridOptions(): GridOption;
    set activeSelectionIsRow(value: boolean);
    init(grid: SlickGrid): void;
    destroy(): void;
    dispose(): void;
    getOptions(): HybridSelectionModelOption;
    setOptions(options: Partial<HybridSelectionModelOption>): void;
    removeInvalidRanges(ranges: SlickRange[]): SlickRange[];
    rangesAreEqual(range1: SlickRange[], range2: SlickRange[]): boolean;
    protected rangesToRows(ranges: SlickRange[]): number[];
    protected rowsToRanges(rows: number[]): SlickRange[];
    protected getRowsRange(from: number, to: number): number[];
    getCellRangeSelector(): SlickCellRangeSelector | undefined;
    getSelectedRanges(): SlickRange[];
    getSelectedRows(): number[];
    setSelectedRows(rows: number[]): void;
    /** Provide a way to force a recalculation of page row count (for example on grid resize) */
    resetPageRowCount(): void;
    setSelectedRanges(ranges: SlickRange[], caller?: string, selectionMode?: string): void;
    currentSelectionModeIsRow(): boolean;
    refreshSelections(): void;
    rowSelectionModelIsActive(data: OnActiveCellChangedEventArgs): boolean;
    protected handleActiveCellChange(_e: SlickEventData, args: OnActiveCellChangedEventArgs): void;
    protected isKeyAllowed(key: string, isShiftKeyPressed?: boolean): boolean;
    protected handleKeyDown(e: SlickEventData): void;
    protected handleClick(e: SlickEventData): boolean | void;
    /** is the column a column Row Move OR Select Row Move */
    isHandlerColumn(columnIndex: number): boolean;
    protected handleBeforeCellRangeSelected(e: SlickEventData, cell: {
        row: number;
        cell: number;
    }): boolean | void;
    protected handleCellRangeSelected(_e: SlickEventData, args: {
        range: SlickRange;
        selectionMode: string;
        allowAutoEdit?: boolean;
        caller: 'onCellRangeSelecting' | 'onCellRangeSelected';
    }): boolean;
}
//# sourceMappingURL=slickHybridSelectionModel.d.ts.map