/** * Resolve `name[@version]` (or a bare `pipe_...` id) to a concrete pipeline id. * * Extracted from `commands/pipeline/call.ts`, which is the only place it lived * before. It moved out because 024 deprecation makes the original version * actively wrong, and being wrong silently is worse than being wrong loudly: * * `resolvePipelineId` read `/v1/pipelines?limit=100`. Since migration 024 the * list route hides `deprecated_since IS NOT NULL` rows by default — correctly, * that is the point of deprecating something. The consequence was that a * pipeline retired an instant earlier could no longer be found BY NAME, and * `pipeline un-deprecate ` — the command whose entire job is to bring a * retired pipeline back — had nothing to resolve against. It failed with * "Pipeline not found" for a pipeline that demonstrably existed. * * So `includeDeprecated` defaults to true here. This resolver is used by * maintenance commands (deprecate, un-deprecate) that MUST see retired rows; the * catalogue-facing paths keep their own visibility rules and are not routed * through this. */ export interface ResolveOptions { /** Include rows retired via 024 (`deprecated_since` set). Default: true. */ includeDeprecated?: boolean; } export declare function resolvePipelineId(slug: string, opts?: ResolveOptions): Promise; export declare function cmpSemver(a: string | undefined, b: string | undefined): number;