/** * Pattern recognisers for `chant migrate --use-composites`. * * Each pattern walks the GitLab IR looking for a recognisable shape * (e.g. NodePipeline-shaped 2-job setup) and rewrites the matched * resources into a sentinel IR type (`GitLab::Composite::NodePipeline`) * that the GitLab generator (`lexicons/gitlab/src/import/generator.ts`) * will emit as `NodePipeline({...})` instead of raw `new Job(...)`. */ import type { TemplateIR, ResourceIR } from "@intentius/chant/import/parser"; import type { ProvenanceRecord } from "../provenance.js"; export interface CompositePattern { name: string; match(ir: TemplateIR): MatchResult | null; rewrite(ir: TemplateIR, match: MatchResult): { ir: TemplateIR; provenance: ProvenanceRecord[]; }; } export interface MatchResult { /** Resource logicalIds to remove */ removed: string[]; /** New composite resource to add */ added: ResourceIR; } export declare const PATTERNS: CompositePattern[]; //# sourceMappingURL=patterns.d.ts.map