import type { DoctorMemoryRepairPreviewAction } from "./inventory.js";
import { type DoctorMemoryRepairExecutionPolicyDecision, type DoctorMemoryRepairExecutionPolicyInput } from "./repair-execution-policy.js";
export type DoctorMemoryRepairAuditPlanSchemaVersion = 1;
export type DoctorMemoryRepairBackupEntryPlan = {
    proposalId: string;
    action: DoctorMemoryRepairPreviewAction;
    targetPath: string;
    snapshotPath: string;
    strategy: "snapshot-target-before-write";
};
export type DoctorMemoryRepairRollbackEntryPlan = {
    proposalId: string;
    action: DoctorMemoryRepairPreviewAction;
    targetPath: string;
    snapshotPath: string;
    strategy: "restore-or-remove-to-prewrite-state";
};
export type DoctorMemoryRepairExecutionAuditPlanRecord = {
    schemaVersion: DoctorMemoryRepairAuditPlanSchemaVersion;
    kind: "doctor.memory.repair.execution.audit-plan";
    executionId: string;
    createdAt: string;
    agentId: string;
    surface: DoctorMemoryRepairExecutionPolicyInput["surface"];
    operatorScope: DoctorMemoryRepairExecutionPolicyInput["operatorScope"];
    confirmation: DoctorMemoryRepairExecutionPolicyInput["confirmation"];
    previewFingerprint: string;
    acceptedPreviewFingerprint: string;
    selectedProposalIds: string[];
    allowedRoots: string[];
    dryRun: true;
    noWritePerformed: true;
    transcriptAccess: "none";
    bodyAccess: "none";
    backup: {
        required: true;
        root: string;
        manifestPath: string;
        entries: DoctorMemoryRepairBackupEntryPlan[];
    };
    audit: {
        required: true;
        root: string;
        recordPath: string;
        event: "planned";
    };
    rollback: {
        required: true;
        mode: DoctorMemoryRepairExecutionPolicyInput["plan"]["rollback"];
        entries: DoctorMemoryRepairRollbackEntryPlan[];
    };
};
export type DoctorMemoryRepairAuditPlanInput = {
    executionId: string;
    createdAt: string;
    policyInput: DoctorMemoryRepairExecutionPolicyInput;
    policyDecision: DoctorMemoryRepairExecutionPolicyDecision;
    backupRoot: string;
    auditRoot: string;
};
export type DoctorMemoryRepairAuditPlanDecision = {
    ok: boolean;
    plan?: DoctorMemoryRepairExecutionAuditPlanRecord;
    fingerprint?: string;
    reasons: string[];
};
export declare function createMemoryRepairAuditPlan(input: DoctorMemoryRepairAuditPlanInput): DoctorMemoryRepairAuditPlanDecision;
export declare function createMemoryRepairAuditPlanFingerprint(plan: DoctorMemoryRepairExecutionAuditPlanRecord): string;
