import type { PackageManagerKind } from "../../package-manager.js"; import { type ProcessOutputHandler } from "../process-output.js"; import type { PackageManagerInstallOptions } from "./types.js"; /** Output routing options for setup-owned package manager commands. */ export interface RunPackageManagerOptions { /** Streams command output to a parent-owned renderer instead of writing outside it. */ onOutput?: ProcessOutputHandler; /** Aborts the package-manager subprocess when setup is interrupted. */ signal?: AbortSignal; /** * Closes stdin so the child cannot prompt — required when a repainting TUI * owns the terminal in raw mode, where an inherited stdin would let the child * contend for keystrokes. */ nonInteractive?: boolean; } /** @deprecated Use {@link RunPackageManagerOptions}. */ export type RunPnpmOptions = RunPackageManagerOptions; /** Runs the selected package manager in `projectRoot`. */ export declare function spawnPackageManager(kind: PackageManagerKind, projectRoot: string, args: readonly string[], options?: RunPackageManagerOptions): Promise; export interface RunInstallOptions extends RunPackageManagerOptions, PackageManagerInstallOptions { } /** * Installs project dependencies using the selected package-manager strategy. * * pnpm resolves an unclaimed nested project as part of an ancestor workspace, * where `install` can exit successfully without touching the project and can * run the ancestor's lifecycle scripts. Membership is therefore established * before installation, so exactly one correctly scoped install runs. */ export declare function runPackageManagerInstall(kind: PackageManagerKind, projectRoot: string, options?: RunInstallOptions): Promise; /** The argv that runs the locally installed eve binary's `dev` command. */ export declare function eveDevArguments(kind: PackageManagerKind): readonly string[]; /** Compatibility wrapper for callers that still explicitly require pnpm. */ export declare function spawnPnpm(projectRoot: string, args: readonly string[], options?: RunPackageManagerOptions): Promise; /** Compatibility wrapper for callers that still explicitly require pnpm. */ export declare function runPnpmInstall(projectRoot: string, options?: RunPackageManagerOptions): Promise;