import { Request } from 'express'; /** Contains a template that generates HTML. */ export default abstract class EmailTemplate { /** Loads the handlebars template contents as a string. */ protected abstract loadTemplate(): Promise; /** Loads the handlebars template for plaintext emails as a string. */ protected abstract loadTextTemplate(): Promise; /** The compiled template. */ private template; /** The compiled plaintext template */ private textTemplate; /** Merges data into the handlebars template */ merge(req: Request, data: any): Promise; } /** Returns the external base URL for the given request */ export declare function getExternalBase(req: Request, opts?: Partial): Promise; /** Options when loading the external base URL */ export interface ExternalBaseLoadingOptions { forceDefault: boolean; } /** The merged contents of a template */ export interface MergedContents { html: string; text: string; }