import { CheckedState } from '@radix-ui/react-checkbox';
/**
 * Props for the useDataTable hook.
 * @template TData - The type of the data items.
 */
export interface UseDataTableProps<TData> {
    /** Array of data rows. */
    rows?: TData[];
    /** Array of initially selected row keys. */
    defaultSelectedRows?: TData[keyof TData][];
}
/**
 * useDataTable manages row selection state for data tables.
 * Provides helpers to select all on current page, select one, and query selection.
 *
 * @template TData - Row data type.
 * @param rows - Current rows rendered on the page.
 * @param defaultSelectedRows - Pre-selected row keys.
 * @returns {Object} Row selection state and handlers
 * @returns {TData[keyof TData][] | undefined} selectedRows - Array of selected row keys
 * @returns {(key: TData[keyof TData]) => boolean} isRowSelected - Check if a specific row is selected
 * @returns {(rowKey: keyof TData) => CheckedState} isAllRowsSelected - Check selection state of all rows on current page
 * @returns {(rowKey: keyof TData, checked: boolean) => void} handleSelectAllRows - Toggle selection of all rows on current page
 * @returns {(key: TData[keyof TData], checked: boolean) => void} handleSelectRow - Toggle selection of a specific row
 */
export declare const useDataTable: <TData>({ rows, defaultSelectedRows, }: UseDataTableProps<TData>) => {
    selectedRows: TData[keyof TData][] | undefined;
    isRowSelected: (key: TData[keyof TData]) => boolean;
    isAllRowsSelected: (rowKey: keyof TData) => CheckedState;
    handleSelectAllRows: (rowKey: keyof TData, checked: boolean) => void;
    handleSelectRow: (key: TData[keyof TData], checked: boolean) => void;
};
//# sourceMappingURL=useDataTable.d.ts.map