import type { McpDoctorFixReport } from "../mcp.js";
import type { KimiGlobalSyncReport } from "../../util/fs.js";
export type DoctorFixSeverity = "info" | "warn" | "error";
export type DoctorFixLevel = "safe" | "recommended" | "aggressive";
export type DoctorFixSafetyTier = DoctorFixLevel | "global";
export type DoctorFixOperationStatus = "planned" | "applied" | "skipped" | "blocked" | "failed";
export interface DoctorFixOperation {
    id: string;
    category: string;
    severity: DoctorFixSeverity;
    safetyTier: DoctorFixSafetyTier;
    status: DoctorFixOperationStatus;
    before?: unknown;
    after?: unknown;
    backupPath?: string;
    verifyCheck?: string;
    reason?: string;
}
export interface DoctorCheckSummary {
    warnings: number;
    errors: number;
}
export interface DoctorPostFixCheck {
    before: DoctorCheckSummary;
    after: DoctorCheckSummary;
    fixed: number;
    remainingWarnings: number;
    remainingErrors: number;
    requiresManualAction: boolean;
}
export interface DoctorFixPlan {
    operations: DoctorFixOperation[];
    changed: boolean;
    dryRun: boolean;
    backups: string[];
    manualActions: string[];
    postCheck?: DoctorPostFixCheck;
}
export interface DoctorFixReport {
    changed: boolean;
    actions: string[];
    skipped: string[];
    mcp?: McpDoctorFixReport;
    globalSync?: KimiGlobalSyncReport;
    backups?: string[];
    dryRun?: boolean;
    fixPlan: DoctorFixPlan;
}
export interface DoctorFixContext {
    dryRun: boolean;
    fixLevel: DoctorFixLevel;
    plan: DoctorFixPlan;
}
export declare function createDoctorFixPlan(dryRun: boolean): DoctorFixPlan;
export declare function addDoctorFixOperation(ctx: DoctorFixContext, operation: DoctorFixOperation): void;
export declare function recordDoctorFix(ctx: DoctorFixContext, operation: Omit<DoctorFixOperation, "status" | "severity" | "safetyTier"> & {
    status?: DoctorFixOperationStatus;
    severity?: DoctorFixSeverity;
    safetyTier?: DoctorFixSafetyTier;
}): void;
export declare function createDoctorFixReport(ctx: DoctorFixContext, mcp?: McpDoctorFixReport, globalSync?: KimiGlobalSyncReport): DoctorFixReport;
export declare function summarizeDoctorChecks(results: {
    status: string;
}[]): DoctorCheckSummary;
export declare function buildDoctorPostFixCheck(beforeResults: {
    status: string;
}[], afterResults: {
    status: string;
}[], plan: DoctorFixPlan): DoctorPostFixCheck;
