/** * Does this serve pipeline need a Node runtime? Matches a bare command word at a token boundary, so * `npm install` and `sudo -n npm ci` count while `my-npm-wrapper` or a path containing "node" does * not. Being wrong in the permissive direction only costs a skipped bootstrap probe; being wrong in * the strict direction costs a paid sandbox and a cryptic exit 127. */ export declare function needsNodeRuntime(commands: readonly (string | undefined)[]): boolean; /** Major Node version installed when the template has none. Matches the terminal lane's choice. */ export declare const BOOTSTRAP_NODE_MAJOR = 22; /** * The bootstrap command. Idempotent and cheap when Node is already present: it probes first and * exits 0 without touching apt, so a custom template that ships its own runtime is untouched. * * `sudo -n` (non-interactive) matches the terminal lane — the desktop user has passwordless sudo, * and failing fast is better than hanging on a password prompt nobody can answer. */ export declare function nodeBootstrapCommand(major?: number): string; /** * Package managers that need their own install step after Node exists. npm and npx arrive with * Node; pnpm, yarn and bun do not, and `corepack enable` is the supported way to get the first two * without a second network fetch. */ export declare function corepackCommandFor(commands: readonly (string | undefined)[]): string | undefined;