/** * "A newer clustly is on npm" — the update-notifier pattern. The notice is printed from a * cache BEFORE the command runs (commands process.exit() directly, so "after" is unreliable), * and the cache is refreshed by a fire-and-forget registry fetch at most once a day. Source * of truth is the npm `latest` dist-tag, never the app's CURRENT_SDK_VERSION: the app can be * ahead of npm (2026-09-02: package.json said 0.7.0 for three days while npm served 0.6.1), * and a nudge toward an unpublished version is a 404 for the user. * * Best-effort by design: every fs/fetch/JSON failure is swallowed. This must never cost a * command latency or break it. */ export interface UpdateCheckDeps { now: () => number; home: string; /** A plain string map, not the ambient `NodeJS.ProcessEnv`: a caller passing a * one-key literal (`{ CI: "true" }`) should not have to cast. */ env: Record; /** Resolve the registry's `latest` version; null on any failure. */ fetchLatest: () => Promise; notify: (line: string) => void; } /** True iff both are stable x.y.z and candidate > current, numerically per component. */ export declare function isNewer(candidate: string, current: string): boolean; /** * Print the notice if the cache says a newer stable exists; kick a background refresh if the * cache is stale. Returns the refresh promise (tests await it; the CLI does not). */ export declare function maybeNotifyUpdate(current: string, deps?: Partial): Promise;