/// <reference types="react" />
/**
 * @title: 选项数据类型
 * @description:
 * @return {*}
 * @Author: WangHan
 * @Date: 2025-10-11 14:18
 */
export interface HolderOption {
    /** 显示的标签文本 */
    label: string;
    /** 选项的值（唯一标识） */
    value: any;
    /** 头像地址 */
    avatar?: string;
    /** 副标题/描述 */
    subtitle?: string;
    /** 其他字段 */
    [key: string]: any;
}
/**
 * @title: 模态框配置
 * @description:
 * @return {*}
 * @Author: WangHan
 * @Date: 2025-10-10 14:32
 */
export interface HolderModalProps {
    title?: string;
    confirmText?: string;
    showClose?: boolean;
}
/**
 * @title: 字段展示配置
 * @description:
 * @return {*}
 * @Author: WangHan
 * @Date: 2025-10-10 14:32
 */
export interface HolderDisplayProps {
    showAvatar?: boolean;
    showTitle?: boolean;
    showSubtitle?: boolean;
    isSkipable?: boolean;
    direction?: 'horizontal' | 'vertical';
    selectType?: 'single' | 'multiple';
    showExtraFields?: boolean;
    extraFields?: any[];
}
/**
 * @title: SelectHolder 组件属性
 * @description:
 * @return {*}
 * @Author: WangHan
 * @Date: 2025-10-11 14:18
 */
export interface PisellSelectHolderProps {
    /** 选项列表 */
    dataSource?: HolderOption[];
    /** 是否打开模态框 */
    open?: boolean;
    /** 关闭事件（右上角 X 按钮） */
    onClose?: () => void;
    /** 确认事件，返回选中的值 */
    onConfirm?: (selected: any) => void;
    /** 跳过事件（底部跳过按钮） */
    onSkip?: () => void;
    /** 点击添加按钮事件 */
    onAdd?: () => void;
    /** 当前选中的值(单选) 或 选中的值数组(多选) */
    value?: any;
    modalConfig?: HolderModalProps;
    displayConfig?: HolderDisplayProps;
    /** 是否禁用确认按钮 */
    disabled?: boolean;
    /** 错误提示文案 */
    errorTipText?: string;
    /** 是否显示添加按钮 */
    allowAdd?: boolean;
    /** 添加按钮文案 */
    addText?: string;
    /** 每行显示的列数 */
    columns?: number;
    /** 水平间距 */
    horizontalGap?: number;
    /** 垂直间距 */
    verticalGap?: number;
    /** 最大可选数量 */
    maxSelectedCount?: number;
    /** 是否内联模式（不显示弹窗，直接渲染内容，用于页面级别） */
    isInline?: boolean;
    /** 内联模式的容器样式类名 */
    className?: string;
    /** 内联模式的容器样式 */
    style?: React.CSSProperties;
}
export interface HolderItemProps {
    item: HolderOption;
    displayDirection?: 'horizontal' | 'vertical';
    displayConfig?: HolderDisplayProps;
    onClick?: (value?: any) => void;
    value?: any;
    isAddItem?: boolean;
}
