import { z } from "zod"; import type { McpServer, RegisteredTool } from "@modelcontextprotocol/sdk/server/mcp.js"; import { type DoctorCheck } from "../hil/schemas.js"; import { type DaemonStats } from "../hil/daemon.js"; import type { ToolContext } from "../tool-context.js"; export declare const TOOL_NAME = "crosspad_doctor"; export interface DoctorProbe { hilPython(): string; pythonRunnable(py: string): Promise; /** crosspad_hil.__version__ or null when not importable. */ hilVersion(py: string): Promise; requiredHilVersion(): string; idfRoot(): string; idfExportExists(): boolean; pcRoot(): string; exists(p: string): boolean; mtimeMs(p: string): number | null; /** Newest *.c/*.cpp/*.h/*.hpp mtime under root/src (bounded walk), or null. */ newestSourceMtimeMs(root: string): number | null; simBinary(): string; clangdPath(): string | null; } export declare const O_Doctor: { success: z.ZodBoolean; action: z.ZodOptional; ok: z.ZodOptional; checks: z.ZodOptional>; }, z.core.$loose>>>; daemon: z.ZodOptional>; dropped_handles: z.ZodOptional; error: z.ZodOptional>; details: z.ZodOptional>; }, z.core.$loose>>; details: z.ZodOptional>; resultType: z.ZodOptional; confirmation: z.ZodOptional>; tool: z.ZodOptional; hint: z.ZodOptional; }; /** Numeric semver compare on the first three dot-separated components (pre-release tags ignored). */ export declare function compareVersions(a: string, b: string): number; /** Same resolution as getHilDaemon(): config hil_python → $CROSSPAD_HIL_PYTHON → tracer venv python → python3. */ export declare function resolveHilPython(): string; export declare function runDoctorChecks(p: DoctorProbe, daemonChecks: () => Promise, daemonStats?: () => Promise): Promise; export declare function realProbe(): DoctorProbe; export declare function registerDoctorTool(server: McpServer, ctx: ToolContext, probe?: DoctorProbe): RegisteredTool;