import type { InstallProfile } from "./installer.js"; import { MemPalaceCommandRunner, MemPalaceMcpPlan, MemPalaceReadiness } from "./mempalace.js"; import { OfficeCliReadiness } from "./officecli.js"; export interface DoctorOptions { opencodeHome: string; ailiHome: string; profile?: InstallProfile; skills?: string[]; skillGroups?: string[]; mempalaceRunner?: MemPalaceCommandRunner; } export interface DoctorSummary { ok: boolean; profile: InstallProfile; selectedSkills: string[]; install: { ok: boolean; required: Array<{ type: string; name: string; installed: boolean; }>; }; required: Array<{ type: string; name: string; installed: boolean; }>; source: { ok: boolean; sharedSkills: { status: "ready" | "missing"; path: string; }; manifestDrift: { ok: boolean; agents: { missing: string[]; unmanifested: string[]; }; commands: { missing: string[]; unmanifested: string[]; }; skills: { missing: string[]; unmanifested: string[]; }; issues: string[]; }; agentsMd: { status: "fresh" | "stale" | "missing"; path: string; templatePath: string; issues: string[]; }; generated: { status: "ready" | "missing" | "drift"; paths: string[]; issues: string[]; }; }; defaultAgent: string | null; roseModel: string | null; playwright: "configured" | "missing-optional"; codegraph: { opencodeMcp: "configured" | "missing-optional"; projectIndex: { status: "initialized" | "not-initialized-optional"; root: string; marker: string; nextStep?: string; }; }; graphifyCli: { status: "installed" | "missing"; observedVersion?: string; reason?: string; ownership: "upstream"; }; graphifyGlobalSkill: { status: "registered" | "missing" | "invalid"; path: string; versionStampPath: string; referencesPath: string; version?: string; referencesPresent: boolean; issues: string[]; ownership: "upstream"; }; officecli: OfficeCliReadiness; mempalace: MemPalaceReadiness; mempalaceMcp: MemPalaceMcpPlan; plugins: Array<{ name: string; status: "missing-optional" | "unverified"; }>; unavailableCapabilities: Array<{ name: string; reason: string; }>; } export declare function runDoctor(options: DoctorOptions): Promise;