/** The XDG user-bin dir, `~/.local/bin`. */
export declare function localBinDir(home?: string): string;
export interface SymlinkResult {
    /** A usable symlink to `target` exists at the path after this call. */
    ok: boolean;
    /** True only when this call created the symlink (false = already correct, or left untouched). */
    created: boolean;
    /** Why an existing entry was left untouched (set only when ok is false). */
    skippedReason?: string;
    path: string;
}
/**
 * Ensure `<dir>/<name>` is a symlink to `target`, NEVER clobbering a
 * pre-existing real file or a symlink that already points elsewhere — most
 * importantly a developer's `scripts/install.sh` dev build at
 * `~/.local/bin/agents`. Only an absent path, or a symlink already pointing at
 * `target`, is created/treated as ok. Idempotent.
 */
export declare function ensureLocalBinSymlink(name: string, target: string, dir?: string): SymlinkResult;
/**
 * Does a fresh `bash -lc` resolve `cmd` on its PATH? This is the real question
 * for the consumers we heal. Best-effort: any probe failure returns false so
 * the caller heals rather than wrongly assuming success. `command -v` is a
 * POSIX builtin.
 */
export declare function loginShellResolves(cmd: string): boolean;
/** Is `dir` on a fresh `bash -lc` PATH? Best-effort; a probe failure returns false. */
export declare function dirOnLoginPath(dir: string): boolean;
