import { default as RowsSelectionMenuItem } from './RowsSelectionMenuItem';
type RowsSelectionHandler<T> = {
    /**
     * If true, adds a checkbox column to enable row selection.
     * @type {boolean}
     */
    enabled: boolean;
    /**
     * An array of actions (e.g., "Delete", "Export") to display when rows are selected.
     * @type {RowsSelectionMenuItem<T>[]}
     */
    menuItems: RowsSelectionMenuItem<T>[];
    /**
     * Callback function triggered when row selection changes.
     * Called whenever users select or deselect rows using checkboxes.
     * @param selectedRecords - Array of currently selected row data objects
     */
    onSelect?: (selectedRecords: T[]) => void;
    /**
     * Controlled selection keys. When provided, the component operates in controlled mode —
     * the parent owns selection state. Must be used with `onSelectedKeysChange` to update keys.
     * Keys must match the `rowKey` field values of the data records.
     */
    selectedKeys?: string[];
    /**
     * Callback fired when the user changes selection in controlled mode.
     * Receives the full new set of selected keys (not a diff).
     * @param keys - Array of row key values currently selected
     */
    onSelectedKeysChange?: (keys: string[]) => void;
    /**
     * Optional className to override the default positioning of the bulk-action overlay.
     * Use this to prevent the overlay from overlapping an external toolbar or AppHeader.
     * Defaults to `-top-[60px]` when not provided.
     * @example overlayClassName="-top-[110px]"
     */
    overlayClassName?: string;
};
export default RowsSelectionHandler;
