import { Transporter } from 'nodemailer';
import { SESClient } from '@aws-sdk/client-ses';
import { EmailProviderConfig, SmtpConfig, SendGridConfig, SesConfig } from '../interfaces/email-options.interface';
import { EmailService } from '../services/email.service';
import { ObservabilityService } from '../services/observability.service';
import { ObservabilityConfig } from '../interfaces/observability.interface';
/**
 * Factory for creating email provider configurations
 */
export declare class ProviderFactory {
    /**
     * Create SMTP transporter
     */
    static createSmtpTransporter(config: SmtpConfig): Transporter;
    /**
     * Configure SendGrid
     */
    static configureSendGrid(config: SendGridConfig): void;
    /**
     * Create AWS SES client
     */
    static createSesClient(config: SesConfig): SESClient;
    /**
     * Create provider configuration from legacy SMTP config
     */
    static createProviderConfig(config: SmtpConfig | EmailProviderConfig): EmailProviderConfig;
    /**
     * Validate provider configuration
     */
    static validateProviderConfig(config: EmailProviderConfig): void;
    /**
     * Create a new EmailService instance with proper dependency injection
     */
    static createEmailService(providerConfig: EmailProviderConfig | SmtpConfig, defaultFrom?: {
        email: string;
        name?: string;
    }, observabilityService?: ObservabilityService): EmailService;
    /**
     * Create a new ObservabilityService instance
     */
    static createObservabilityService(config?: ObservabilityConfig): ObservabilityService;
}
//# sourceMappingURL=provider-factory.d.ts.map