import type { UserQuestionAnswerItem, UserQuestionInterrupt, UserQuestionItem, UserQuestionOptionItem, UserQuestionResume } from '../../../../ag-ui/types/interrupt'; /** label 为该值的选项代表「Others 自定义输入」 */ export declare const OTHERS_OPTION_LABEL = "others"; /** 选项序号字母:0 -> A、1 -> B …… 超过 26 时回退为数字 */ export declare const toLetter: (index: number) => string; /** 归一化后的展示选项(含字母序号与 Others 标记),由选择题渲染组件内部使用 */ export type NormalizedUserQuestionOption = UserQuestionOptionItem & { isOthers: boolean; letter: string; }; /** * 用户回答问题(human-in-the-loop)的答案聚合与 resume payload 构建。 * * 设计目标:composable 只负责「收集每题答案 + 完成态计算 + payload 组装」, * 对「回答形态」(单选/多选/表单/任意自定义)零感知; * 各题如何作答与如何校验,全部下沉到对应的渲染组件(默认为选择题), * 渲染组件作答有效时回传已组装的 {@link UserQuestionAnswerItem},无效时回传 undefined。 * * @param getInterrupt 返回当前 UserQuestion 中断的 getter(响应式) */ export declare const useUserQuestion: (getInterrupt: () => undefined | UserQuestionInterrupt) => { questions: import("vue").ComputedRef; answeredCount: import("vue").ComputedRef; totalCount: import("vue").ComputedRef; completed: import("vue").ComputedRef; getAnswer: (questionIndex: number) => undefined | UserQuestionAnswerItem; setAnswer: (questionIndex: number, answer: undefined | UserQuestionAnswerItem) => void; buildResolvePayload: () => UserQuestionResume; buildSkipPayload: () => UserQuestionResume; }; /** * 自由文本 resume(用户在 chat-input 直接输入而非走结构化选择)。 * 多题场景下信息有损:统一作为单条 Others 自由文本回传。 */ export declare const buildSkipResumePayload: (interrupt?: UserQuestionInterrupt) => UserQuestionResume;