import type { CircleIR, MetricValue } from '../../types/index.js'; /** * Context passed to each MetricPass during a MetricRunner execution. * * `accumulated` contains MetricValues emitted by all passes run before this * one in the pipeline — CompositeMetricsPass (always last) uses this to read * earlier metrics without re-computing them. */ export interface MetricContext { ir: CircleIR; /** Full source text of the file being analyzed. */ code: string; language: string; /** Results from all prior passes, in emission order. */ accumulated: MetricValue[]; } /** * A single metric computation unit. * * Each pass returns zero or more MetricValues. Passes must not mutate * `ctx.accumulated`; the MetricRunner appends returned values to it between * passes. */ export interface MetricPass { readonly name: string; run(ctx: MetricContext): MetricValue[]; } //# sourceMappingURL=metric-pass.d.ts.map