import type { RenderedEmailMessage } from "../server/email-templates.js"; export interface TransactionalEmailDefinition { id: string; name: string; app?: string; trigger: string; recipient: string; recipientLabel: string; sender: string; senderLabel: string; preview: () => RenderedEmailMessage; /** Async preview, used by `renderTransactionalEmailPreviewAsync` when set. */ previewAsync?: () => Promise; } export type RegisteredTransactionalEmail = TransactionalEmailDefinition & { app: string; }; export declare function defineTransactionalEmail(definition: TransactionalEmailDefinition): RegisteredTransactionalEmail; export declare function defineTransactionalEmails(definitions: readonly TransactionalEmailDefinition[]): RegisteredTransactionalEmail[]; export declare function replaceTransactionalEmails(ownerApp: string, idPrefix: string, definitions: readonly TransactionalEmailDefinition[]): RegisteredTransactionalEmail[]; export declare function listTransactionalEmails(): RegisteredTransactionalEmail[]; export declare function getTransactionalEmail(id: string): RegisteredTransactionalEmail | undefined; export declare function renderTransactionalEmailPreview(id: string): RenderedEmailMessage; /** * Preview that also renders an app's override of a framework email, which the * synchronous `renderTransactionalEmailPreview` cannot. */ export declare function renderTransactionalEmailPreviewAsync(id: string): Promise; export { CORE_ACCESS_GRANTED_EMAIL_ID, CORE_ACCESS_REQUESTED_EMAIL_ID, CORE_RESOURCE_SHARED_EMAIL_ID, overrideTransactionalEmail, removeTransactionalEmailOverride, type CoreTransactionalEmailArgs, type CoreTransactionalEmailId, type CoreTransactionalEmailProps, type TransactionalEmailOverride, type TransactionalEmailOverrideResult, } from "./templates.js"; export { escapeEmailHtml } from "../server/email-template.js"; export declare function resetTransactionalEmailRegistry(): void;