import { type CadenceConfig } from '@manehorizons/cadence-types'; import type { EditableField } from './fields.js'; /** Set a nested value by path, creating intermediate objects. Lifted from config.ts. */ export declare function setPath(obj: Record, path: string[], value: unknown): void; /** Read a nested value by path, or undefined. Lifted from config.ts. */ export declare function getPath(obj: Record, path: string[]): unknown; /** Coerce a raw string to bool/number/JSON/string. Lifted from config.ts (unchanged). */ export declare function coerce(raw: string): unknown; /** Apply a dottedKey→value answer map onto a clone of `config`. Pure. */ export declare function assembleConfig(config: CadenceConfig, answers: Map): unknown; /** A single old→new change for the confirm summary. */ export interface ConfigChange { key: string; from: string; to: string; } /** List only the curated keys whose value changed between `oldCfg` and `candidate`. */ export declare function diffConfig(oldCfg: CadenceConfig, candidate: unknown, fields: EditableField[]): ConfigChange[]; /** Validation outcome — either the parsed config or the offending field + message. */ export type ValidationResult = { ok: true; config: CadenceConfig; } | { ok: false; field: string; message: string; }; /** Validate a candidate against the schema, naming the offending field on failure. */ export declare function validateCandidate(candidate: unknown): ValidationResult; //# sourceMappingURL=apply.d.ts.map