import { type SetupCommandResult, type SetupCommandSpec } from "../setup/commands.js"; import { type ManagedWorkshopDependencies, type ManagedWorkshopResult, type ManagedWorkshopUi } from "../setup/workshop.js"; import { updatePiCorePackages, updatePiExtensionPackages } from "./pi-deps.js"; export type PrimusUpdateOptions = { appRoot: string; workingDir: string; sessionDir: string; primusAgentDir: string; primusHome: string; }; type UpdateUi = ManagedWorkshopUi & { intro: (message: string) => void; outro: (message: string) => void; }; export type PrimusUpdateDependencies = { ensureSupportedNodeVersion?: (version?: string) => void; pathExists?: (path: string) => boolean; ensureDirectory?: (path: string) => void; removePath?: (path: string) => void; readFile?: (path: string) => string; readDirectory?: (path: string) => string[]; normalizePrimusSettings?: (settingsPath: string, bundledSettingsPath: string, authPath: string) => void; runCommand?: (spec: SetupCommandSpec) => Promise; environment?: NodeJS.ProcessEnv; platform?: NodeJS.Platform; patchEmbeddedPi?: (appRoot: string) => Promise | void; updatePiCorePackages?: typeof updatePiCorePackages; updatePiExtensionPackages?: typeof updatePiExtensionPackages; refreshManagedWorkshop?: (options: PrimusUpdateOptions & { mode: "update"; }, dependencies: ManagedWorkshopDependencies) => Promise; ui?: UpdateUi; }; export declare function runUpdate(options: PrimusUpdateOptions, dependencies?: PrimusUpdateDependencies): Promise; export {};