/** * SMTP Validation Utilities * Provides validation functions for SMTP server */ import { SmtpState } from '../interfaces.js'; /** * Detects header injection attempts in input strings * @param input - The input string to check * @param context - The context where this input is being used ('smtp-command' or 'email-header') * @returns true if header injection is detected, false otherwise */ export declare function detectHeaderInjection(input: string, context?: 'smtp-command' | 'email-header'): boolean; /** * Sanitizes input by removing or escaping potentially dangerous characters * @param input - The input string to sanitize * @returns Sanitized string */ export declare function sanitizeInput(input: string): string; /** * Validates an email address * @param email - Email address to validate * @returns Whether the email address is valid */ export declare function isValidEmail(email: string): boolean; /** * Validates the MAIL FROM command syntax * @param args - Arguments string from the MAIL FROM command * @returns Object with validation result and extracted data */ export declare function validateMailFrom(args: string): { isValid: boolean; address?: string; params?: Record; errorMessage?: string; }; /** * Validates the RCPT TO command syntax * @param args - Arguments string from the RCPT TO command * @returns Object with validation result and extracted data */ export declare function validateRcptTo(args: string): { isValid: boolean; address?: string; params?: Record; errorMessage?: string; }; /** * Validates the EHLO command syntax * @param args - Arguments string from the EHLO command * @returns Object with validation result and extracted data */ export declare function validateEhlo(args: string): { isValid: boolean; hostname?: string; errorMessage?: string; }; /** * Validates command in the current SMTP state * @param command - SMTP command * @param currentState - Current SMTP state * @returns Whether the command is valid in the current state */ export declare function isValidCommandSequence(command: string, currentState: SmtpState): boolean; /** * Validates if a hostname is valid according to RFC 5321 * @param hostname - Hostname to validate * @returns Whether the hostname is valid */ export declare function isValidHostname(hostname: string): boolean;