import { type ClientStatus } from './clients';
import { type AgentsStatus } from './agents';
import { type WorkspaceCacheView } from './workspaces';
interface ToolHealth {
    installed: boolean;
    version?: string;
    path?: string;
    identity?: string;
}
interface ToolsHealth {
    node: ToolHealth;
    npm: ToolHealth;
    git: ToolHealth;
}
interface AccountHealth {
    loggedIn: boolean;
    identity?: string;
}
interface CliHealth {
    version: string;
    latestVersion?: string;
    updateStatus: 'current' | 'update-available' | 'unknown';
    updateAvailable?: boolean;
    nextAction?: string;
}
export interface DoctorReport {
    cli: CliHealth;
    account: AccountHealth;
    tools: ToolsHealth;
    clients?: ClientStatus;
    agents?: AgentsStatus;
    workspaces?: ReturnType<typeof buildWorkspaceDoctorStatus>;
    nextActions: string[];
}
interface DoctorProviders {
    cli?: () => Promise<CliHealth>;
    clients?: () => Promise<ClientStatus>;
    agents?: () => Promise<AgentsStatus>;
    workspaces?: () => Promise<ReturnType<typeof buildWorkspaceDoctorStatus>>;
    tools?: () => Promise<ToolsHealth>;
    account?: () => Promise<AccountHealth>;
}
interface DoctorOptions {
    json?: boolean;
    section?: string;
    providers?: DoctorProviders;
    cwd?: string;
}
export declare function showDoctor(options?: DoctorOptions): Promise<DoctorReport | null>;
declare function buildWorkspaceDoctorStatus(cwd?: string): WorkspaceCacheView;
export {};
