/**
 * ElementValidation - Common validation logic for element managers
 *
 * Provides shared validation patterns for all element types:
 * - Name, description, category validation
 * - Trigger word validation
 * - Author and version validation
 *
 * SECURITY: All validation uses sanitizeInput and proper type checking
 * UNICODE HANDLING: Uses UnicodeValidator for safe string processing
 *
 * FIX: DMCP-SEC-006 - Security audit suppression
 * This file provides validation utilities only.
 * No audit logging is required - logging happens in the calling managers.
 * @security-audit-suppress DMCP-SEC-006
 */
/**
 * Validation constants shared across element types
 */
export declare const VALIDATION_CONSTANTS: {
    readonly MAX_NAME_LENGTH: 100;
    readonly MAX_DESCRIPTION_LENGTH: 500;
    readonly MAX_CATEGORY_LENGTH: 50;
    readonly MAX_TAG_LENGTH: 50;
    readonly MAX_AUTHOR_LENGTH: 100;
    readonly MAX_VERSION_LENGTH: 20;
    readonly MAX_TRIGGER_LENGTH: 50;
    readonly MAX_TRIGGERS: 20;
    readonly TRIGGER_VALIDATION_REGEX: RegExp;
};
/**
 * Result of trigger validation
 */
export interface TriggerValidationResult {
    valid: string[];
    rejected: string[];
    warnings: string[];
}
/**
 * Static utility class for common validation operations
 */
export declare class ElementValidation {
    /**
     * Validate and sanitize a name field
     * Applies Unicode normalization and length limits
     *
     * @param name - Raw name value
     * @param maxLength - Maximum length (default: 100)
     * @returns Sanitized name
     */
    static validateName(name: any, maxLength?: number): string;
    /**
     * Validate and sanitize a description field
     *
     * @param description - Raw description value
     * @param maxLength - Maximum length (default: 500)
     * @returns Sanitized description or undefined
     */
    static validateDescription(description: any, maxLength?: number): string | undefined;
    /**
     * Validate and sanitize an author field
     *
     * @param author - Raw author value
     * @returns Sanitized author or undefined
     */
    static validateAuthor(author: any): string | undefined;
    /**
     * Validate and sanitize a version string
     *
     * @param version - Raw version value
     * @returns Sanitized version or undefined
     */
    static validateVersion(version: any): string | undefined;
    /**
     * Validate and sanitize an array of tags
     *
     * @param tags - Raw tags array
     * @returns Sanitized tags array
     */
    static validateTags(tags: any): string[];
    /**
     * Validate and process triggers with detailed logging
     * Follows pattern from SkillManager (Issue #1139) and MemoryManager (Issue #1133)
     *
     * @param triggers - Raw triggers array
     * @param elementName - Element name for logging
     * @param maxTriggers - Maximum number of triggers (default: 20)
     * @returns Validation result with valid and rejected triggers
     */
    static validateTriggers(triggers: any[], elementName?: string, maxTriggers?: number): TriggerValidationResult;
    /**
     * Validate a category field
     *
     * @param category - Raw category value
     * @returns Sanitized category or undefined
     */
    static validateCategory(category: any): string | undefined;
    /**
     * Validate and sanitize common element metadata fields
     * Returns an object with all common validated fields
     *
     * @param data - Raw metadata object
     * @returns Validated common metadata fields
     */
    static validateCommonMetadata(data: any): {
        name?: string;
        description?: string;
        author?: string;
        version?: string;
        category?: string;
        tags?: string[];
        triggers?: string[];
    };
    /**
     * Validate a numeric field with min/max bounds
     *
     * @param value - Raw numeric value
     * @param min - Minimum value (default: 0)
     * @param max - Maximum value (default: Number.MAX_SAFE_INTEGER)
     * @returns Validated number
     */
    static validateNumber(value: any, min?: number, max?: number): number;
    /**
     * Validate a boolean field
     *
     * @param value - Raw boolean value
     * @param defaultValue - Default if value is undefined
     * @returns Boolean value
     */
    static validateBoolean(value: any, defaultValue?: boolean): boolean;
}
//# sourceMappingURL=ElementValidation.d.ts.map