export type GlobalInstallManager = 'npm' | 'pnpm' | 'bun'; export type DetectedInstallManager = GlobalInstallManager | 'yarn' | 'unknown'; export interface GlobalInstallPlan { manager: GlobalInstallManager; command: GlobalInstallManager; args: string[]; /** Package-manager-specific environment needed to keep the update in the * install location that owns the running botmux process. */ env?: Record; /** Stable package root after the update. pnpm's runtime realpath is versioned, * so this points at the global node_modules/botmux symlink instead. */ activePackageRoot: string; } export declare class UnsupportedGlobalInstallError extends Error { readonly manager: DetectedInstallManager; readonly packageRoot: string; constructor(manager: DetectedInstallManager, packageRoot: string); } /** Pure, path-only ownership classification used by both updates and diagnostics. */ export declare function detectGlobalInstallManager(packageRoot: string, platform?: NodeJS.Platform): DetectedInstallManager; export declare function resolveGlobalInstallPlan(packageRoot?: string, platform?: NodeJS.Platform, spec?: string): GlobalInstallPlan; export declare function tryResolveGlobalInstallPlan(packageRoot?: string, platform?: NodeJS.Platform, spec?: string): GlobalInstallPlan | null; export declare function isAutoUpdateSupportedInstall(): boolean; /** Pin an install plan to one registry. Callers opt in explicitly (rollback only). */ export declare function withGlobalInstallRegistry(plan: GlobalInstallPlan, registry?: string): GlobalInstallPlan; export declare function formatGlobalInstallCommand(plan: GlobalInstallPlan): string; //# sourceMappingURL=global-install.d.ts.map