import { ReactNode } from 'react'; export interface AthenaAuthEmailTemplateMetadata { componentName: string; description: string; eventType?: string; isCanonical: boolean; optionalVariables: readonly string[]; overrideSelector: "eventType" | "templateKey"; requiredVariables: readonly string[]; templateKey: string; } export type AthenaAuthEmailComponent = ((props: TProps) => ReactNode) & AthenaAuthEmailTemplateMetadata; export declare const ATHENA_AUTH_EMAIL_TEMPLATE_CATALOG: { readonly accountDeletionConfirmation: { readonly componentName: "AccountDeletionConfirmationEmail"; readonly description: "Confirm account deletion before destructive delete."; readonly eventType: "user.account.delete.confirmation"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["verification_url"]; readonly templateKey: "account_deletion_confirmation_email"; }; readonly changeEmailConfirmation: { readonly componentName: "ChangeEmailConfirmationEmail"; readonly description: "Confirm a pending user email address change."; readonly eventType: "user.email.change.confirmation"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["verification_url"]; readonly templateKey: "change_email_confirmation_email"; }; readonly emailChanged: { readonly componentName: "EmailChangedEmail"; readonly description: "Notification sent after an email address changes, including optional revert guidance."; readonly eventType: "user.email.changed"; readonly isCanonical: false; readonly optionalVariables: readonly ["app_name", "support_email", "revert_url"]; readonly overrideSelector: "eventType"; readonly requiredVariables: readonly ["old_email", "new_email"]; readonly templateKey: "email_changed_email"; }; readonly emailVerification: { readonly componentName: "EmailVerificationEmail"; readonly description: "Verify a user email address after signup or a resend request."; readonly eventType: "user.email.verify"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["verification_url"]; readonly templateKey: "verification_email"; }; readonly magicLink: { readonly componentName: "MagicLinkEmail"; readonly description: "Passwordless sign-in email for the broader email-based sign-in flow."; readonly eventType: "user.sign-in.email"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["sign_in_url"]; readonly templateKey: "magic_link_email"; }; readonly newDevice: { readonly componentName: "NewDeviceEmail"; readonly description: "Security alert for a new sign-in or other suspicious activity."; readonly eventType: "user.security.alert"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "support_url", "support_email", "secure_account_url", "device_browser", "device_os", "device_location", "device_ip_address", "device_timestamp"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["alert_title", "alert_details"]; readonly templateKey: "security_alert_email"; }; readonly organizationCreated: { readonly componentName: "OrganizationCreatedEmail"; readonly description: "Organization creation confirmation and onboarding."; readonly eventType: "organization.create"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "organization_url"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name"]; readonly templateKey: "organization_created_email"; }; readonly organizationInvitation: { readonly componentName: "OrganizationInvitationEmail"; readonly description: "Invite a member to join an organization."; readonly eventType: "organization.member.invite"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "role", "inviter_identity", "invitation_url"]; readonly templateKey: "organization_invitation_email"; }; readonly organizationInvitationReminder: { readonly componentName: "OrganizationInvitationReminderEmail"; readonly description: "Reminder message for pending organization invitations."; readonly eventType: "organization.member.invite.reminder"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "role", "inviter_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "invitation_url"]; readonly templateKey: "organization_invitation_reminder_email"; }; readonly organizationInvitationRevoked: { readonly componentName: "OrganizationInvitationRevokedEmail"; readonly description: "Notification that an invitation has been revoked."; readonly eventType: "organization.member.invite.revoked"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "inviter_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "invited_email"]; readonly templateKey: "organization_invitation_revoked_email"; }; readonly organizationMemberAdded: { readonly componentName: "OrganizationMemberAddedEmail"; readonly description: "Notify when a member is added without invite flow."; readonly eventType: "organization.member.added"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "actor_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "member_identity"]; readonly templateKey: "organization_member_added_email"; }; readonly organizationMemberRemoved: { readonly componentName: "OrganizationMemberRemovedEmail"; readonly description: "Notify when a member is removed from an organization."; readonly eventType: "organization.member.removed"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "actor_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "member_identity"]; readonly templateKey: "organization_member_removed_email"; }; readonly organizationMemberRoleUpdated: { readonly componentName: "OrganizationMemberRoleUpdatedEmail"; readonly description: "Notify when organization member role is changed."; readonly eventType: "organization.member.role.updated"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "previous_role", "actor_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "member_identity", "new_role"]; readonly templateKey: "organization_member_role_updated_email"; }; readonly otp: { readonly componentName: "OtpEmail"; readonly description: "One-time passcode delivery for two-factor authentication."; readonly eventType: "user.sign-in.otp"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["otp_code"]; readonly templateKey: "two_factor_otp_email"; }; readonly passwordChanged: { readonly componentName: "PasswordChangedEmail"; readonly description: "Security notification after a password change completes."; readonly eventType: "user.password.changed"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "support_url", "support_email", "secure_account_url"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly []; readonly templateKey: "password_changed_email"; }; readonly resetPassword: { readonly componentName: "ResetPasswordEmail"; readonly description: "Password reset link email."; readonly eventType: "user.password.reset"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["reset_url"]; readonly templateKey: "password_reset_email"; }; readonly welcome: { readonly componentName: "WelcomeEmail"; readonly description: "Welcome message after account creation."; readonly eventType: "user.sign-up.welcome"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "dashboard_url"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["user_name"]; readonly templateKey: "welcome_email"; }; }; export type AthenaAuthEmailTemplateName = keyof typeof ATHENA_AUTH_EMAIL_TEMPLATE_CATALOG; export declare function getAthenaAuthEmailTemplateCatalog(): ({ readonly componentName: "AccountDeletionConfirmationEmail"; readonly description: "Confirm account deletion before destructive delete."; readonly eventType: "user.account.delete.confirmation"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["verification_url"]; readonly templateKey: "account_deletion_confirmation_email"; } | { readonly componentName: "ChangeEmailConfirmationEmail"; readonly description: "Confirm a pending user email address change."; readonly eventType: "user.email.change.confirmation"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["verification_url"]; readonly templateKey: "change_email_confirmation_email"; } | { readonly componentName: "EmailChangedEmail"; readonly description: "Notification sent after an email address changes, including optional revert guidance."; readonly eventType: "user.email.changed"; readonly isCanonical: false; readonly optionalVariables: readonly ["app_name", "support_email", "revert_url"]; readonly overrideSelector: "eventType"; readonly requiredVariables: readonly ["old_email", "new_email"]; readonly templateKey: "email_changed_email"; } | { readonly componentName: "EmailVerificationEmail"; readonly description: "Verify a user email address after signup or a resend request."; readonly eventType: "user.email.verify"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["verification_url"]; readonly templateKey: "verification_email"; } | { readonly componentName: "MagicLinkEmail"; readonly description: "Passwordless sign-in email for the broader email-based sign-in flow."; readonly eventType: "user.sign-in.email"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["sign_in_url"]; readonly templateKey: "magic_link_email"; } | { readonly componentName: "NewDeviceEmail"; readonly description: "Security alert for a new sign-in or other suspicious activity."; readonly eventType: "user.security.alert"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "support_url", "support_email", "secure_account_url", "device_browser", "device_os", "device_location", "device_ip_address", "device_timestamp"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["alert_title", "alert_details"]; readonly templateKey: "security_alert_email"; } | { readonly componentName: "OrganizationCreatedEmail"; readonly description: "Organization creation confirmation and onboarding."; readonly eventType: "organization.create"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "organization_url"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name"]; readonly templateKey: "organization_created_email"; } | { readonly componentName: "OrganizationInvitationEmail"; readonly description: "Invite a member to join an organization."; readonly eventType: "organization.member.invite"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "role", "inviter_identity", "invitation_url"]; readonly templateKey: "organization_invitation_email"; } | { readonly componentName: "OrganizationInvitationReminderEmail"; readonly description: "Reminder message for pending organization invitations."; readonly eventType: "organization.member.invite.reminder"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "role", "inviter_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "invitation_url"]; readonly templateKey: "organization_invitation_reminder_email"; } | { readonly componentName: "OrganizationInvitationRevokedEmail"; readonly description: "Notification that an invitation has been revoked."; readonly eventType: "organization.member.invite.revoked"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "inviter_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "invited_email"]; readonly templateKey: "organization_invitation_revoked_email"; } | { readonly componentName: "OrganizationMemberAddedEmail"; readonly description: "Notify when a member is added without invite flow."; readonly eventType: "organization.member.added"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "actor_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "member_identity"]; readonly templateKey: "organization_member_added_email"; } | { readonly componentName: "OrganizationMemberRemovedEmail"; readonly description: "Notify when a member is removed from an organization."; readonly eventType: "organization.member.removed"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "actor_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "member_identity"]; readonly templateKey: "organization_member_removed_email"; } | { readonly componentName: "OrganizationMemberRoleUpdatedEmail"; readonly description: "Notify when organization member role is changed."; readonly eventType: "organization.member.role.updated"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "previous_role", "actor_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "member_identity", "new_role"]; readonly templateKey: "organization_member_role_updated_email"; } | { readonly componentName: "OtpEmail"; readonly description: "One-time passcode delivery for two-factor authentication."; readonly eventType: "user.sign-in.otp"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["otp_code"]; readonly templateKey: "two_factor_otp_email"; } | { readonly componentName: "PasswordChangedEmail"; readonly description: "Security notification after a password change completes."; readonly eventType: "user.password.changed"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "support_url", "support_email", "secure_account_url"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly []; readonly templateKey: "password_changed_email"; } | { readonly componentName: "ResetPasswordEmail"; readonly description: "Password reset link email."; readonly eventType: "user.password.reset"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["reset_url"]; readonly templateKey: "password_reset_email"; } | { readonly componentName: "WelcomeEmail"; readonly description: "Welcome message after account creation."; readonly eventType: "user.sign-up.welcome"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "dashboard_url"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["user_name"]; readonly templateKey: "welcome_email"; })[]; export declare function getAthenaAuthEmailTemplate(templateKey: string): { readonly componentName: "AccountDeletionConfirmationEmail"; readonly description: "Confirm account deletion before destructive delete."; readonly eventType: "user.account.delete.confirmation"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["verification_url"]; readonly templateKey: "account_deletion_confirmation_email"; } | { readonly componentName: "ChangeEmailConfirmationEmail"; readonly description: "Confirm a pending user email address change."; readonly eventType: "user.email.change.confirmation"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["verification_url"]; readonly templateKey: "change_email_confirmation_email"; } | { readonly componentName: "EmailChangedEmail"; readonly description: "Notification sent after an email address changes, including optional revert guidance."; readonly eventType: "user.email.changed"; readonly isCanonical: false; readonly optionalVariables: readonly ["app_name", "support_email", "revert_url"]; readonly overrideSelector: "eventType"; readonly requiredVariables: readonly ["old_email", "new_email"]; readonly templateKey: "email_changed_email"; } | { readonly componentName: "EmailVerificationEmail"; readonly description: "Verify a user email address after signup or a resend request."; readonly eventType: "user.email.verify"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["verification_url"]; readonly templateKey: "verification_email"; } | { readonly componentName: "MagicLinkEmail"; readonly description: "Passwordless sign-in email for the broader email-based sign-in flow."; readonly eventType: "user.sign-in.email"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["sign_in_url"]; readonly templateKey: "magic_link_email"; } | { readonly componentName: "NewDeviceEmail"; readonly description: "Security alert for a new sign-in or other suspicious activity."; readonly eventType: "user.security.alert"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "support_url", "support_email", "secure_account_url", "device_browser", "device_os", "device_location", "device_ip_address", "device_timestamp"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["alert_title", "alert_details"]; readonly templateKey: "security_alert_email"; } | { readonly componentName: "OrganizationCreatedEmail"; readonly description: "Organization creation confirmation and onboarding."; readonly eventType: "organization.create"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "organization_url"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name"]; readonly templateKey: "organization_created_email"; } | { readonly componentName: "OrganizationInvitationEmail"; readonly description: "Invite a member to join an organization."; readonly eventType: "organization.member.invite"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "role", "inviter_identity", "invitation_url"]; readonly templateKey: "organization_invitation_email"; } | { readonly componentName: "OrganizationInvitationReminderEmail"; readonly description: "Reminder message for pending organization invitations."; readonly eventType: "organization.member.invite.reminder"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "role", "inviter_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "invitation_url"]; readonly templateKey: "organization_invitation_reminder_email"; } | { readonly componentName: "OrganizationInvitationRevokedEmail"; readonly description: "Notification that an invitation has been revoked."; readonly eventType: "organization.member.invite.revoked"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "inviter_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "invited_email"]; readonly templateKey: "organization_invitation_revoked_email"; } | { readonly componentName: "OrganizationMemberAddedEmail"; readonly description: "Notify when a member is added without invite flow."; readonly eventType: "organization.member.added"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "actor_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "member_identity"]; readonly templateKey: "organization_member_added_email"; } | { readonly componentName: "OrganizationMemberRemovedEmail"; readonly description: "Notify when a member is removed from an organization."; readonly eventType: "organization.member.removed"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "actor_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "member_identity"]; readonly templateKey: "organization_member_removed_email"; } | { readonly componentName: "OrganizationMemberRoleUpdatedEmail"; readonly description: "Notify when organization member role is changed."; readonly eventType: "organization.member.role.updated"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "previous_role", "actor_identity"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["organization_name", "member_identity", "new_role"]; readonly templateKey: "organization_member_role_updated_email"; } | { readonly componentName: "OtpEmail"; readonly description: "One-time passcode delivery for two-factor authentication."; readonly eventType: "user.sign-in.otp"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["otp_code"]; readonly templateKey: "two_factor_otp_email"; } | { readonly componentName: "PasswordChangedEmail"; readonly description: "Security notification after a password change completes."; readonly eventType: "user.password.changed"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "support_url", "support_email", "secure_account_url"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly []; readonly templateKey: "password_changed_email"; } | { readonly componentName: "ResetPasswordEmail"; readonly description: "Password reset link email."; readonly eventType: "user.password.reset"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["reset_url"]; readonly templateKey: "password_reset_email"; } | { readonly componentName: "WelcomeEmail"; readonly description: "Welcome message after account creation."; readonly eventType: "user.sign-up.welcome"; readonly isCanonical: true; readonly optionalVariables: readonly ["app_name", "dashboard_url"]; readonly overrideSelector: "templateKey"; readonly requiredVariables: readonly ["user_name"]; readonly templateKey: "welcome_email"; } | undefined; export declare function withAthenaAuthEmailTemplate(component: (props: TProps) => ReactNode, metadata: AthenaAuthEmailTemplateMetadata): AthenaAuthEmailComponent;