import type { Table as TanStackTable } from '@tanstack/table-core';
import { TableRowSelectionMode } from '../types';
import type { TableRecord, TableRowState, TableNode } from '../types';
/**
 * Manages the behavior associated with interactive row selection for the table, including
 * handling when the selection mode of the table is changed.
 */
export declare class InteractiveSelectionManager<TData extends TableRecord> {
    private readonly tanStackTable;
    private selectionManager;
    private actionMenusPreserveSelection;
    constructor(tanStackTable: TanStackTable<TableNode<TData>>, selectionMode: TableRowSelectionMode, actionMenusPreserveSelection: boolean);
    handleRowSelectionToggle(rowState: TableRowState | undefined, isSelecting: boolean, shiftKey: boolean): boolean;
    handleRowClick(rowState: TableRowState | undefined, shiftKey: boolean, ctrlKey: boolean): boolean;
    handleActionMenuOpening(rowState: TableRowState | undefined): boolean;
    handleSelectionModeChanged(selectionMode: TableRowSelectionMode): void;
    handleActionMenusPreserveSelectionChanged(actionMenusPreserveSelection: boolean): void;
    handleSelectionReset(): void;
    getCurrentSelectedRecordIds(): string[];
    private createSelectionManager;
}
