import { type SelectionModel } from '../enums/index.js';
import type { GridOption, OnActiveCellChangedEventArgs, RowSelectionModelOption } from '../interfaces/index.js';
import { SlickCellRangeSelector } from '../extensions/slickCellRangeSelector.js';
import { SlickEvent, SlickEventData, SlickEventHandler, type SlickGrid, SlickRange } from '../core/index.js';
export declare class SlickRowSelectionModel implements SelectionModel {
    pluginName: 'RowSelectionModel';
    /** triggered when selected ranges changes */
    onSelectedRangesChanged: SlickEvent<SlickRange[]>;
    protected _options: RowSelectionModelOption;
    protected _eventHandler: SlickEventHandler;
    protected _inHandler: boolean;
    protected _grid: SlickGrid;
    protected _ranges: SlickRange[];
    protected _selector?: SlickCellRangeSelector;
    protected _defaults: RowSelectionModelOption;
    constructor(options?: RowSelectionModelOption);
    get addonOptions(): RowSelectionModelOption;
    get eventHandler(): SlickEventHandler;
    get gridOptions(): GridOption;
    init(grid: SlickGrid): void;
    destroy(): void;
    dispose(): void;
    disposeSelector(): void;
    getCellRangeSelector(): SlickCellRangeSelector | undefined;
    getSelectedRanges(): SlickRange[];
    getSelectedRows(): number[];
    refreshSelections(): void;
    setSelectedRows(rows: number[]): void;
    setSelectedRanges(ranges: SlickRange[], caller?: string): void;
    protected getRowsRange(from: number, to: number): number[];
    protected handleBeforeCellRangeSelected(e: SlickEventData, cell: {
        row: number;
        cell: number;
    }): boolean | void;
    protected handleCellRangeSelected(_e: SlickEventData, args: {
        range: SlickRange;
    }): boolean | void;
    protected handleActiveCellChange(_e: SlickEventData, args: OnActiveCellChangedEventArgs): void;
    protected handleClick(e: SlickEventData): boolean | void;
    protected handleKeyDown(e: SlickEventData): void;
    /** is the column a column Row Move OR Select Row Move */
    isHandlerColumn(columnIndex: number): boolean;
    protected rangesToRows(ranges: SlickRange[]): number[];
    protected rowsToRanges(rows: number[]): SlickRange[];
}
//# sourceMappingURL=slickRowSelectionModel.d.ts.map