import type { DoctorMemoryRepairPreviewAction } from "./inventory.js";
import type { DoctorMemoryRepairExecutionAuditPlanRecord } from "./repair-audit-plan.js";
export type DoctorMemoryRepairFsNodeKind = "missing" | "file" | "directory" | "symlink" | "fifo" | "socket" | "block-device" | "char-device" | "unknown";
export type DoctorMemoryRepairFsPathRole = "target" | "backup-root" | "backup-manifest" | "snapshot" | "audit-root" | "audit-record";
export type DoctorMemoryRepairFsNodeState = {
    path: string;
    kind: DoctorMemoryRepairFsNodeKind;
    realPath?: string;
    linkCount?: number;
};
export type DoctorMemoryRepairFsPathState = DoctorMemoryRepairFsNodeState & {
    parent?: DoctorMemoryRepairFsNodeState;
};
export type DoctorMemoryRepairFsSafetyInput = {
    auditPlan: DoctorMemoryRepairExecutionAuditPlanRecord;
    pathStates: DoctorMemoryRepairFsPathState[];
};
export type DoctorMemoryRepairFsSafetyCheckedPath = {
    role: DoctorMemoryRepairFsPathRole;
    path: string;
    action?: DoctorMemoryRepairPreviewAction;
    ok: boolean;
    reasons: string[];
};
export type DoctorMemoryRepairFsSafetyDecision = {
    ok: boolean;
    safeToOpen: boolean;
    dryRun: true;
    noWritePerformed: true;
    checkedPaths: DoctorMemoryRepairFsSafetyCheckedPath[];
    reasons: string[];
};
export declare function evaluateMemoryRepairFsSafety(input: DoctorMemoryRepairFsSafetyInput): DoctorMemoryRepairFsSafetyDecision;
