/**
 * 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>): 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;
