import type { AbstractServiceOptions, Accountability, SchemaOverview } from '@directus/types';
import type { Knex } from 'knex';
import type { SendMailOptions, Transporter } from 'nodemailer';
export type EmailOptions = SendMailOptions & {
    template?: {
        name: string;
        data: Record<string, any>;
    };
};
export type DefaultTemplateData = {
    projectName: string;
    projectColor: string;
    projectLogo: string;
    projectUrl: string;
};
export declare class MailService {
    schema: SchemaOverview;
    accountability: Accountability | null;
    knex: Knex;
    mailer: Transporter;
    constructor(opts: AbstractServiceOptions);
    send<T>(data: EmailOptions, options?: {
        defaultTemplateData: DefaultTemplateData;
    }): Promise<T | null>;
    private renderTemplate;
    getDefaultTemplateData(): Promise<{
        projectName: any;
        projectColor: any;
        projectLogo: string;
        projectUrl: any;
    }>;
}
