export interface TemplateData {
    [key: string]: any;
}
declare class EmailTemplateService {
    private static instance;
    private constructor();
    static getInstance(): EmailTemplateService;
    private processTemplate;
    /**
     * @param to - Email do destinatário
     * @param subject - Assunto do email
     * @param templateHtml - Template HTML do email, as variáveis devem ser escritas como {{variavel}}
     * @param data - Dados para substituir nas variáveis do template, as chaves devem ser as mesmas das variáveis do template
     * @param options - Opções adicionais do email
     * @returns - Promise que resolve com true se o email foi enviado com sucesso, false caso contrário
     */
    sendTemplateEmail(to: string | string[], subject: string, templateHtml: string, data: TemplateData, options?: {
        cc?: string | string[];
        bcc?: string | string[];
        attachments?: Array<{
            filename: string;
            content: Buffer | string;
            contentType?: string;
        }>;
    }): Promise<boolean>;
    /**
     *
     * @param to - Email do destinatário
     * @param subject - Assunto do email
     * @param message - Mensagem do email
     * @param buttonText - Texto do botão
     * @param buttonUrl - URL do botão
     * @returns - Promise que resolve com true se o email foi enviado com sucesso, false caso contrário
     */
    sendSystemNotification(to: string | string[], subject: string, message: string, buttonText?: string, buttonUrl?: string): Promise<boolean>;
}
declare const _default: EmailTemplateService;
export default _default;
