import { type ToolInvocation } from './registry.js'; /** Expand `~`, then resolve relative paths against the project directory. */ export declare function resolveProjectPath(value: string, projectDir: string): string; /** * A configured executable is a path when it looks like one, and a PATH lookup * otherwise. `syside` means "whatever is on PATH"; `./bin/syside` means that * file. */ export declare function resolveExecutable(value: string | undefined, fallback: string, projectDir: string): string; /** * Absolute path of a command, resolved the way the shell would. * * `memo toolchain probe` prints this: knowing *which* `syside` ran matters as * much as knowing that one did. */ export declare function whichExecutable(command: string, env?: NodeJS.ProcessEnv): string | undefined; /** * A binary shipped in the same install, found without the user doing anything. * * "The user is responsible for PATH" is a rule about *third-party* tools. It * has never applied to MEMO's own: a default install must work with nothing * installed and nothing configured. So a bundled binary is looked up the way * Node looks up a module — walk up from a starting directory checking each * `node_modules/.bin` — which finds it whether the caller is a project, a * global install, or a workspace checkout. */ export declare function findBundledExecutable(name: string, fromDirs: readonly string[]): string | undefined; export interface CaptureResult { status: number | null; stdout: string; stderr: string; } /** * Run a tool and capture its output. * * A non-zero status is not an exception: a validator rejecting the source is * the normal case, and its complaints are diagnostics. Only a binary that could * not be run at all is an error, because that means the user asked for a tool * MEMO cannot honour — and rule 2 says never downgrade to a different provider * in silence. */ export declare function captureToolInvocation(invocation: ToolInvocation, cwd: string): CaptureResult; /** First line of ` --version`, or undefined when it will not say. */ export declare function probeVersion(command: string, args?: readonly string[]): string | undefined; //# sourceMappingURL=process.d.ts.map