import Client from 'mailgun.js/client';
import { MailLogStatus, MailProviderTemplate, SendMailProps, WebhookForSendMailProps, WithExternalId } from './mail-provider.interface';
import { BaseMailProvider, MailProviderProps } from './base-mail-provider';
export interface MailgunMailProviderProps extends MailProviderProps {
    apiKey: string;
    baseDomain: string;
    mailDomain: string;
    webhookEndpointSecret: string;
    fromAddress: string;
    mailgunClient: Client;
}
interface VerifyWebhookSignatureProps {
    timestamp: string;
    token: string;
    signature: string;
}
interface MailgunApiError {
    status: number;
    details: string;
    type: string;
}
export declare class MailgunMailProvider extends BaseMailProvider {
    readonly auth: string;
    readonly baseDomain: string;
    readonly mailDomain: string;
    readonly webhookEndpointSecret: string;
    readonly mailgunClient: Client;
    constructor(props: MailgunMailProviderProps);
    verifyWebhookSignature(props: VerifyWebhookSignatureProps): boolean;
    webhookForSendMail({ req }: WebhookForSendMailProps): Promise<MailLogStatus[]>;
    sendMail(props: SendMailProps): Promise<void>;
    getTemplates(): Promise<MailProviderTemplate[]>;
    isMailgunApiError(error: unknown): error is MailgunApiError;
    getTemplateUrl(template: WithExternalId): string;
}
export {};
