import type { ContentIssue } from "../game/contentValidation.js"; import type { RecipeDef } from "./recipe.js"; /** Caller catalogs for native crafting references; omission leaves that namespace unchecked. */ export interface RecipeCatalogValidationOptions { hasReference?(kind: "item" | "station" | "unlock", id: string): boolean; } /** * Validate native recipes before registration: ids, counts, timing and caller-catalog references. * Empty outputs are valid for game-owned benefits; fractional and zero counts are allowed. * Negative/nonfinite counts, durations and ranges reject. Duplicate input rows reject because the * crafting input check does not aggregate them; consolidate their counts into one row. * No price, scarcity, story or cycle policy is imposed. O(recipes + item rows + requirements). * * @capability recipe-catalog-validation locate broken crafting item/station/unlock references, duplicate inputs and invalid authored quantities with repair guidance */ export declare function validateRecipeCatalog(recipes: readonly RecipeDef[], options?: RecipeCatalogValidationOptions): ContentIssue[];