export interface VarDecl {
    key: string;
    description: string;
    initialValue: unknown;
}
/**
 * Translate a prompt template by replacing @{key} (input) and ${key}
 * (output) placeholders with descriptive metadata, then append the
 * v-j 系统指令段告诉 LLM：
 *   - 业务变量存 `.ccweb-flow-train.json`（${key} 引用的字段最好也更新）
 *   - 运行进度存 `.ccweb/tracks/<basename>.run-state.json`
 *   - 完成任务后必须改 run-state.json 把 `nodes.<nodeId>.done` 设为 true
 *   - 任务不可完成时把 `nodes.<nodeId>.failed` 设为 true + 写 reason 字符串
 *
 * spec §7（v-j 修订）：完成判定从 "outputs 改了 = 完成" 改为 "LLM 自报 done=true"，
 * 避免 LLM 第一次 Edit 就被强制结束节点（影响多步操作场景）。
 *
 * v-19-b：发给 LLM 的英文化（CLI LLM 对英文 prompt 执行更稳定）。变量
 * description 字段是用户数据，保留原始（多语言）。codex P1 顺修：所有提到 run-state.json
 * 的句子都用完整路径插值，防止 LLM 误改项目根的 run-state.json；P2 加 done/failed
 * 互斥提示 + outputs 更新指令用显式 slot 替代 `to ...` 省略号。
 *
 * Unknown keys (not in `variables`) are preserved literally to aid debugging.
 */
export declare function translatePrompt(template: string, variables: VarDecl[], snapshot: Record<string, unknown>, outputs: string[], ctx?: {
    basename: string;
    nodeId: string;
}): string;
//# sourceMappingURL=prompt-translator.d.ts.map