/** * The global `team-mode.jsonc` template + its idempotent writer. * * `renderConfigTemplate()` walks `CONFIG_KEYS` and nothing else, so a comment, * a key and its default can never drift from the registry. `ensureGlobalConfig` * writes it ATOMICALLY (tmp + rename) and ONLY when the file is absent — an * existing file is never overwritten (the user's edits are theirs). * * The plugin calls this at boot (see `createTmTools`), so a fresh install gets * a fully-commented config listing every key. `TM_CONFIG_AUTOCREATE=off` (an * internal/test switch) or the plugin option `autoCreate:false` turns it off. */ /** Render the full global config file (JSONC, every registry key listed). * * Every key is written as a COMMENT, so the auto-created file sets NOTHING: * the registry defaults answer, and a personality's `configDefaults` (v2's * `webfetchAllowedDomains: ["*"]`) is not shadowed by a file nobody edited. * A user uncomments the keys they want to change. The file is valid JSONC * (`{}` once the comments are masked). */ export declare function renderConfigTemplate(): string; export type AutoCreateState = "created" | "present" | "off" | "failed"; /** * Ensure the global config file exists. `autoCreate:false` writes nothing * and reports `off`. An existing file is left byte-for-byte untouched * (`present`). A missing one is written atomically (`created`). A write * that THROWS reports `failed` — distinct from `present`, so the boot row * does not claim a file exists when the write never landed. */ export declare function ensureGlobalConfig(globalDir: string, opts?: { autoCreate?: boolean; }): AutoCreateState; //# sourceMappingURL=config-template.d.ts.map