import { BaseCommand } from '../oclif/base-command.js'; import { type CliLang } from '../lib/i18n.js'; import { writeFixedSamplesToSources } from '../../inputs/sample-document.js'; import type { SampleFlags } from '../lib/cmd-flags.js'; import type { Report, Sample as SampleType } from '../../types/index.js'; import type { ResolvedSkillInput } from '../lib/resolve-skill-input.js'; export declare function sampleNextEvalCommand(resolved: Pick): string; /** --append 合并:已有用例原样保留,新用例逐条接在后面;sample_id 撞已有(或本批已用)时 * 自动加 `-2`/`-3` 后缀去重。模型每次从 s001 重编号,撞 id 不代表内容重复,所以是改名保留 * 而非丢弃(不做内容级去重)。`reserved` 为额外要避开的 id 集(目录模式跨同目录其它 sample * 文件去重用,见 collectDirSampleIds)。 */ export declare function mergeAppendSamples(existing: SampleType[], fresh: SampleType[], reserved?: ReadonlySet): SampleType[]; /** 目录模式 append 选写回目标:复用 listSampleFilesInDir 的排序/过滤(与 eval 目录合并同口径), * 优先 canonical `samples.json`,否则排序后第一个 —— 确定性、不依赖文件系统枚举顺序, * 用户可预测改哪个文件。无候选返回 null。 */ export declare function pickAppendTargetFile(dir: string): string | null; /** 把新用例追加进已有 sample 文件:读 → 合并(撞 id 去重)→ 保留原 json/yaml 格式与 * `{samples:[...]}` wrapper 写回。返回合并后总条数。 */ export declare function appendSamplesToFile(existingFile: string, fresh: SampleType[], reserved?: ReadonlySet): number; export declare function collectSampleDesignFailureIds(report: Pick, treatmentName: string): Set; export declare function assertFixReportMatchesCurrentInputs(params: { report: Pick; treatmentName: string; currentContentHash: string; samples: SampleType[]; samplesBaseDir?: string; sampleIds: Set; lang?: CliLang; }): void; export { writeFixedSamplesToSources }; export declare function runSampleFromTraces(flags: SampleFlags, lang: CliLang): Promise; export default class Sample extends BaseCommand { static description: string; static examples: { description: string; command: string; }[]; static args: { skillPath: import("@oclif/core/interfaces").Arg>; }; static flags: { lang: import("@oclif/core/interfaces").OptionFlag; batch: import("@oclif/core/interfaces").BooleanFlag; count: import("@oclif/core/interfaces").OptionFlag; model: import("@oclif/core/interfaces").OptionFlag; executor: import("@oclif/core/interfaces").OptionFlag; 'skill-dir': import("@oclif/core/interfaces").OptionFlag; focus: import("@oclif/core/interfaces").OptionFlag; append: import("@oclif/core/interfaces").BooleanFlag; 'no-mock': import("@oclif/core/interfaces").BooleanFlag; fix: import("@oclif/core/interfaces").BooleanFlag; 'reports-dir': import("@oclif/core/interfaces").OptionFlag; treatment: import("@oclif/core/interfaces").OptionFlag; 'from-traces': import("@oclif/core/interfaces").BooleanFlag; 'observations-dir': import("@oclif/core/interfaces").OptionFlag; skill: import("@oclif/core/interfaces").OptionFlag; }; run(): Promise; }