import { type RememPaths } from "../storage/paths.js"; import type { RememAppConfig } from "../storage/config-file.js"; import type { ProcessRunner } from "./process.js"; import type { EmbeddingModel } from "../types.js"; export interface DoctorCheck { name: string; status: "ok" | "warn" | "error"; detail: string; } export interface DoctorReport { healthy: boolean; checks: DoctorCheck[]; } export interface DoctorOptions { embeddingModel?: EmbeddingModel; } /** * Checks whether this installed package's own root directory is present in * Pi's `packages` setting at `piPath`. Parses the settings JSON and checks * array membership rather than a raw substring match on the file text: * `JSON.stringify` escapes path separators (e.g. `\` on Windows becomes * `\\`), so a `text.includes(root)` substring check would never match a * correctly configured settings file on Windows. Exported standalone so it * is unit-testable without a live PostgreSQL connection, unlike the rest of * `runDoctor`. */ export declare function piIntegrationCheck(piPath: string): Promise; export declare function openCodeIntegrationCheck(opencodePath: string, hostVersion?: "v1" | "v2"): Promise; export declare function runDoctor(config: RememAppConfig, paths: RememPaths, runner: ProcessRunner, options?: DoctorOptions): Promise;