import { type ProjectRootResolution } from "../../util/fs.js";
import { getOmkResourceSettings } from "../../util/resource-profile.js";
import { type DoctorFixLevel } from "./fix-plan.js";
export interface CheckResult {
    name: string;
    status: "ok" | "warn" | "fail" | "info";
    message: string;
    metadata?: Record<string, unknown>;
}
export interface CheckCategory {
    title: string;
    checks: () => Promise<CheckResult[]>;
}
export interface JsonFileDiagnostic {
    path: string;
    exists: boolean;
    valid: boolean;
    error?: string;
}
export interface DoctorOptions {
    json?: boolean;
    soft?: boolean;
    fix?: boolean;
    global?: boolean;
    dryRun?: boolean;
    fixLevel?: DoctorFixLevel;
    verifyFix?: boolean;
    setDefaultProjectRoot?: string;
}
export type OmkResourceSettings = Awaited<ReturnType<typeof getOmkResourceSettings>>;
export interface DoctorCheckRun {
    categoryResults: Array<{
        title: string;
        results: CheckResult[];
    }>;
    allResults: CheckResult[];
}
export declare function semverGt(a: string, b: string): boolean;
export declare function isSecretKey(key: string): boolean;
export declare function redactSecrets(obj: unknown): unknown;
export declare function isNpmLauncherCommand(command: string | undefined): boolean;
export declare function isExpectedGlobalKimiFile(name: string): boolean;
export declare function inspectJsonFile(filePath: string): Promise<JsonFileDiagnostic>;
export declare function isRecord(value: unknown): value is Record<string, unknown>;
export declare function rootDiagnosticData(resolution: ProjectRootResolution): Record<string, unknown>;
export declare function safeOperationId(prefix: string, value: string): string;
export declare function readJsonValue(filePath: string): Promise<{
    exists: boolean;
    valid: boolean;
    value?: unknown;
    error?: string;
}>;
