import type { EmailMessage, Middleware } from "../types.mjs"; /** Renderer contract. Each adapter (`react`, `jsx-email`, `mjml`) ships a * `Renderer` that knows which message field it owns and how to turn it * into HTML. Users register renderers via `withRender(...renderers)`. */ export interface Renderer { readonly name: string; /** Return `true` if this renderer can handle the message (e.g. `msg.react` * is non-nullish). */ match: (msg: EmailMessage) => boolean; /** Render the relevant field to HTML. May be async (React's renderAsync). */ render: (msg: EmailMessage) => Promise | string; } export interface WithRenderOptions { /** Auto-derive `msg.text` from the rendered HTML when `text` is missing. * Default: true. */ autoText?: boolean; } /** Middleware that resolves `msg.react`, `msg.jsx`, or `msg.mjml` into * `msg.html` before the driver sees the message. Registered once per * `createEmail` instance: * * ```ts * import reactRenderer from "unemail/render/react" * * email.use(withRender(reactRenderer())) * ``` */ export declare function withRender(...renderers: Renderer[]): Middleware & { options: WithRenderOptions; };