/**
 * 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