maildev
Version:
SMTP Server and Web Interface for reading and testing emails during development
88 lines • 1.96 kB
TypeScript
/**
* MailDev Server Orchestrator
*
* Main class that manages all MailDev servers (Storage, SMTP, API)
*/
import { type Storage } from '@maildev/core';
import { type SMTPServer } from '@maildev/smtp';
import { type APIServer } from '@maildev/api';
import type { MailDevConfig } from '../config/types.js';
import { Logger } from '../utils/logger.js';
/**
* Server instances managed by orchestrator
*/
export interface Servers {
storage: Storage;
smtp: SMTPServer;
api?: APIServer;
}
/**
* Orchestrator options
*/
export interface OrchestratorOptions {
config: MailDevConfig;
logger: Logger;
}
/**
* Server Orchestrator
*
* Creates and manages Storage, SMTP, and API servers
*/
export declare class Orchestrator {
private config;
private logger;
private storage;
private smtp;
private api;
private running;
constructor(options: OrchestratorOptions);
/**
* Start all servers
*/
start(): Promise<Servers>;
/**
* Stop all servers gracefully
*/
stop(): Promise<void>;
/**
* Check if servers are running
*/
isRunning(): boolean;
/**
* Get server instances
*/
getServers(): Servers | null;
/**
* Create storage instance based on config
*/
private createStorage;
/**
* Get SMTP authentication config
*/
private getSmtpAuth;
/**
* Get web authentication config
*/
private getWebAuth;
/**
* Get relay configuration
*/
private getRelayConfig;
/**
* Get auto-relay configuration
*/
private getAutoRelayConfig;
/**
* Create SMTP logger adapter
*/
private createSmtpLogger;
/**
* Set up email event handlers
*/
private setupEmailHandlers;
}
/**
* Create a new orchestrator instance
*/
export declare function createOrchestrator(options: OrchestratorOptions): Orchestrator;
//# sourceMappingURL=orchestrator.d.ts.map