/**
 * TriggerValidationService - Centralized trigger validation for all element types
 *
 * Eliminates duplicate trigger validation code across PersonaManager, SkillManager,
 * MemoryManager, TemplateManager, AgentManager, and EnsembleManager.
 *
 * Key Features:
 * - Unified validation rules for all element types (max 20 triggers, max 50 chars)
 * - Consistent validation algorithm across all element types
 * - Comprehensive error reporting and logging
 * - Full TypeScript type safety
 *
 * @example
 * ```typescript
 * import { triggerValidationService } from './services/TriggerValidationService';
 *
 * const result = triggerValidationService.validateTriggers(
 *   ['create', 'build', 'invalid!@#'],
 *   ElementType.SKILL,
 *   'my-skill'
 * );
 *
 * console.log(result.validTriggers); // ['create', 'build']
 * console.log(result.rejectedTriggers); // [{ original: 'invalid!@#', reason: '...' }]
 * ```
 */
import { ElementType } from '../../portfolio/types.js';
/**
 * Details about a rejected trigger
 */
export interface RejectedTrigger {
    /** Original trigger value before sanitization */
    original: string;
    /** Human-readable reason why this trigger was rejected */
    reason: string;
}
/**
 * Result of trigger validation operation
 */
export interface TriggerValidationResult {
    /** Successfully validated triggers (sanitized and validated) */
    validTriggers: string[];
    /** Triggers that failed validation with reasons */
    rejectedTriggers: RejectedTrigger[];
    /** Whether any triggers were rejected during validation */
    hasRejections: boolean;
    /** Total count of input triggers (before validation) */
    totalInput: number;
    /** Warnings about truncation, limit exceeded, etc. */
    warnings: string[];
}
/**
 * Service for validating and processing trigger arrays across all element types
 *
 * This service provides centralized trigger validation to eliminate code duplication
 * across element managers. All element types use the same validation rules:
 * - Maximum 20 triggers
 * - Maximum 50 characters per trigger
 * - Only alphanumeric, hyphens, underscores, @, and . allowed
 */
export declare class TriggerValidationService {
    constructor();
    /**
     * Validate an array of triggers for a specific element type
     *
     * Validation process:
     * 1. Limit input array to MAX_TRIGGERS (20)
     * 2. For each trigger:
     *    a. Convert to string
     *    b. Sanitize (remove dangerous characters, trim, limit length to 50)
     *    c. Check if empty after sanitization
     *    d. Validate against regex pattern (/^[a-zA-Z0-9\-_@.]+$/)
     * 3. Collect valid and rejected triggers
     * 4. Log warnings if truncation or rejections occurred
     *
     * @param triggers - Raw trigger array from user input or metadata
     * @param elementType - Type of element being validated (used for logging context)
     * @param elementName - Name of element (used for logging context)
     * @returns Validation result with valid/rejected triggers and warnings
     *
     * @example
     * ```typescript
     * const result = service.validateTriggers(
     *   ['create', 'build', 'test!@#', ''],
     *   ElementType.SKILL,
     *   'code-generator'
     * );
     * // result.validTriggers: ['create', 'build']
     * // result.rejectedTriggers: [
     * //   { original: 'test!@#', reason: '(invalid format ...)' },
     * //   { original: '', reason: '(empty)' }
     * // ]
     * ```
     */
    validateTriggers(triggers: string[], elementType: ElementType, elementName: string): TriggerValidationResult;
    /**
     * Create an empty validation result
     *
     * @param totalInput - Total count of input triggers
     * @returns Empty result with no valid or rejected triggers
     * @private
     */
    private createEmptyResult;
}
//# sourceMappingURL=TriggerValidationService.d.ts.map