import { z } from 'zod'; import { AuthMode, type Harness, Registered } from './harness/harness-detect.js'; /** Bumped whenever a consumer could misread the payload; the cookbook skill releases separately. */ export declare const DOCTOR_SCHEMA_VERSION = 3; /** Closed: three consumers match these ids by literal. */ export declare const CHECK_IDS: readonly ["cli-version", "mcp-connectivity", "harness-registration", "cli-credential", "cli-auth-call", "pi-adapter", "hermes-plugin"]; declare const checkStatusSchema: z.ZodEnum<{ pass: "pass"; fail: "fail"; warn: "warn"; skip: "skip"; }>; declare const checkScopeSchema: z.ZodEnum<{ cli: "cli"; harness: "harness"; info: "info"; }>; declare const doctorCheckSchema: z.ZodObject<{ id: z.ZodEnum<{ "cli-version": "cli-version"; "mcp-connectivity": "mcp-connectivity"; "harness-registration": "harness-registration"; "cli-credential": "cli-credential"; "cli-auth-call": "cli-auth-call"; "pi-adapter": "pi-adapter"; "hermes-plugin": "hermes-plugin"; }>; title: z.ZodString; status: z.ZodEnum<{ pass: "pass"; fail: "fail"; warn: "warn"; skip: "skip"; }>; detail: z.ZodString; harness: z.ZodNullable>; scope: z.ZodEnum<{ cli: "cli"; harness: "harness"; info: "info"; }>; }, z.core.$strip>; declare const doctorHarnessSchema: z.ZodObject<{ harness: z.ZodEnum<{ openclaw: "openclaw"; omp: "omp"; grok: "grok"; cursor: "cursor"; codex: "codex"; hermes: "hermes"; "command-code": "command-code"; kilo: "kilo"; opencode: "opencode"; pi: "pi"; cline: "cline"; "claude-code": "claude-code"; }>; detected: z.ZodBoolean; registered: z.ZodEnum; auth_mode: z.ZodEnum; recorded_auth_mode: z.ZodOptional>; proves_harness_reach: z.ZodBoolean; }, z.core.$strip>; declare const doctorRepairSchema: z.ZodObject<{ for: z.ZodString; action: z.ZodEnum<{ connect: "connect"; "auth-login": "auth-login"; }>; harness: z.ZodNullable>; command: z.ZodString; unattended_safe: z.ZodBoolean; }, z.core.$strip>; export declare const doctorReportSchema: z.ZodObject<{ schema_version: z.ZodInt; cli_version: z.ZodString; ok_harnesses: z.ZodBoolean; ok_cli: z.ZodBoolean; checks: z.ZodArray; title: z.ZodString; status: z.ZodEnum<{ pass: "pass"; fail: "fail"; warn: "warn"; skip: "skip"; }>; detail: z.ZodString; harness: z.ZodNullable>; scope: z.ZodEnum<{ cli: "cli"; harness: "harness"; info: "info"; }>; }, z.core.$strip>>; harnesses: z.ZodArray; detected: z.ZodBoolean; registered: z.ZodEnum; auth_mode: z.ZodEnum; recorded_auth_mode: z.ZodOptional>; proves_harness_reach: z.ZodBoolean; }, z.core.$strip>>; repairs: z.ZodArray; harness: z.ZodNullable>; command: z.ZodString; unattended_safe: z.ZodBoolean; }, z.core.$strip>>; hermes_plugin_version: z.ZodOptional; }, z.core.$strip>; export type CheckStatus = z.infer; export type CheckScope = z.infer; export type DoctorCheck = z.infer; export type DoctorHarness = z.infer; export type DoctorRepair = z.infer; export type DoctorReport = z.infer; export interface DoctorOptions { mcpUrl: string; harness?: Harness; fix?: boolean; yes?: boolean; } /** Doctor itself broke, which is a different claim from "your setup is broken". */ export declare const DOCTOR_COULD_NOT_RUN = 2; /** The invocation was wrong, not the machine; exit 2 stays "doctor broke". */ export declare const DOCTOR_INVALID_INPUT = 3; /** Skips never fail the run; a skip means not applicable, not broken. */ export declare function verdictFor(checks: DoctorCheck[]): { ok_harnesses: boolean; ok_cli: boolean; }; /** Harness scope only: the caller asked about its agent, not us. */ export declare function exitCodeFor(checks: DoctorCheck[]): 0 | 1; export declare function renderPretty(report: DoctorReport): string; export {};