import type { TableRowEntryId } from "../../root/DataGridTable.types";
import type { ItemDetail } from "../collectTableRowEntries";
import type { SelectionProps } from "./selection.types";
declare function canSelectTableRow<T>(enableRowSelection: SelectionProps<T>["enableRowSelection"], args: {
    row: T;
    id: TableRowEntryId;
}): boolean;
type MutateRowSelectionArgs<T> = {
    selectedRowIds: Set<TableRowEntryId>;
    rowId: TableRowEntryId;
    checked: boolean;
    childRowIdsById: Map<TableRowEntryId, TableRowEntryId[]>;
    itemDetails: Map<TableRowEntryId, ItemDetail<T>>;
    enableRowSelection?: SelectionProps<T>["enableRowSelection"];
};
/**
 * Traverses the row and its children and updates selected-state directly on given selectedRowIds set.
 * Returns true if any changes were made to the set, false otherwise.
 */
declare function mutateRowSelection<T>({ selectedRowIds, rowId, checked, childRowIdsById, itemDetails, enableRowSelection, }: MutateRowSelectionArgs<T>): boolean;
export { canSelectTableRow, mutateRowSelection };
