/**
 * Best-effort "a newer version is available" nudge.
 *
 * The MCP has no built-in update mechanism — a pinned global install
 * (`npm i -g @extenshi/mcp`) stays on whatever version was installed, and even
 * an `npx @extenshi/mcp` (no `@latest`) can serve a stale cache. So on startup
 * we ask the npm registry once for the latest published version and, if we're
 * behind, print a one-line hint to STDERR.
 *
 * Hard constraints:
 *  - STDERR only. stdout is the MCP protocol channel (see index.ts header).
 *  - Fully fail-soft: any network/parse/timeout error is swallowed silently.
 *  - Non-blocking: callers fire-and-forget so tool availability is never delayed.
 *  - Opt-out honoured (shares the telemetry opt-out switches + a dedicated one).
 */
/** True when the user has opted out of the (network) update check. */
export declare function updateCheckOptedOut(env?: NodeJS.ProcessEnv): boolean;
/**
 * Returns true when `latest` is a strictly newer 3-part version than `current`.
 * Tolerant of pre-release/garbage: non-numeric parts coerce to 0, and any parse
 * oddity returns false (never nag spuriously).
 */
export declare function isNewerVersion(current: string, latest: string): boolean;
/** Build the stderr hint (exported for testability). */
export declare function updateMessage(current: string, latest: string): string;
/**
 * Fire-and-forget update check. Never throws; writes at most one line to stderr.
 * `fetchImpl`/`out` are injectable for tests.
 */
export declare function checkForUpdate(current: string, fetchImpl?: typeof fetch, out?: (msg: string) => void): Promise<void>;
//# sourceMappingURL=update-check.d.ts.map