/**
 * `indusk upgrade` — install a newer version of the indusk-mcp global CLI.
 *
 * Split out from `indusk update` (which used to do both project-state
 * syncing AND CLI self-install in one breath, with a recursive
 * re-invocation that could silently loop forever — see issue Sandy hit
 * 2026-05-15 where `npm i -g` installed to homebrew's prefix while the
 * on-PATH `indusk` lived under pnpm and never moved).
 *
 * This command:
 *  1. Reads the current globally-resolved binary's version via `indusk
 *     --version`, not the running process's package.json (which can be a
 *     dev-from-source workspace copy).
 *  2. Fetches the latest npm version, bypassing any cached value (explicit
 *     upgrade is always a fresh check).
 *  3. Detects the package manager that owns the on-PATH binary by
 *     inspecting its path string.
 *  4. Runs the manager-appropriate install command.
 *  5. Verifies post-install by re-spawning `indusk --version` and
 *     comparing to the expected latest. If the version didn't move,
 *     prints a diagnostic with the PATH binary location, the install
 *     destination, and the manual recovery command. No recursive
 *     re-invocation, ever.
 *
 * Exits non-zero on any failure (network, install, verify) so wrappers
 * and CI can act on it.
 */
export interface UpgradeOptions {
    /** Skip the npm version check and force an install of `latest`. */
    force?: boolean;
}
export declare function upgrade(opts?: UpgradeOptions): Promise<void>;
