/** * @fileoverview Fitness recipe registry * * Thin wrapper around the kernel's `RecipeRegistry` (Layer 1 / core) * that adds fitness-specific concerns: built-in recipe pre-registration * with throw-on-duplicate semantics, override tracking, and display * info enriched with `isBuiltIn` / `overridesBuiltIn` flags. * * Built-in seeding goes through `registerAll(builtIns, { internal: true })` * — the LSP-clean replacement for the prior direct-map-write pattern * (the canonical T2 violation the runscope+registry plan resolves). */ import { RecipeRegistry } from '@opensip-cli/core'; import type { FitnessRecipe } from './types.js'; /** Display-friendly info about a registered recipe */ export interface RecipeDisplayInfo { readonly name: string; readonly displayName: string; readonly description: string; readonly tags: readonly string[]; readonly isBuiltIn: boolean; readonly isUserDefined: boolean; readonly overridesBuiltIn: boolean; } /** Registry for fitness recipes, loading built-in and user-defined recipes */ export declare class FitnessRecipeRegistry extends RecipeRegistry { private readonly _overriddenBuiltIns; constructor(); private registerBuiltInRecipes; /** * Register a fitness recipe. Throws on duplicate id/name unless * `allowOverwrite: true` is passed — historical contract preserved * by routing through the kernel registry's `throwOnDuplicate` flag. */ register(recipe: FitnessRecipe, options?: { allowOverwrite?: boolean; }): void; /** Check whether a built-in recipe has been overridden by a user recipe */ isOverridden(name: string): boolean; /** Return the names of all built-in recipes overridden by user recipes */ getOverriddenBuiltIns(): readonly string[]; /** Clear all recipes and re-register built-in recipes */ reset(): void; /** Return display-friendly info for all registered recipes */ listForDisplay(): readonly RecipeDisplayInfo[]; } //# sourceMappingURL=registry.d.ts.map