import { type AuthStatus, AuthStorage } from "../core/auth-storage.js";
import { ModelRegistry } from "../core/model-registry.js";
import { type CoreExtensionDiagnostic } from "../migrations.js";
export interface DoctorProviderStatus {
    provider: string;
    status: AuthStatus;
}
export interface DoctorReport {
    version: {
        local: string;
        latest?: string;
        updateAvailable?: boolean;
        error?: string;
    };
    providers: DoctorProviderStatus[];
    coreExtensions: CoreExtensionDiagnostic;
}
export interface DoctorReportOptions {
    version?: string;
    authStorage?: AuthStorage;
    modelRegistry?: ModelRegistry;
    latestVersion?: (currentVersion: string) => Promise<string | undefined>;
    coreExtensions?: CoreExtensionDiagnostic;
    agentDir?: string;
}
export declare function getCoreExtensionDiagnostic(agentDir?: string): CoreExtensionDiagnostic;
export declare function formatCurrentCoreExtensionsReport(agentDir?: string): string;
export declare function collectDoctorReport(options?: DoctorReportOptions): Promise<DoctorReport>;
export declare function formatDoctorReport(report: DoctorReport): string;
export declare function formatCoreExtensionsReport(extensions: CoreExtensionDiagnostic): string;
export declare function runDoctorCommand(args: string[]): Promise<boolean>;
//# sourceMappingURL=doctor.d.ts.map