import type { PrimaryKeyType } from '../../../../../../cn-ai-table/view/utils/primary-key';
/** useSelect 的 Props 类型 */
export interface UseSelectProps {
    /** 是否显示选择列 */
    showSelect?: boolean;
    /** 行选择配置 */
    rowSelection?: {
        /** 选中的行 keys（受控模式） */
        selectedRowKeys?: string[];
        /** 默认选中的行 keys（非受控模式） */
        defaultValue?: string[];
        /** 选择变化回调 */
        onChange?: (selectedRowKeys: string[], selectedRows: any[]) => void;
        /** 是否返回详细值 */
        useDetailValue?: boolean;
    };
    /** 选择变化回调（showSelect 模式） */
    onSelectChange?: (selectedRowKeys: string[], selectedRows: any[]) => void;
    /** 主键字段名或取值函数 */
    primaryKey?: PrimaryKeyType;
}
/** useSelect hook 的返回类型 */
export interface UseSelectReturn {
    /** 是否启用选择功能 */
    hasSelect: boolean;
    /** 存储选中信息的 ref，用于传递给按钮等组件 */
    storeSelectInfo: React.MutableRefObject<any[]>;
    /** 当前选中的行 keys */
    selectKeys: string[];
    /** 设置选中的行 */
    setSelectKeys: (selectedRowKeys: string[], selectedRows?: any[]) => void;
}
/**
 * 用于处理表格行选择的 hook
 * 支持受控和非受控模式
 *
 * @example
 * ```tsx
 * const { hasSelect, selectKeys, setSelectKeys } = useSelect({
 *   showSelect: true,
 *   rowSelection: { selectedRowKeys: [] },
 *   primaryKey: 'id',
 * });
 * ```
 */
export declare function useSelect(props: UseSelectProps): UseSelectReturn;
