export interface UserConfig { stm_elf_path?: string; pyocd_python?: string; /** Python interpreter that has `crosspad-hil[all]` installed (used to spawn * `python -m crosspad_hil.serve`). Resolution at spawn time: this value → * $CROSSPAD_HIL_PYTHON → the tracer python (`pyocd_python` / * $CROSSPAD_TRACE_PYTHON) → "python3". Mirrors `pyocd_python`. */ hil_python?: string; probe_serial?: string; trace_dir?: string; /** Absolute path to STM32_Programmer_CLI (ST's flasher). Resolution order at * flash time: this config value → $STM32_PROG env → PATH lookup. Set when the * CubeProgrammer bundle is not on PATH. */ stm_programmer_cli?: string; /** How `start` surfaces the live dashboard: "vscode" (default — agent replies * with the link; user clicks → VS Code Simple Browser via externalUriOpeners; * system-browser fallback after ~30s if unopened), "browser" (open the system * browser immediately), or "none" (never auto-open). */ ui_open?: string; } /** @internal test-only — override the config file path. Pass null to clear. */ export declare function _setConfigPathForTest(p: string | null): void; export declare function userConfigPath(): string; export declare function loadUserConfig(): UserConfig; /** Resolution order: config file → env var → default. envValue is the *already-read* process.env value. */ export declare function resolveConfigValue(key: keyof UserConfig, _envName: string, envValue: string | undefined, defaultValue: string): string; export declare function setConfigValue(key: keyof UserConfig, value: string): void;