/**
 * Component → category registry for per-component framework routing
 * (docs/specs/per-component-framework-routing.md, D1/D2).
 *
 * Framework routing keys on a component's CATEGORY (so an operator can say "all
 * sentinels on Codex" in one line) with a per-component override. The component
 * NAME is the `attribution.component` string each LLM caller already passes at
 * the funnel; this module maps those names to a category so the router does NOT
 * need every call site to also pass a category (Structure > Willpower — one
 * central registry, not 38 edited call sites). A caller MAY still pass an
 * explicit `attribution.category` to override the registry for an ad-hoc label.
 *
 * IMPORTANT: this registry is the single source of truth for what counts as a
 * "sentinel" vs "gate" vs "reflector". When you add a new LLM-backed component,
 * add its `attribution.component` name here so framework routing can see it.
 * Anything not listed resolves to 'other' (and thus the `default` framework) —
 * which is the safe, behavior-preserving fallback.
 */
export type ComponentCategory = 'sentinel' | 'gate' | 'job' | 'reflector' | 'other';
export declare const COMPONENT_CATEGORIES: ReadonlyArray<ComponentCategory>;
export declare function isComponentCategory(v: unknown): v is ComponentCategory;
/**
 * Known component-name → category map. Names match the `attribution.component`
 * label set at each LLM call site (the funnel reads `options.attribution.component`).
 * Some call sites suffix the label (e.g. "CompletionEvaluator/P13") — resolution
 * strips a trailing "/segment" before lookup (see categoryForComponent).
 */
export declare const COMPONENT_CATEGORY: Readonly<Record<string, ComponentCategory>>;
/**
 * Resolve a component's category. Strips a trailing "/segment" call-site suffix
 * (e.g. "CompletionEvaluator/P13" → "CompletionEvaluator") and a leading
 * "server:" inline-closure prefix before lookup. Unknown → 'other'.
 */
export declare function categoryForComponent(component: string | undefined): ComponentCategory;
/** The known component names (registry keys) — drives the GET /intelligence/routing surface. */
export declare function knownComponents(): string[];
//# sourceMappingURL=componentCategories.d.ts.map