export type RuntimePlatform = NodeJS.Platform; export type EnvironmentOs = 'windows' | 'linux' | 'macos' | 'unknown'; export type EnvironmentIssueCode = 'missing_command' | 'missing_env' | 'port_unavailable' | 'path_not_writable'; export type IssueClassification = 'repairable' | 'manual_required'; export interface PortCheckResult { available: boolean; reason: string; } export interface EnvironmentIssue { code: EnvironmentIssueCode; classification: IssueClassification; detail: string; suggestion: string; } export interface EnvironmentDoctorSummary { totalIssues: number; repairable: number; manualRequired: number; } export interface EnvironmentDoctorReport { os: EnvironmentOs; endpoint: { host: string; port: number; probeHost: string; }; issues: EnvironmentIssue[]; summary: EnvironmentDoctorSummary; } type CommandExistsChecker = (command: string) => Promise; type PortChecker = (host: string, port: number, timeoutMs: number) => Promise; type PathWritableChecker = (directory: string) => Promise; export interface EnvironmentDoctorOptions { platform?: RuntimePlatform; env?: NodeJS.ProcessEnv; requiredCommands?: string[]; requiredEnvKeys?: string[]; writableDirectories?: string[]; commandExists?: CommandExistsChecker; portChecker?: PortChecker; pathWritableChecker?: PathWritableChecker; timeoutMs?: number; defaultHost?: string; defaultPort?: number; } export declare function diagnoseEnvironment(options?: EnvironmentDoctorOptions): Promise; export declare function mapPlatformToOs(platform: RuntimePlatform): EnvironmentOs; export declare function resolveOpencodeEndpoint(env: NodeJS.ProcessEnv, defaultHost: string, defaultPort: number): { host: string; port: number; probeHost: string; }; export declare function checkPortAvailability(host: string, port: number, timeoutMs?: number): Promise; export declare function isPathWritable(directory: string): Promise; export {}; //# sourceMappingURL=environment-doctor.d.ts.map