/** * Resolved invocation for the host's pnpm executable. The shape carries * everything `child_process.spawn` and `execFile` need to dispatch to the * right binary across macOS/Linux PATH installs, Corepack-managed shims, * and Windows runners that surface pnpm only through `PNPM_HOME`. */ export interface PnpmInvocation { readonly args: readonly string[]; readonly command: string; readonly shell?: boolean; } /** * Picks the right pnpm executable for the current host. Resolution order: * * 1. `PNPM_HOME` — the standard install location used by Corepack and the * pnpm installers. On Windows, points at `pnpm.CMD` because the bare * `pnpm` shim is not directly invokable from a non-shell spawn. * 2. `npm_execpath` — set when the current process was launched by an * npm-compatible package manager. Pointing at a `.cjs`/`.js` entry * means we have to run it through `node` (typical for Corepack * shims); otherwise treat it as a bare executable path. * 3. Bare `pnpm` on PATH — the macOS/Linux happy path. * * Pure: no side effects, returns the invocation shape; the caller picks * `spawn` vs. `execFile`. The test harness uses this to keep platform * handling in one place. */ export declare function resolvePnpmInvocation(args: readonly string[]): PnpmInvocation;