/**
 * Bounded curated memory: agent home `memories/MEMORY.md` + `USER.md`, §-delimited entries.
 * Snapshot for system prompt is captured at load time and not mutated until next load.
 */
import type { MemorySnapshot, MemoryStoreConfig } from './types.js';
export declare const MEMORY_ENTRY_DELIMITER = "\n\u00A7\n";
export declare class BuiltinMemoryStore {
    private readonly config;
    private memoryEntries;
    private userEntries;
    private snapshot;
    constructor(config: MemoryStoreConfig);
    /** When false, USER.md is omitted from the snapshot and should not be edited via `curated_memory`. */
    isUserProfileEnabled(): boolean;
    /** Agent-scoped curated memory directory (`~/.xopc/agents/<id>/memories/`). */
    get memoriesDir(): string;
    pathFor(target: 'memory' | 'user'): string;
    /**
     * Load from disk and freeze {@link getSnapshot}. Sync for agent creation (prefix cache stability).
     */
    loadFromDiskSync(): void;
    private readPathSync;
    private parseFileContent;
    getSnapshot(): MemorySnapshot;
    /**
     * Live entries for read/debug (may differ from snapshot after mutations).
     */
    getLiveEntries(target: 'memory' | 'user'): string[];
    add(target: 'memory' | 'user', content: string): Promise<{
        success: boolean;
        error?: string;
        message?: string;
    }>;
    replace(target: 'memory' | 'user', oldText: string, newContent: string): Promise<{
        success: boolean;
        error?: string;
        message?: string;
    }>;
    remove(target: 'memory' | 'user', oldText: string): Promise<{
        success: boolean;
        error?: string;
        message?: string;
    }>;
    private withFileLock;
    private reloadTargetFromDisk;
    private flushTargetToDisk;
    private charLimit;
    private renderBlock;
}
export declare function scanForThreats(content: string): string | null;
