export interface ConfigPatchEntry { /** Key path into the document, e.g. ["gateway", "host"]. */ path: (string | number)[]; /** New value. `undefined` means "leave this key alone" so callers can build the * list unconditionally instead of pushing entries behind ifs. */ value: unknown; } /** Distinguishable from a programming error so callers can report it to the operator * rather than crash. `code` carries the fs errno when the read is what failed, which * is how a caller tells "no config yet" (ENOENT) from "cannot read it" (EACCES). */ export declare class ConfigDocumentError extends Error { readonly code?: string; constructor(message: string, code?: string); } /** * Apply `entries` to the config at `configPath`, returning whether anything changed. The * document API rather than parse/dump, which would reformat a hand-edited, comment-heavy * file to change one key. No-op entries are skipped and writes are atomic and 0600: the * running gateway watches this file, and the auth token lives beside these keys. */ export declare function patchConfigFile(configPath: string, entries: ConfigPatchEntry[]): boolean; //# sourceMappingURL=config-document.d.ts.map