/** * SMTP Helper Functions * Provides utility functions for SMTP server implementation */ import * as plugins from '../../../../plugins.js'; import type { ISmtpServerOptions } from '../interfaces.js'; /** * Formats a multi-line SMTP response according to RFC 5321 * @param code - Response code * @param lines - Response lines * @returns Formatted SMTP response */ export declare function formatMultilineResponse(code: number, lines: string[]): string; /** * Generates a unique session ID * @returns Unique session ID */ export declare function generateSessionId(): string; /** * Safely parses an integer from string with a default value * @param value - String value to parse * @param defaultValue - Default value if parsing fails * @returns Parsed integer or default value */ export declare function safeParseInt(value: string | undefined, defaultValue: number): number; /** * Safely gets the socket details * @param socket - Socket to get details from * @returns Socket details object */ export declare function getSocketDetails(socket: plugins.net.Socket | plugins.tls.TLSSocket): { remoteAddress: string; remotePort: number; remoteFamily: string; localAddress: string; localPort: number; encrypted: boolean; }; /** * Gets TLS details if socket is TLS * @param socket - Socket to get TLS details from * @returns TLS details or undefined if not TLS */ export declare function getTlsDetails(socket: plugins.net.Socket | plugins.tls.TLSSocket): { protocol?: string; cipher?: string; authorized?: boolean; } | undefined; /** * Merges default options with provided options * @param options - User provided options * @returns Merged options with defaults */ export declare function mergeWithDefaults(options: Partial): ISmtpServerOptions; /** * Creates a text response formatter for the SMTP server * @param socket - Socket to send responses to * @returns Function to send formatted response */ export declare function createResponseFormatter(socket: plugins.net.Socket | plugins.tls.TLSSocket): (response: string) => void; /** * Extracts SMTP command name from a command line * @param commandLine - Full command line * @returns Command name in uppercase */ export declare function extractCommandName(commandLine: string): string; /** * Extracts SMTP command arguments from a command line * @param commandLine - Full command line * @returns Arguments string */ export declare function extractCommandArgs(commandLine: string): string; /** * Sanitizes data for logging (hides sensitive info) * @param data - Data to sanitize * @returns Sanitized data */ export declare function sanitizeForLogging(data: any): any;