import { Context } from "hono";
import { EmailTemplateName } from "@authhero/adapter-interfaces";
import { Bindings, Variables } from "../types";
export interface RenderedEmail {
    subject: string;
    html: string;
    from: string;
}
export type RenderResult = {
    kind: "rendered";
    email: RenderedEmail;
}
/** Override exists and tenant explicitly disabled this template. */
 | {
    kind: "disabled";
}
/** No override and no bundled default — caller should use legacy inline HTML. */
 | {
    kind: "none";
};
/**
 * Resolve and render an email template for the current tenant.
 *
 * Lookup order:
 *   1. Tenant override stored in `email_templates` (Auth0-compatible).
 *      If `enabled === false`, returns `{ kind: "disabled" }`.
 *   2. Bundled default (compiled from MJML at build time).
 *   3. `{ kind: "none" }` if neither exists.
 */
export declare function renderEmailTemplate(ctx: Context<{
    Bindings: Bindings;
    Variables: Variables;
}>, templateName: EmailTemplateName, vars: Record<string, unknown>, fallbackFrom: string): Promise<RenderResult>;
/**
 * Render the bundled default template directly, without consulting the
 * adapter. Exposed for tests and tooling.
 */
export declare function renderDefaultTemplate(templateName: EmailTemplateName, vars: Record<string, unknown>): Promise<{
    subject: string;
    html: string;
} | null>;
