/** * ParameterSpace — Generate config variants for parameter sweeps. * * Supports: * - Grid search (full factorial): every combination of parameter values * - Latin Hypercube Sampling (LHS): space-filling random sampling * * Each sample is a set of overrides that can be deep-merged into a base config. * * @see ExperimentOrchestrator — consumes the samples this module produces */ export interface ParameterRange { /** Dot-path into the config object (e.g., "material.youngs_modulus") */ path: string; /** Explicit values to sweep (takes priority over min/max/steps) */ values?: number[]; /** Range mode: min value */ min?: number; /** Range mode: max value */ max?: number; /** Range mode: number of evenly-spaced steps (inclusive of endpoints) */ steps?: number; } export interface ParameterSample { /** Index in the sweep */ index: number; /** Parameter overrides: path → value */ overrides: Map; } export declare class ParameterSpace { private ranges; private resolvedValues; constructor(ranges: ParameterRange[]); /** Total number of grid-search samples (product of all range sizes). */ get gridSize(): number; /** Number of parameters being swept. */ get dimensions(): number; /** * Full factorial grid search. * Returns every combination of parameter values. */ gridSearch(): ParameterSample[]; /** * Latin Hypercube Sampling. * Generates n space-filling samples across the parameter space. * Each parameter range is divided into n equal strata; each stratum * is sampled exactly once, with random permutation across dimensions. */ latinHypercube(n: number, seed?: number): ParameterSample[]; } /** * Deep-merge parameter overrides into a base config. * Supports dot-path notation: "material.youngs_modulus" → config.material.youngs_modulus */ export declare function applyOverrides>(base: T, overrides: Map): T; //# sourceMappingURL=ParameterSpace.d.ts.map