/**
 * Git-Bash resolver (mmnto-ai/totem#2159) — the cohort-standard fix for the
 * bare-`bash`-is-WSL trap.
 *
 * On Windows hosts, Git-for-Windows puts only `Git\cmd` on PATH, so a bare
 * `bash` spawn outside an MSYS/git-hook context resolves to
 * `C:\Windows\System32\bash.exe` — WSL's Linux bash, which cannot read
 * `D:\...` Windows paths and fails every script it is handed. The
 * operator-ruled cohort standard (2026-06-12; strategy concur 0240Z) is
 * repo-side mechanization with ONE exported resolver: **bare `bash` is never
 * spawned by repo tooling on win32** — every bash-invoking surface consumes
 * this function instead.
 *
 * Resolution: memo → POSIX fast-path (`'bash'` is genuine there) →
 * `git --exec-path` derivation (walk up to Git's install root, probe
 * `usr/bin/bash.exe` — the real MSYS bash — then `bin/bash.exe`, the
 * wrapper) → conventional install-path probes → HARD `TotemError` naming
 * every probed path. A bare-`'bash'` final fallback is deliberately absent:
 * it would silently re-enter the WSL trap this module exists to kill
 * (Tenet 4 — the failure must be loud and actionable, not a cryptic
 * `No such file or directory` from a Linux bash reading a Windows path).
 */
/**
 * Resolve the bash executable repo tooling must spawn. Returns `'bash'` on
 * POSIX (no subprocess spent); on win32 returns an absolute Git-Bash path or
 * throws `BASH_RESOLUTION_FAILED` — never the literal `'bash'`.
 */
export declare function resolveBash(): string;
/**
 * Child-process env for spawning the resolved bash: on win32, Git's
 * `usr\bin` and `bin` are PREPENDED to PATH so the script's own children
 * (`grep`, `tr`, `sha256sum`, `cut` — the MSYS coreutils) resolve. This is
 * the trap's second layer: a directly-spawned Git-Bash inherits the parent
 * PATH (which lacks `usr\bin` — that's the whole #2159 class), so the bash
 * binary runs but every coreutil inside the script is `command not found`.
 * Git-hook contexts never see this because git prepends its own tree before
 * running hooks; this function reproduces that contract for plain spawns.
 *
 * POSIX returns `base` unchanged. The existing PATH key's casing is
 * preserved (Windows env keys are case-insensitive; introducing a second
 * `PATH` spelling alongside an inherited `Path` is undefined behavior).
 */
export declare function bashSpawnEnv(base?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
/**
 * Reset the module memo so unit tests can exercise every resolution branch
 * without cross-test bleed. Test-only by convention (underscore prefix);
 * production callers have no reason to clear an immutable host fact.
 *
 * @internal
 */
export declare function _clearBashResolverCacheForTesting(): void;
//# sourceMappingURL=bash-resolver.d.ts.map