export type ManagedToolName = "uv" | "serena" | "tvly"; export type ManagedToolMetadata = { executablePath: string; directory: string; installStrategy: string; platform: NodeJS.Platform; verifiedWith: string[]; versionText: string; resolvedAt: string; }; export type ManagedToolState = { version: 1; tools: Partial>; }; export type ManagedToolCommandSpec = { command: string; args: string[]; cwd?: string; env?: NodeJS.ProcessEnv; }; export type ManagedToolCommandResult = { code: number; stdout: string; stderr: string; }; type StateIoDependencies = { pathExists?: (path: string) => boolean; readFile?: (path: string) => string; writeFile?: (path: string, contents: string) => void; ensureDirectory?: (path: string) => void; }; export type ManagedToolCommandSelection = { command: string; verified: boolean; result: ManagedToolCommandResult; source: "stored" | "ambient" | "resolved"; }; type ManagedToolSelectionOptions = StateIoDependencies & { tool: ManagedToolName; primusHome: string; environment: NodeJS.ProcessEnv; runCommand: (spec: ManagedToolCommandSpec) => Promise; platform?: NodeJS.Platform; verifyArgs?: string[]; }; type ManagedToolResolveOptions = ManagedToolSelectionOptions & { installStrategy?: string; versionText?: string; now?: () => string; }; export declare function getDefaultUserLocalBinDirectory(environment: NodeJS.ProcessEnv, platform: NodeJS.Platform): string | undefined; export declare function readManagedToolState(primusHome: string, dependencies?: Pick): ManagedToolState; export declare function getUvToolBinCandidates(environment: NodeJS.ProcessEnv, platform: NodeJS.Platform): string[]; export declare function isCurrentHomeUvToolMetadata(metadata: ManagedToolMetadata | undefined, environment: NodeJS.ProcessEnv, platform: NodeJS.Platform): boolean; export declare function prependPathEntry(environment: NodeJS.ProcessEnv, platform: NodeJS.Platform, entry: string): NodeJS.ProcessEnv; export declare function getManagedToolPathEntries(primusHome: string, environment: NodeJS.ProcessEnv, dependencies?: Pick & { platform?: NodeJS.Platform; }): string[]; export declare function buildManagedToolCommandEnv(primusHome: string, environment: NodeJS.ProcessEnv, dependencies?: Pick & { platform?: NodeJS.Platform; }): NodeJS.ProcessEnv; export declare function selectManagedToolCommand(options: ManagedToolSelectionOptions): Promise; export declare function resolveManagedToolExecutable(options: ManagedToolResolveOptions): Promise; export {};