export type VersionRange = { from: string; to: string; }; /** The changeset text is the sentence the author wrote for the person who has to act. */ export declare const namedChangesIn: (body: string, { from, to }: VersionRange) => string[]; export type CrossedVersion = { from: string; name: string; to: string; }; export type CrossedChange = { change: string; package: string; version: string; }; /** 2026-09-02, `npm pack --dry-run --json` over `foundations/db`: a tarball carries `dist`, `package.json`, `README.md` and `LICENSE`; CHANGELOG is not always included, so a package shipping none is named. */ export declare const changesCrossing: (root: string, crossed: CrossedVersion[]) => CrossedChange[]; export declare const recordsOnlyADependencyMove: (one: CrossedChange) => boolean; /** Lines for the same package collapse to one naming every sha; an entry two changelogs both name (#410) prints once. */ export declare const changeLines: (changes: CrossedChange[]) => string[]; /** For a dry run's preview or an RC's tarball, which nothing has installed yet. */ export declare const changesCrossingFrom: (crossed: CrossedVersion[], read: (name: string, version: string) => string | Promise | undefined) => Promise;