import { type DoctorErrorCode } from "./doctor-codes.js"; import type { Output } from "./shared.js"; type CheckStatus = "ok" | "broken" | "warning"; /** Agent-install DX (design 2026-07-19 §CLI-3) — every check carries a stable * id; failures and warnings additionally carry the registry error_code and a * full fix_ref URL. Passing checks carry neither: a pass has no failure mode * to anchor, so agents filter `status !== "ok"` and follow fix_ref. */ export interface DoctorCheck { id: string; status: CheckStatus; message: string; error_code?: DoctorErrorCode; fix_ref?: string; } /** The ambient facts every check section reads, plus the four reporters they * write through. Sections take this and nothing else where they can, so the * order the checks array is built in stays visible in `runDoctor` rather than * being spread across the file. */ export interface DoctorRun { /** The TARGET project's root (a resolved absolute path), not the shell cwd. */ root: string; env: Record; json: boolean; checks: DoctorCheck[]; failures: number; warnings: number; note: (message: string) => void; pass: (id: string, message: string) => void; fail: (id: string, code: DoctorErrorCode, message: string) => void; warn: (id: string, code: DoctorErrorCode, message: string) => void; } export declare function createDoctorRun(input: { root: string; env: Record; json: boolean; output: Output; }): DoctorRun; export {};