export type MemoryMode = "off" | "on"; export declare const DEFAULT_REVIEW_MODEL = "gpt-5-mini"; export declare const DEFAULT_MIN_MESSAGES = 4; export declare const DEFAULT_MEMORY_NOTE_TITLE_CAP = 12; export declare const DEFAULT_MEMORY_NOTE_CHAR_CAP = 1200; export declare const DEFAULT_MEMORY_TOPIC_CAP = 10; export declare const DEFAULT_MEMORY_TOPIC_CHAR_CAP = 800; export declare const DEFAULT_MEMORY_DIRECTIVE_CAP = 12; export declare const DEFAULT_MEMORY_DIRECTIVE_CHAR_CAP = 1200; export declare const DEFAULT_MEMORY_NOTE_AUTO_KEEP = 0; export interface MemoryConfig { memoryMode: MemoryMode; memoryReviewModel: string; memoryReviewMinMessages: number; memoryNoteTitleCap: number; memoryNoteCharCap: number; memoryTopicCap: number; memoryTopicCharCap: number; memoryDirectiveCap: number; memoryDirectiveCharCap: number; memoryNoteAutoKeep: number; } export type MemoryConfigKey = "memoryMode" | "memoryReviewModel" | "memoryReviewMinMessages" | "memoryNoteTitleCap" | "memoryNoteCharCap" | "memoryTopicCap" | "memoryTopicCharCap" | "memoryDirectiveCap" | "memoryDirectiveCharCap" | "memoryNoteAutoKeep"; export interface ReadConfigOptions { /** Override the home dir (defaults to os.homedir()); used in tests. */ homeDir?: string; } export interface SetConfigOptions extends ReadConfigOptions { /** "project" (default) writes .omp/config.json under ompRoot(cwd); "global" * writes ~/.omp/config.json. */ scope?: "project" | "global"; } export declare function readMemoryConfig(cwd: string, opts?: ReadConfigOptions): MemoryConfig; /** Persist a single memory key, preserving all other keys in that file. Atomic. * Writes the project file by default, or the global ~/.omp file with scope. */ export declare function setMemoryConfigValue(cwd: string, key: MemoryConfigKey, value: string, opts?: SetConfigOptions): void; /** Remove a key from one scope's config file (atomic; no-op if absent). Used so * a global `memory-mode` write isn't silently shadowed by a stale PROJECT key — * readMemoryConfig merges project OVER global, so the project copy must go. */ export declare function unsetMemoryConfigValue(cwd: string, key: MemoryConfigKey, opts?: SetConfigOptions): void; /** Persist several memory keys in ONE atomic read-modify-write, so enabling * memory never leaves `memoryMode=on` paired with a stale model. */ export declare function setMemoryConfigValues(cwd: string, entries: Partial>, opts?: SetConfigOptions): void;