/** * manager-category-io.ts, whole-category patch/remove persistence. * * Split out of manager.ts (line cap). These two operations exist for the config * fields that cannot be expressed as a scalar dot-path (arrays, open maps), and * they have to respect key ownership for the same reason `set` does: a category * patch that wrote `surfaces.*` into a surface silo would re-create exactly the * duplication the daemon config migration removes. */ export interface CategoryIoDeps { readonly configPath: string; readonly daemonTierPath: string | null; readonly writeRawGlobal: (raw: Record) => void; readonly markDaemonKey: (key: string, present: boolean) => void; } /** * Shallow-merge `patch` into the on-disk representation of `categoryName`. * Daemon-owned leaves are routed to the daemon store instead of the surface * file. Returns nothing; the caller has already updated the live config. */ export declare function persistCategoryPatch(categoryName: string, patch: Record, live: Record, deps: CategoryIoDeps): void; /** Remove one key from a category's on-disk representation (or the daemon store). */ export declare function persistCategoryKeyRemoval(categoryName: string, key: string, deps: CategoryIoDeps): void; //# sourceMappingURL=manager-category-io.d.ts.map