/** * Validation utilities for Evolution API MCP Server * * This module provides validation functions with detailed error messages * and suggestions for parameter correction. */ import { z } from 'zod'; import { ValidationError, ValidationErrorDetail, ErrorContext } from './error-handler'; /** * Validation result interface */ export interface ValidationResult { success: boolean; data?: T; error?: ValidationError; } /** * Common validation schemas with user-friendly error messages */ export declare const ValidationSchemas: { /** * WhatsApp number validation */ whatsappNumber: z.ZodEffects; /** * Instance name validation */ instanceName: z.ZodEffects; /** * URL validation */ url: z.ZodEffects; /** * API key validation */ apiKey: z.ZodEffects; /** * Group JID validation */ groupJid: z.ZodEffects; /** * Message text validation */ messageText: z.ZodEffects; /** * Media URL or base64 validation */ media: z.ZodEffects; /** * Delay validation (in milliseconds) */ delay: z.ZodOptional; /** * Webhook events validation */ webhookEvents: z.ZodEffects, string[], string[]>; }; /** * Validator class for parameter validation with detailed error reporting */ export declare class ParameterValidator { /** * Validate parameters against a Zod schema */ static validate(data: unknown, schema: z.ZodSchema, context?: ErrorContext): ValidationResult; /** * Extract detailed error information from Zod errors */ private static extractZodErrorDetails; /** * Generate helpful suggestions for Zod validation errors */ private static getZodErrorSuggestion; /** * Get specific suggestions for regex validation failures */ private static getRegexSuggestion; /** * Validate WhatsApp number format */ static validateWhatsAppNumber(number: string, context?: ErrorContext): ValidationResult; /** * Validate instance name */ static validateInstanceName(instanceName: string, context?: ErrorContext): ValidationResult; /** * Validate URL */ static validateUrl(url: string, context?: ErrorContext): ValidationResult; /** * Validate API key */ static validateApiKey(apiKey: string, context?: ErrorContext): ValidationResult; /** * Validate group JID */ static validateGroupJid(groupJid: string, context?: ErrorContext): ValidationResult; /** * Validate message text */ static validateMessageText(text: string, context?: ErrorContext): ValidationResult; /** * Validate media (URL or base64) */ static validateMedia(media: string, context?: ErrorContext): ValidationResult; /** * Validate multiple parameters at once */ static validateMultiple>(data: T, schema: z.ZodSchema, context?: ErrorContext): ValidationResult; } /** * Utility functions for common validation scenarios */ export declare const ValidationUtils: { /** * Check if a string is a valid WhatsApp number */ isValidWhatsAppNumber(number: string): boolean; /** * Check if a string is a valid instance name */ isValidInstanceName(instanceName: string): boolean; /** * Check if a string is a valid URL */ isValidUrl(url: string): boolean; /** * Check if a string is a valid group JID */ isValidGroupJid(groupJid: string): boolean; /** * Sanitize phone number (remove common formatting) */ sanitizePhoneNumber(number: string): string; /** * Format phone number for WhatsApp (ensure it has country code) */ formatWhatsAppNumber(number: string, defaultCountryCode?: string): string; /** * Extract validation errors as user-friendly messages */ extractValidationMessages(error: ValidationError): string[]; /** * Create parameter correction hints */ createCorrectionHints(validationDetails: ValidationErrorDetail[]): Record; };