/** Filename of the Codex config file inside `.codex/` */
export declare const CONFIG_FILENAME = "config.toml";
/**
 * Lisa-required settings to merge into `.codex/config.toml`. Host wins on
 * conflict for any key NOT in this list; for these keys, Lisa wins.
 *
 * Why these specific keys:
 * - `project_doc_max_bytes`: Codex truncates AGENTS.md / project doc walks
 *   at 32 KiB by default; Lisa's bundled rules can exceed that, so bump to
 *   64 KiB. Hosts can override upward if they need more headroom.
 */
export declare const LISA_REQUIRED_SETTINGS: Readonly<Record<string, unknown>>;
/** Lisa-required feature flags under `[features]` */
export declare const LISA_REQUIRED_FEATURES: Readonly<Record<string, boolean>>;
/** Result of a settings install pass */
export interface SettingsInstallResult {
    /** Files written, relative to `.codex/`. Used to update the manifest. */
    readonly managedFiles: readonly string[];
    /** Whether the config file was newly created (vs. patched in place) */
    readonly created: boolean;
}
/**
 * Install or update Lisa's required settings in `.codex/config.toml`.
 *
 * Uses `patch` semantics: only keys that differ are written; everything else
 * (comments, blank lines, key order, host-authored keys) is preserved
 * byte-for-byte.
 * @param destDir - Absolute path to the host project root
 * @returns Result describing what was written
 */
export declare function installSettings(destDir: string): Promise<SettingsInstallResult>;
/**
 * Merge Lisa-required settings into a TOML document. Pure function for
 * testability; the installer above is the I/O wrapper.
 *
 * If the existing content is empty, we synthesize a minimal TOML document
 * containing only Lisa's required keys.
 *
 * Subtle TOML correctness note: `toml-patch.patch()` appends new root-level
 * keys at the end of the document, which in TOML semantically attaches them
 * to the last `[section]` header — a bug for our use case. To work around
 * this, root keys that aren't already present are PREPENDED above the first
 * section header instead of going through `patch()`. Existing keys that
 * differ in value are still patched in place, preserving surrounding
 * comments and key order.
 * @param existingToml - Current contents of `.codex/config.toml` (or "")
 * @returns Merged TOML string with comments/format preserved
 */
export declare function mergeSettings(existingToml: string): string;
//# sourceMappingURL=settings-installer.d.ts.map