import type { ParamValue } from "./types.js"; import type { RawEvalSchema } from "../eval/types.js"; /** * Options for param-aware eval loading. */ export interface ExpandEvalOptions { /** Suite-level params from .vally.yaml (lowest precedence). */ suiteParams?: Record; /** CLI-level params (highest precedence, scalars only). */ cliParams?: Record; } /** * Result of expanding a parameterized eval file. */ export interface ExpandedEvalResult { /** The resolved eval spec with expanded stimuli. */ spec: RawEvalSchema; /** Number of matrix combinations applied (1 = no expansion). */ combinationCount: number; /** Whether placeholders were processed using params and/or inline defaults. */ paramsUsed: boolean; /** The merged params that were used for interpolation (undefined when paramsUsed is false). */ resolvedParams?: Record; } /** * Load an eval file with param expansion. * * Pipeline: * 1. Read raw YAML text * 2. If there are no placeholders → load normally * 3. Discover & load params (suite + eval-level) * 4. Compute expansion matrix * 5. For each combination: interpolate → parse → extract stimuli * 6. Merge expanded stimuli into a single eval spec * * @param evalFilePath - Absolute path to the eval.yaml file * @param options - Optional suite-level params * @returns Expanded eval result */ export declare function loadEvalWithParams(evalFilePath: string, options?: ExpandEvalOptions): Promise; /** * Recursively produce a stable JSON string with sorted keys at every level. */ export declare function stableStringify(value: unknown): string; //# sourceMappingURL=expand.d.ts.map