/** * Protobuf change rules (change: add-contract-graph-projection, protobuf phase). * * The protobuf rows of the closed rule table in `contract-diff.ts`, over the element model of * `analyzer/contract/protobuf.ts`. A field's NUMBER is its identity on the wire, so fields are * matched by number: the same number under a new name is a rename (the wire still works, JSON and * text formats do not), and the same name under a new number is a different field. Types and * services are matched by full name across files, so moving a message between files is not a * removal. * * Anything compared only by hash — an option other than `deprecated` (`json_name`, `packed`, a * custom option) — is `schema-unassessed`, never silently "no change". */ import { type ProtoDocument } from '../../analyzer/contract/protobuf.js'; import { type ContractChange } from './contract-diff.js'; /** * Compare the protobuf schemas of two revisions. Each side must already be resolved * (`resolveProtoTypes`) over every `.proto` file of that revision. */ export declare function diffProtobuf(base: readonly ProtoDocument[], head: readonly ProtoDocument[]): ContractChange[]; //# sourceMappingURL=protobuf-diff.d.ts.map