import { ConfigService } from '@nestjs/config';
import { MailService } from './mail.service';
import { ModelsService } from 'src/models/models.service';
export declare enum OtpPurpose {
    PHONE_VERIFICATION = "otp-phone-verification",
    LOGIN = "otp-login",
    EMAIL_CHANGE = "otp-email-change"
}
export interface InviteEmailData {
    inviteUrl?: string;
    inviterName?: string;
    expiryHours?: number;
    password?: string;
    roleLabel?: string;
}
export declare class EmailService {
    private configService;
    private mailService;
    private model;
    private readonly logger;
    constructor(configService: ConfigService, mailService: MailService, model: ModelsService);
    sendEmailFromDBTemplate(templateName: string, to: string, data: any, language?: string): Promise<boolean>;
    sendOTPEmail(email: string, otp: string, purpose?: OtpPurpose, language?: string, phone?: string): Promise<boolean>;
    sendForgotPasswordEmail(email: string, name: string, resetUrl: string, expiryMinutes?: number, language?: string): Promise<boolean>;
    sendBrokerInviteEmail(email: string, name: string, data: InviteEmailData, language?: string): Promise<boolean>;
    sendStaffInviteEmail(email: string, name: string, data: InviteEmailData, language?: string): Promise<boolean>;
    sendAgentApprovedEmail(email: string, name: string, dashboardUrl: string, language?: string): Promise<boolean>;
    sendAgentRejectedEmail(email: string, name: string, rejectReason: string, resubmitUrl: string, language?: string): Promise<boolean>;
    sendPolicyRenewalNoticeEmail(email: string, data: {
        customerName: string;
        policyNumber: string;
        productName: string;
        expiryDate: string;
        renewalPremium: string;
    }, language?: string): Promise<boolean>;
    sendBroadcastEmail(email: string, name: string, subject: string, message: string, language?: string): Promise<boolean>;
}
