/** * Numeric comparison of dot-separated versions, shared by the engine nudge and the CLI-update * nudge. * * Shared rather than copied because both compare the same shape for the same purpose, and two * copies of a comparison is how `3.1009` ends up ranked below `3.980` in one place and not the * other. Every part must be all digits — `0.1.12`, `3.1009` — which is what both version streams * actually produce. * * Returns null when either side is unparseable (a prerelease tag, a locally-built `worktree` * engine, a git describe string). Callers treat null as "say nothing": an unrecognised version is * not evidence that anything is out of date, and a nudge that fires on every run is one people * learn to ignore. */ export declare function isOlderDottedVersion(candidate: string, reference: string): boolean | null; /** * Prerelease-aware comparison, for the CLI-update nudge alone. * * `isOlderDottedVersion` above returns null the moment either side carries a prerelease tag. That * is right for the engine nudge — a locally built `worktree` engine is not evidence that anything * is out of date — and wrong for a CLI installed from the `dev` dist-tag, where `0.1.46-dev.3` has * to learn about `0.1.46-dev.4`. Added alongside rather than folded in: the engine nudge and * `upgrade`'s engine-version gate both call the numeric one, and neither should change behaviour * because the CLI's own nudge grew a new requirement. * * Semver precedence, restricted to the shapes these version streams actually produce: the numeric * core first, then a release outranks every prerelease of the same core, then prerelease * identifiers dot by dot — numeric ones numerically, and below alphanumeric ones. * * Null when either CORE is unparseable, which callers treat as "say nothing". */ export declare function isOlderSemverVersion(candidate: string, reference: string): boolean | null;