/** * ValidationRegistry - Central registry for element validators * * Consolidates all validation services into a single injection point, * reducing constructor bloat in element managers while maintaining * type-specific validation capabilities. * * @example * ```typescript * // In Container.ts * const validationRegistry = new ValidationRegistry( * validationService, * triggerValidationService, * metadataService * ); * * // In element managers * constructor(validationRegistry: ValidationRegistry) { * this.validator = validationRegistry.getValidator(this.elementType); * } * ``` */ import { ElementType } from '../../portfolio/types.js'; import { ValidationService } from './ValidationService.js'; import { TriggerValidationService } from './TriggerValidationService.js'; import { MetadataService } from '../MetadataService.js'; import { ElementValidator } from './ElementValidator.js'; /** * Central registry for element validators */ export declare class ValidationRegistry { private validationService; private triggerValidationService; private metadataService; private validators; private genericValidators; /** * Create a new ValidationRegistry * * @param validationService - Core validation service for input sanitization * @param triggerValidationService - Service for validating trigger keywords * @param metadataService - Service for metadata operations */ constructor(validationService: ValidationService, triggerValidationService: TriggerValidationService, metadataService: MetadataService); /** * Get a validator for the specified element type * * Returns a specialized validator if registered, otherwise returns * a generic validator for that element type. * * @param type - The element type to get a validator for * @returns ElementValidator for the specified type */ getValidator(type: ElementType): ElementValidator; /** * Register a custom validator for an element type * * @param type - The element type to register for * @param validator - The validator implementation */ registerValidator(type: ElementType, validator: ElementValidator): void; /** * Check if a specialized validator is registered for an element type * * @param type - The element type to check * @returns true if a specialized validator is registered */ hasSpecializedValidator(type: ElementType): boolean; /** * Get all registered element types * * @returns Array of element types with registered validators */ getRegisteredTypes(): ElementType[]; /** * Get the underlying validation service * * Used by element managers that need direct access to validation * utilities beyond what the ElementValidator interface provides. * * @returns ValidationService instance */ getValidationService(): ValidationService; /** * Get the underlying trigger validation service * * @returns TriggerValidationService instance */ getTriggerValidationService(): TriggerValidationService; /** * Get the underlying metadata service * * @returns MetadataService instance */ getMetadataService(): MetadataService; /** * Register default validators for all element types */ private registerDefaultValidators; /** * Get or create a generic validator for an element type */ private getGenericValidator; } export type { ElementValidator, ValidationResult, ValidationReport, ElementValidationOptions, MetadataValidationOptions } from './ElementValidator.js'; export { ValidatorHelpers } from './ElementValidator.js'; export { GenericElementValidator } from './GenericElementValidator.js'; export { PersonaElementValidator } from './PersonaElementValidator.js'; export { TemplateElementValidator } from './TemplateElementValidator.js'; export { MemoryElementValidator } from './MemoryElementValidator.js'; export { EnsembleElementValidator } from './EnsembleElementValidator.js'; export { AgentElementValidator } from './AgentElementValidator.js'; export { SkillElementValidator } from './SkillElementValidator.js'; export { ValidationService } from './ValidationService.js'; export { TriggerValidationService } from './TriggerValidationService.js'; //# sourceMappingURL=ValidationRegistry.d.ts.map