/** * @fileoverview Fitness Target Registry * * The generic register/get/byTag/has substrate moved to * `@opensip-cli/targeting` (ADR-0037, Phase 0). This fitness registry is a * thin **subclass** that adds only the check-domain `findByScope` (languages + * concerns intersection) — `concerns` is a check-scope concept, so it stays in * fitness, not the host substrate. * * Subclassing keeps every fitness call site (`registry.getByName`, * `registry.has`, `registry.getAll`, `registry.findByScope`) working unchanged * while the generic surface lives once, in the substrate. */ import { TargetRegistry as SubstrateTargetRegistry } from '@opensip-cli/targeting'; import type { Target } from './types.js'; /** * Fitness target registry: the substrate registry plus the check-domain * scope-matching `findByScope`. IS-A {@link SubstrateTargetRegistry}, so every * generic lookup (`register`/`getByName`/`getAll`/`getByTag`/`has`/`size`/ * `clear`) is inherited unchanged. */ export declare class TargetRegistry extends SubstrateTargetRegistry { /** * Find targets whose languages and concerns intersect with the given scope. * * Both dimensions must match (AND logic): * - A target matches languages if the intersection is non-empty (or either side is empty/undefined) * - A target matches concerns if the intersection is non-empty (or either side is empty/undefined) * * Language strings are canonicalised on both sides through * the scope's `languages.canonicalize`, so a target written * with `languages: ['c']` matches a check scoped to `cpp`, and a * target with `languages: ['rs']` matches `rust`-scoped checks. * * @param languages - Languages the check is designed for * @param concerns - Semantic concerns the check targets * @returns Targets that match both dimensions */ findByScope(languages: readonly string[], concerns: readonly string[]): readonly Target[]; } //# sourceMappingURL=target-registry.d.ts.map