// Ports

// Entities
export type { EmailContent, TemplatedEmail } from "./entities/email.ts"
export { emailContentSchema, templatedEmailSchema } from "./entities/email.ts"
export { EmailSendError } from "./errors.ts"
export type { EmailMessage, EmailSender } from "./ports/email-sender.ts"
export { type DatasetExportEmailData, datasetExportTemplate } from "./templates/dataset-export/index.tsx"
export { type ExportFailedEmailData, exportFailedTemplate } from "./templates/export-failed/index.tsx"
export { type ExportReadyEmailData, exportReadyTemplate } from "./templates/export-ready/index.tsx"
export { type InviteMagicLinkEmailData, inviteMagicLinkTemplate } from "./templates/invite-magic-link/index.tsx"
export { type MagicLinkEmailData, magicLinkTemplate } from "./templates/magic-link/index.tsx"
// Notification email registry (multi-channel notifications)
export { NOTIFICATION_EMAIL_RENDERERS } from "./templates/notifications/registry.ts"
export type {
  NotificationEmailRenderContext,
  NotificationEmailRenderer,
  NotificationEmailRendererRegistry,
} from "./templates/notifications/types.ts"
export {
  type SignupExistingAccountMagicLinkEmailData,
  signupExistingAccountMagicLinkTemplate,
} from "./templates/signup-existing-account-magic-link/index.tsx"
export {
  type SignupMagicLinkEmailData,
  signupMagicLinkTemplate,
} from "./templates/signup-magic-link/index.tsx"
// Templates
export type { RenderedEmail } from "./templates/types.ts"
export { type SendEmail, sendEmail } from "./use-cases/send-email.ts"
