/**
 * MAU.4 — fail-loud memory drift-detector (read-only diagnosis).
 *
 * Compares the auto-memory source files against the engine's import-marked
 * entries and reports divergence in three categories:
 *   - missing  — a memory on disk that the engine has no import entry for
 *   - stale    — present in both but the engine content differs from disk
 *   - orphaned — an import-marked engine entry whose source .md is gone
 *
 * This is the clause that makes a silent "the sync never ran" impossible to
 * recur: after a session-boundary reconcile (MAU.3) the store should be in
 * sync, so a NON-empty drift is a real bug to surface LOUDLY
 * ([[project_opensquid_runtime_failure_handling]]).
 *
 * READ-ONLY: it never writes/deletes (diagnosis only — mutation is MAU.1/2/3's
 * job). It must NOT swallow engine errors into a falsely-clean report — engine
 * failures propagate (throw) so the caller surfaces them, never reporting
 * `inSync: true` on a failed probe.
 *
 * Stale detection mirrors MAU.1: compare `memoryGet(id).content` against the
 * reader-trimmed file body (NOT a stored hash — `memoryUpdate` can't write a
 * hash, so content-compare is the single source of truth).
 *
 * Imports from: node:fs, node:path, ../../engine/client.js,
 *   ./auto_memory_importer.js, ./auto_memory_reader.js.
 * Imported by: src/setup/cli/doctor.ts (memory section); memory_drift.test.ts.
 */
import { type MemoryStore } from './memory_store_handle.js';
export interface MemoryDrift {
    inSync: boolean;
    /** On disk, no import entry in the engine. */
    missing: string[];
    /** In both, but engine content differs from the disk body. */
    stale: string[];
    /** Import-marked engine entry whose source .md is gone. */
    orphaned: string[];
    total: {
        disk: number;
        engineImported: number;
    };
}
export declare function computeMemoryDrift(dir: string, store: MemoryStore): Promise<MemoryDrift>;
/** One-line human summary for `opensquid doctor`. */
export declare function renderMemoryDrift(d: MemoryDrift): string;
//# sourceMappingURL=memory_drift.d.ts.map