import type { ValidationError, ValidationResult } from './validate.js'; /** Minimal trait shape needed for catalog-level consistency checks. */ export type BuildCatalogTraitShape = { id: string; category: string; incompatibleWith?: string[]; }; /** Minimal catalog shape (compatible with character-creation's BuildCatalog). */ export type BuildCatalogShape = { requiredFlaws: number; maxTraits: number; traits: BuildCatalogTraitShape[]; }; /** * Validate a BuildCatalog's internal self-consistency: the flaw requirement * must be achievable given the catalog's own traits. * * Errors (blocking): * - structural: requiredFlaws/maxTraits not numbers, traits not an array, * malformed trait entries, duplicate trait ids * - `requiredFlaws` > `maxTraits` (the required flaws can never fit) * - fewer selectable flaw-category traits than `requiredFlaws` * - no mutually-compatible subset of flaws of size `requiredFlaws` exists * (satisfiability over the incompatibleWith graph, edges counted in either * declared direction — validateBuild rejects a pair if EITHER side lists * the other) * * Advisories (non-blocking): satisfiability search budget exhausted. */ export declare function validateBuildCatalog(catalog: unknown, path?: string): ValidationResult & { advisories: ValidationError[]; }; //# sourceMappingURL=build-catalog.d.ts.map