import { type TableRecord, type TableRowState } from '../../types';
import { SelectionManagerBase } from './selection-manager-base';
/**
 * Selection manager for interactive selection when the selection mode of the table is
 * `TableRowSelectionMode.multiple`.
 */
export declare class MultiSelectionManager<TData extends TableRecord> extends SelectionManagerBase<TData> {
    private shiftSelectStartRowId?;
    private previousShiftSelectRowEndId?;
    handleRowSelectionToggle(rowState: TableRowState, isSelecting: boolean, shiftKey: boolean): boolean;
    handleRowClick(rowState: TableRowState, shiftKey: boolean, ctrlKey: boolean): boolean;
    handleActionMenuOpening(rowState: TableRowState): boolean;
    reset(): void;
    private tryUpdateRangeSelection;
    private removePreviousRangeSelection;
    private addNewRangeSelection;
    private updateSelectionStateForRange;
    private updateSelectionStateForRow;
    private getRowIndexForId;
}
