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