/** * SMTP Client Connection Manager * Connection pooling and lifecycle management */ import { EventEmitter } from 'node:events'; import type { ISmtpClientOptions, ISmtpConnection, IConnectionPoolStatus } from './interfaces.js'; export declare class ConnectionManager extends EventEmitter { private options; private connections; private pendingConnections; private idleTimeout; constructor(options: ISmtpClientOptions); /** * Get or create a connection */ getConnection(): Promise; /** * Create a new connection */ createConnection(): Promise; /** * Release a connection back to the pool or close it */ releaseConnection(connection: ISmtpConnection): void; /** * Close a specific connection */ closeConnection(connection: ISmtpConnection): void; /** * Close all connections */ closeAllConnections(): void; /** * Get connection pool status */ getPoolStatus(): IConnectionPoolStatus; /** * Update connection activity timestamp */ updateActivity(connection: ISmtpConnection): void; private establishSocket; private setupSocketHandlers; private findIdleConnection; private shouldReuseConnection; private getActiveConnectionCount; private getConnectionId; private setupIdleCleanup; }