import { type Config, type PartialConfig } from './config.schema.js'; import { type PathCtx } from './paths.js'; /** Absolute path to the user's config.json inside the config home. */ export declare function configFilePath(c?: PathCtx): string; /** * Load config with precedence: built-in defaults < config.json < environment. * Always returns a fully-populated Config. Throws ConfigError on invalid values. */ export declare function loadConfig(c?: PathCtx): Config; /** * The config EXACTLY as it sits on disk: no environment overrides folded in, no * defaults filled. Use this for a read-modify-write. * * `loadConfig` merges `CAS_*` environment overrides into what it returns, so * writing that back would bake a temporary env override permanently into the * file. Reading only the file means a command that flips one setting leaves the * rest of the file, and anything set purely through the environment, untouched. */ export declare function loadConfigFile(c?: PathCtx): PartialConfig; /** Persist config (partial allowed; missing keys fall back to defaults on load). */ export declare function saveConfig(config: PartialConfig, c?: PathCtx): void;