import { runCommand } from "./platform/command.js"; import { type SharedReleaseManifest, SharedReleaseStore } from "./shared-release-store.js"; type CommandRunner = typeof runCommand; export interface InstallArchiveOptions { archivePath: string; sourceKind: "npm" | "source"; sourceDigest?: string; expectedVersion?: string; /** Rewrite a locally packed stable source archive into its allocated DEV version. */ versionOverride?: string; nodePath: string; nodeVersion: string; nodeAbi: string; npmCommand: string; cwd: string; env: NodeJS.ProcessEnv; timeoutMs: number; preferOffline?: boolean; run?: CommandRunner; verify?: (packageDirectory: string, version: string) => void | Promise; } export interface ImportInstalledTreeOptions { sourceDirectory: string; sourceKind: "npm" | "seed" | "legacy"; nodePath: string; nodeVersion: string; nodeAbi: string; cwd: string; env: NodeJS.ProcessEnv; run?: CommandRunner; verify?: (packageDirectory: string, version: string) => void | Promise; } export interface InstalledSharedRelease { artifactId: string; packageDirectory: string; manifest: SharedReleaseManifest; reused: boolean; } export declare class SharedReleaseInstaller { readonly store: SharedReleaseStore; constructor(store: SharedReleaseStore); installArchive(options: InstallArchiveOptions): Promise; importInstalledTree(options: ImportInstalledTreeOptions): Promise; } export {};