import { OnModuleInit } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { SendEmailDto, SendTemplateEmailDto } from '../dto';
export type EmailProvider = 'sendgrid' | 'ses' | 'smtp';
export interface EmailResult {
    success: boolean;
    messageId?: string;
    provider: EmailProvider;
    error?: string;
}
export declare class EmailService implements OnModuleInit {
    private configService;
    private readonly logger;
    private provider;
    private isConfigured;
    private sendgridApiKey;
    private sesRegion;
    private sesAccessKeyId;
    private sesSecretAccessKey;
    private smtpHost;
    private smtpPort;
    private smtpUser;
    private smtpPassword;
    private smtpSecure;
    private fromEmail;
    private fromName;
    private replyTo;
    constructor(configService: ConfigService);
    onModuleInit(): void;
    private checkConfiguration;
    sendEmail(dto: SendEmailDto): Promise<EmailResult>;
    sendTemplateEmail(dto: SendTemplateEmailDto): Promise<EmailResult>;
    sendBulkEmails(emails: SendEmailDto[]): Promise<EmailResult[]>;
    private sendViaSendGrid;
    private sendViaSES;
    private sendViaSMTP;
    private getTemplate;
    private renderTemplate;
    private logEmail;
    isEnabled(): boolean;
    getProvider(): EmailProvider;
}
