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<boolean>;
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<boolean>;
/** 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<boolean>;
/** Compatibility wrapper for callers that still explicitly require pnpm. */
export declare function runPnpmInstall(projectRoot: string, options?: RunPackageManagerOptions): Promise<boolean>;
