/**
 * 添加字段组件相关类型定义
 */
/** 保存模式 */
export type SaveMode = 'config-only' | 'first-5-rows' | 'all-rows';
/**
 * AI 字段配置
 *
 * @description
 * targetInfo 和 content 的区别：
 * - targetInfo: 补充字段名后的 prompt，用于接口请求
 *   例如: "根据以下内容生成摘要：变动数量：${Input_1}"
 * - content: 原始 prompt，用于编辑时回显
 *   例如: "根据以下内容生成摘要：${Input_1}"
 */
export interface AiFieldConfig {
    /** 字段名称 */
    fieldName: string;
    /** AI任务类型：信息提取、格式转化等 */
    aiTaskType: string;
    /**
     * 补充字段名后的 prompt 模板（用于接口请求）
     * 格式示例: "变动数量：${Input_1}"
     */
    targetInfo: string;
    /**
     * 原始 prompt 模板（用于编辑时回显）
     * 格式示例: "${Input_1}"
     */
    content: string;
    /** 模型选择 */
    model: string;
    /** 自动更新 */
    autoUpdate: boolean;
    /** 允许引用字段为空 */
    allowEmptyField: boolean;
    /** 字段描述 */
    fieldDescription?: string;
    /** 列code（保存时生成） */
    columnCode?: string;
}
/** 模型选项 */
export interface ModelOption {
    /** 模型标签 */
    label: string;
    /** 模型值 */
    value: string;
    /** 图标 */
    icon: string;
    /** 图标颜色 */
    iconColor: string;
    /** 描述 */
    description: string;
    /** 能力说明 */
    capability: string;
}
/** 字段项定义 */
export interface FieldItem {
    /** 字段标识 */
    dataIndex: string;
    /** 字段标题 */
    title: string;
    /** 图标 */
    icon?: string;
    /** 分组 */
    group?: string;
}
/** AI 字段配置面板 Props */
export interface AiFieldConfigPanelProps {
    /** 字段类型 */
    fieldType: string;
    /** 字段标签 */
    fieldLabel: string;
    /** 表格ID（用于API调用） */
    tableId?: string;
    /** 列code（编辑时传入） */
    columnCode?: string;
    /** 表格数据（用于获取行信息） */
    rawData?: any[];
    /** 是否正在保存 */
    saving?: boolean;
    /** 是否正在执行AI任务 */
    executing?: boolean;
    /** 初始 prompt 模板（编辑时传入） */
    initialPromptTemplate?: string;
    /** 是否为编辑状态 */
    isEditStatus?: boolean;
    /** 保存回调，返回保存模式和配置 */
    onSave: (config: AiFieldConfig, mode: SaveMode) => void;
    /** 取消回调 */
    onCancel: () => void;
}
/** 添加字段按钮 Props */
export interface AddFieldButtonProps {
    /** 视图ID */
    viewId: string;
    /** 为 false 时关闭 AI 字段区块与相关请求 */
    enableAiFields?: boolean;
    /** 为 false 时隐藏 lookup 入口 */
    enableLookup?: boolean;
    /** 为 false 时隐藏公式入口 */
    enableFormula?: boolean;
}
/** Prompt 编辑器 Props */
export interface PromptEditorProps {
    /** 值（包含 ${variable} 格式的变量） */
    value?: string;
    /** 值变化回调 */
    onChange?: (value: string) => void;
    /** 可选择的字段列表 */
    fields?: FieldItem[];
    /** 占位符 */
    placeholder?: string;
    /** 是否显示错误状态 */
    hasError?: boolean;
    /** 是否禁用 */
    disabled?: boolean;
    /** 最小高度 */
    minHeight?: number;
    /** 当前选中的模型 */
    model?: string;
    /** 模型变化回调 */
    onModelChange?: (model: string) => void;
}
/** Prompt 编辑器 Ref */
export interface PromptEditorRef {
    /** 聚焦 */
    focus: () => void;
    /** 在光标位置插入字段 */
    insertField: (field: FieldItem) => void;
    /** 获取已插入的字段列表 */
    getInsertedFields: () => string[];
}
