/**
 * 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