import type { GeneratedFileResult } from "../typegen/write-generated-file.js"; export type DoctorTarget = "routes" | "all"; export type DoctorLevel = "error" | "warn" | "info"; export type DoctorGroup = "routing" | "docs" | "tooling"; export interface DoctorDiagnostic { level: DoctorLevel; group: DoctorGroup; blocking: boolean; code: "duplicate-route" | "missing-docs-summary" | "auto-operation-id" | "missing-tags" | "doctor-routes-ok" | "doctor-no-routes"; message: string; filePath?: string; fileRelativePath?: string; method?: string; path?: string; suggestedValue?: string; } export interface RunDoctorOptions { rootDir: string; target?: DoctorTarget; writeInspect?: boolean; writeManifest?: boolean; refresh?: boolean; } export interface DoctorSummary { errors: number; warnings: number; infos: number; blocking: number; byCode: Record; byGroup: Record; } export interface DoctorRouteRecord { filePath: string; fileRelativePath: string; method: string; path: string; prefix: string; docsSummary: string | null; operationId: string | null; effectiveOperationId: string; operationIdSource: "explicit" | "inferred"; tags: string[]; hidden: boolean; } export interface DoctorResult { ok: boolean; target: DoctorTarget; routeFileCount: number; routeCount: number; summary: DoctorSummary; diagnostics: DoctorDiagnostic[]; routes: DoctorRouteRecord[]; inspect?: GeneratedFileResult; manifest?: GeneratedFileResult; } export declare function runDoctor(options: RunDoctorOptions): Promise;