/** * True iff `cmd` is on PATH. Memoized for the lifetime of the process. * Returns false for empty input or anything containing shell metacharacters * (defense in depth — argv arrays already prevent injection, but rejecting * weird input early avoids surprises in error logs). */ export declare function whichSync(cmd: string): boolean; /** * Test seam: same contract as `whichSync` but with a caller-supplied probe. * Does not consult or populate the module-level cache, so tests can vary * the probe across cases without polluting subsequent calls. */ export declare function whichSyncWith(cmd: string, probe: (cmd: string) => boolean): boolean; /** Test-only: drop the memoized cache. Not exported through utils/index. */ export declare function _resetWhichCacheForTests(): void;