export interface DoctorReport { forgeCli: string; forgePlugin: string; pi: string; cwd: string; agentDir: string; auth: { stored: string[]; configured: string[]; }; models: { total: number; available: number; samples: { provider: string; id: string; }[]; byProvider: Record; }; settings: { defaultProvider: string | undefined; defaultModel: string | undefined; }; migrations: { performed: string[]; deprecationWarnings: string[]; }; status: "ready" | "no-credentials" | "no-models"; guidance?: string; } export interface DoctorVersions { forgeCli: string; forgePlugin: string; pi: string; } /** * Run the doctor probe. Returns a structured report. * * Side effects: runs pi's `runMigrations(cwd)` — this is the same call pi * makes at startup, so doctor produces the same view pi would see. Without * it, users who only ever set `ANTHROPIC_API_KEY` would appear as having * no stored credentials, even though pi itself would migrate them on first * launch. */ export declare function runDoctorProbe(versions: DoctorVersions, cwd?: string): Promise; /** Format a doctor report for human reading. */ export declare function formatDoctorReport(r: DoctorReport): string; export interface DoctorOptions { json: boolean; } export declare function parseDoctorArgs(args: readonly string[]): DoctorOptions | { error: string; }; /** * Entry point invoked from `bin/forge.ts`. Returns the process exit code. * * Exit code: 0 when status === "ready", else 1 — matches pi's own * non-interactive `formatNoModelsAvailableMessage` exit semantics. */ export declare function runDoctor(args: readonly string[], versions: DoctorVersions): Promise;