export type BumpKind = 'major' | 'minor' | 'patch'; /** * Derive the bump kind from a Conventional Commits-flavored PR title and body. * * Rules (first match wins): * 1. `BREAKING CHANGE:` token anywhere in title or body → major * 2. `feat(knowledge):` or `feat(knowledge-freshness):` title prefix → minor * 3. `chore(knowledge):` or `chore(knowledge-freshness):` title prefix → patch * 4. Anything else → patch (the workflow logs a `::notice::` for this case) * * Title matching is case-sensitive against the literal prefix (Conventional * Commits canonicalizes to lowercase). The BREAKING CHANGE token is matched * case-sensitively as well — that's the canonical form. */ export declare function deriveBumpKind(prTitle: string, prBody: string): BumpKind; /** * Bump a `X.Y.Z` SemVer string by the given kind. Throws on invalid input. * * - `major`: `X.Y.Z` → `(X+1).0.0` * - `minor`: `X.Y.Z` → `X.(Y+1).0` * - `patch`: `X.Y.Z` → `X.Y.(Z+count)` * * `count` is a CATCH-UP multiplier for patch bumps: when several * `chore(knowledge): refresh` PRs merge in a rapid batch, the version-bump * workflow's single concurrency group cancels the intermediate runs, so a * surviving run must advance VERSION by all the patch bumps it owes (one per * un-bumped refresh commit) instead of just one. `count` applies ONLY to * `patch` — `minor`/`major` are deliberate, single, and reset the lower fields, * so a catch-up count is meaningless for them and is ignored. Defaults to 1, * preserving the original single-bump behavior. */ export declare function bumpSemver(current: string, kind: BumpKind, count?: number): string; /** * Replay a sequence of bump kinds against a starting version, in order. * * This is the catch-up primitive when several knowledge PRs merged in a rapid * batch and the version-bump workflow's single concurrency group cancelled the * intermediate runs: a surviving run replays the per-commit kind of EVERY * un-bumped commit (oldest→newest), so a mixed batch is handled correctly — a * `feat` (minor) in the middle resets the patch field, a later `chore` (patch) * adds to it. Replaying N patch bumps is equivalent to `bumpSemver(_, 'patch', * N)`, so this subsumes the count multiplier. An empty list returns the * (trimmed) input unchanged. */ export declare function bumpSemverReplay(current: string, kinds: BumpKind[]): string; //# sourceMappingURL=bump-version.d.ts.map