import type { Sample } from '../types/index.js';
import type { DependencyRequirements } from '../eval-core/dependency-checker.js';
export declare function parseYaml(text: string): unknown;
export interface LoadSamplesResult {
    samples: Sample[];
    requires?: DependencyRequirements;
    /** Samples bundle 的根目录,后续相对路径(mock.return_file / custom assertion fn /
     *  test set hash 等)都该锚到这里:
     *  - 单文件模式(samplesPath 指 .json/.yaml):baseDir = 文件所在目录
     *  - 目录模式(samplesPath 指目录):baseDir = 目录自身
     *  之前下游代码用 dirname(samplesPath) 算 baseDir,目录模式下得到的是上层目录(<skill>/),
     *  导致 .omk/fixtures/*.json 这种自然布局找不到。 */
    baseDir: string;
    /** 当 baseDir 是目录模式(用户传的是目录而不是单文件),目录里参与合并的所有 sample 文件
     *  绝对路径列表(已按文件名排序)。computeTestSetHash 用它枚举,不再对目录 readFileSync 抛 EISDIR。
     *  单文件模式下是 [samplesPath]。 */
    sourceFiles: string[];
    /** sample_id → source file。Authoring 命令需要把目录模式下的修复写回原文件。 */
    sampleSourceById: Record<string, string>;
}
/**
 * Load samples from a single file OR a directory of sample files.
 *
 * File mode (.json / .yaml / .yml):
 * - Array: `[ { sample_id, prompt, ... } ]` (legacy)
 * - Object wrapper: `{ requires?: { tools, files, env }, samples: [...] }`
 *
 * Directory mode (e.g. `<skill>/.omk/`):
 * - Glob `*.{json,yaml,yml}` minus reserved prefixes (report*, health*, _*)
 * - Concat samples in deterministic name-sorted order
 * - Cross-file `sample_id` must be unique
 * - `requires` from each file unioned together
 */
export declare function loadSamples(samplesPath: string): LoadSamplesResult;
export declare function validateSamples(samples: Sample[]): void;
//# sourceMappingURL=load-samples.d.ts.map