import type { CellRange, OnActiveCellChangedEventArgs, SlickEventHandler, SlickGrid } from '../interfaces/index';
import { SlickCellRangeSelector } from './index';
export interface CellSelectionModelOption {
    selectActiveCell?: boolean;
    cellRangeSelector: SlickCellRangeSelector;
}
export declare class SlickCellSelectionModel {
    protected _addonOptions?: CellSelectionModelOption;
    protected _canvas: HTMLElement | null;
    protected _eventHandler: SlickEventHandler;
    protected _grid: SlickGrid;
    protected _ranges: CellRange[];
    protected _selector: SlickCellRangeSelector;
    protected _defaults: {
        selectActiveCell: boolean;
    };
    onSelectedRangesChanged: import("../interfaces/slickEvent.interface").SlickEvent<CellRange[]>;
    pluginName: 'CellSelectionModel';
    constructor(options?: {
        selectActiveCell: boolean;
        cellRangeSelector: SlickCellRangeSelector;
    });
    get addonOptions(): CellSelectionModelOption | undefined;
    get canvas(): HTMLElement | null;
    get cellRangeSelector(): SlickCellRangeSelector;
    get eventHandler(): SlickEventHandler;
    init(grid: SlickGrid): void;
    destroy(): void;
    dispose(): void;
    getSelectedRanges(): CellRange[];
    rangesAreEqual(range1: CellRange[], range2: CellRange[]): boolean;
    refreshSelections(): void;
    removeInvalidRanges(ranges: CellRange[]): CellRange[];
    setSelectedRanges(ranges: CellRange[], caller?: string): void;
    protected handleActiveCellChange(_e: any, args: OnActiveCellChangedEventArgs): void;
    protected handleBeforeCellRangeSelected(e: any): boolean | void;
    protected handleCellRangeSelected(_e: any, args: {
        range: CellRange;
    }): void;
    protected handleKeyDown(e: any): void;
}
//# sourceMappingURL=slickCellSelectionModel.d.ts.map