import { type InstallLayout, type WpscliConfig } from "@wpscli/core"; import type { UpdateMode } from "./update-notifier.js"; import { type UpdateCheckResult } from "./update-notifier.js"; export type { UpdateMode }; export type GlobalPackageManager = "npm" | "pnpm"; export type PackageManager = GlobalPackageManager | "local" | null; export interface PerformUpdateResult { currentVersion: string; latestVersion: string; updated: boolean; packageManager?: string; command?: string; error?: string; } export interface PostCommandUpdateContext { command: string; exitCode: number; } export declare function resolveUpdateMode(config?: WpscliConfig): UpdateMode; export declare function detectPackageManager(): PackageManager; export declare function isEligibleForSilentUpgrade(current: string, latest: string): boolean; export declare function buildUserGlobalMigrateCommand(packageName?: string, version?: string): string; export declare function isUnsafeInPlaceUpdateLayout(layout: InstallLayout): boolean; export declare function buildUpdateCommand(layout: InstallLayout, packageName?: string, version?: string): string; export declare function buildUpdateSpawnArgs(layout: InstallLayout, packageName?: string, version?: string): { cmd: string; args: string[]; }; export declare function execUpdateCommand(cmd: string, args: string[]): void; export declare function getPermissionHint(packageName?: string): string; export declare function buildGlobalUpdateCommand(pm: GlobalPackageManager, packageName?: string): string; export declare function spawnSilentUpgrade(layout: InstallLayout, packageName?: string): void; export declare function performUpdate(latestVersion: string): Promise; export declare function handlePostCommandUpdate(result: UpdateCheckResult, mode: UpdateMode, context: PostCommandUpdateContext): Promise;