import { type SetupCommandResult, type SetupCommandSpec } from "./commands.js"; import { type PrerequisiteCheckResult } from "./prerequisites.js"; export type PrimusDoctorOptions = { appRoot: string; workingDir: string; sessionDir: string; primusAgentDir: string; primusHome: string; }; export type DoctorCheckResult = { label: string; ok: boolean; detail: string; }; export type PrimusDoctorDependencies = { nodeVersion?: string; pathExists?: (path: string) => boolean; readFile?: (path: string) => string; writeFile?: (path: string, contents: string) => void; readDirectory?: (path: string) => string[]; runCommand?: (spec: SetupCommandSpec) => Promise; environment?: NodeJS.ProcessEnv; writeLine?: (line: string) => void; setExitCode?: (code: number) => void; platform?: NodeJS.Platform; }; export declare function checkNodeVersion(dependencies?: Pick): Promise; export declare function checkGitVersion(dependencies?: Pick): Promise; export declare function checkPythonVersion(dependencies?: Pick): Promise; export declare function checkBuild123dImport(options: PrimusDoctorOptions, dependencies?: Pick): Promise; export declare function checkPreviewSupport(options: PrimusDoctorOptions, dependencies?: Pick): Promise; export declare function checkSerenaInstallation(options: PrimusDoctorOptions, dependencies?: Pick): Promise; export declare function checkSerenaIndex(options: PrimusDoctorOptions, dependencies?: Pick): Promise; export declare function checkPiPackages(options: PrimusDoctorOptions, dependencies?: Pick): Promise; export declare function checkTavily(options: PrimusDoctorOptions, dependencies?: Pick): Promise; export declare function collectDoctorChecks(options: PrimusDoctorOptions, dependencies?: PrimusDoctorDependencies): Promise; export declare function runDoctor(options: PrimusDoctorOptions, dependencies?: PrimusDoctorDependencies): Promise;