export type ProviderCliId = "claude" | "codex" | "opencode" | "qoder" | "pi"; export interface ProviderCliUpdateStatus { id: ProviderCliId; label: string; command: string; executable: string | null; installed: boolean; currentVersion: string | null; latestVersion: string | null; updateAvailable: boolean; updateSupported: boolean; installKind: "native" | "npm" | "brew" | "legacy" | "unknown"; error?: string; } export interface ProviderCliUpdateResult { id: ProviderCliId; label: string; ok: boolean; skipped: boolean; fromVersion: string | null; toVersion: string | null; message: string; output?: string; } export interface ProviderCliUpdaterOptions { inheritEnv?: boolean; versionTimeoutMs?: number; registryTimeoutMs?: number; updateTimeoutMs?: number; env?: NodeJS.ProcessEnv; onLog?: (line: string) => void; } export declare function parseProviderCliVersion(output: string): string | null; export declare function providerCliUpdateAvailable(currentVersion: string | null, latestVersion: string | null): boolean; export declare function checkProviderCliUpdates(options?: ProviderCliUpdaterOptions): Promise; export declare function updateProviderClis(statuses: ProviderCliUpdateStatus[], ids?: ProviderCliId[], options?: ProviderCliUpdaterOptions): Promise; /** Re-check the active PATH after updating so duplicate installs cannot masquerade as success. */ export declare function verifyProviderCliUpdateResults(results: ProviderCliUpdateResult[], statuses: ProviderCliUpdateStatus[]): ProviderCliUpdateResult[];