/** * Param types — defines the eval.params.yaml format and internal representations. * * Params provide variable substitution and stimulus-level matrix expansion * for eval files. Array values expand stimuli; `!zip` tagged arrays zip * together instead of cross-producting. */ /** * A scalar param value (no expansion — substituted as-is). */ export type ScalarParamValue = string; /** * An array param value that expands via cross-product (default behavior). * Each element becomes a separate stimulus variant. */ export type ProductParamValue = string[]; /** * An array param value tagged with `!zip`. All `!zip` arrays in a params * file are zipped together (must have matching lengths). */ export interface ZipParamValue { readonly __tag: "zip"; readonly values: string[]; } /** * Discriminated union of all param value shapes. */ export type ParamValue = ScalarParamValue | ProductParamValue | ZipParamValue; /** * Parsed params config from a `.params.yaml` file. */ export interface ParamsConfig { /** Parameter definitions. Keys are param names, values are scalars or arrays. */ params: Record; /** * Optional template for naming expanded stimuli. * May contain `${KEY}` references which are resolved per combination. * If omitted, an auto-generated suffix is used (e.g. `[MODEL=gpt-4o, TIMEOUT=1m]`). */ name_suffix?: string; } /** * A single resolved parameter set — one combination from the matrix. * All values are strings (ready for interpolation). */ export type ResolvedParamSet = Record; /** * The full expansion result: all combinations from the matrix. */ export interface ParamExpansionResult { /** Ordered list of combinations. Length = total matrix cardinality. */ combinations: ResolvedParamSet[]; /** Names of params that participate in expansion (arrays, not scalars). */ expandingParams: string[]; /** User-provided name_suffix template, or undefined for auto-generation. */ nameSuffixTemplate?: string; } /** Type guard for ZipParamValue. */ export declare function isZipParamValue(value: ParamValue): value is ZipParamValue; /** Type guard for ProductParamValue (plain array). */ export declare function isProductParamValue(value: ParamValue): value is ProductParamValue; /** Type guard for ScalarParamValue. */ export declare function isScalarParamValue(value: ParamValue): value is ScalarParamValue; /** Keys that must never appear as param/config object keys (prototype pollution guard). */ export declare const UNSAFE_KEYS: ReadonlySet; //# sourceMappingURL=types.d.ts.map