import { Json } from "@hexclave/shared/dist/utils/json"; import { XOR } from "@hexclave/shared/dist/utils/types"; //#region src/lib/hexclave-app/email/index.d.ts type AdminSentEmail = { id: string; to: string[]; subject: string; recipient: string; sentAt: Date; error?: unknown; }; type AdminEmailOutboxRecipient = { type: "user-primary-email"; userId: string; } | { type: "user-custom-emails"; userId: string; emails: string[]; } | { type: "custom-emails"; emails: string[]; }; type AdminEmailOutboxStatus = "paused" | "preparing" | "rendering" | "render-error" | "scheduled" | "queued" | "sending" | "server-error" | "skipped" | "bounced" | "delivery-delayed" | "sent" | "opened" | "clicked" | "marked-as-spam"; type AdminEmailOutboxSimpleStatus = "in-progress" | "ok" | "error"; type AdminEmailOutboxCreatedWith = "draft" | "programmatic-call"; type AdminSendAttemptError = { attemptNumber: number; timestamp: string; externalMessage: string; externalDetails: Record; internalMessage: string; internalDetails: Record; }; type AdminEmailOutboxBase = { id: string; createdAt: Date; updatedAt: Date; tsxSource: string; themeId: string | null; to: AdminEmailOutboxRecipient; scheduledAt: Date; createdWith: AdminEmailOutboxCreatedWith; emailDraftId: string | null; emailProgrammaticCallTemplateId: string | null; variables: Record; isPaused: false; hasRendered: false; hasDelivered: false; sendRetries: number; nextSendRetryAt: Date | null; sendAttemptErrors: AdminSendAttemptError[] | null; }; type AdminEmailOutboxRenderedFields = Omit & { hasRendered: true; startedRenderingAt: Date; renderedAt: Date; subject: string; html: string | null; text: string | null; isTransactional: boolean; isHighPriority: boolean; notificationCategoryId: string | null; }; type AdminEmailOutboxStartedSendingFields = AdminEmailOutboxRenderedFields & { startedSendingAt: Date; }; type AdminEmailOutboxFinishedDeliveringFields = Omit & { hasDelivered: true; deliveredAt: Date; }; type AdminEmailOutboxPaused = Omit & { status: "paused"; simpleStatus: "in-progress"; isPaused: true; }; type AdminEmailOutboxPreparing = AdminEmailOutboxBase & { status: "preparing"; simpleStatus: "in-progress"; }; type AdminEmailOutboxRendering = AdminEmailOutboxBase & { status: "rendering"; simpleStatus: "in-progress"; startedRenderingAt: Date; }; type AdminEmailOutboxRenderError = AdminEmailOutboxBase & { status: "render-error"; simpleStatus: "error"; startedRenderingAt: Date; renderedAt: Date; renderError: string; }; type AdminEmailOutboxScheduled = AdminEmailOutboxRenderedFields & { status: "scheduled"; simpleStatus: "in-progress"; }; type AdminEmailOutboxQueued = AdminEmailOutboxRenderedFields & { status: "queued"; simpleStatus: "in-progress"; }; type AdminEmailOutboxSending = AdminEmailOutboxStartedSendingFields & { status: "sending"; simpleStatus: "in-progress"; }; type AdminEmailOutboxServerError = AdminEmailOutboxStartedSendingFields & { status: "server-error"; simpleStatus: "error"; errorAt: Date; serverError: string; }; type AdminEmailOutboxSkipped = Omit & { status: "skipped"; simpleStatus: "ok"; hasRendered: boolean; skippedAt: Date; skippedReason: string; skippedDetails: Record; startedRenderingAt?: Date; renderedAt?: Date; subject?: string; html?: string | null; text?: string | null; isTransactional?: boolean; isHighPriority?: boolean; notificationCategoryId?: string | null; startedSendingAt?: Date; }; type AdminEmailOutboxBounced = AdminEmailOutboxStartedSendingFields & { status: "bounced"; simpleStatus: "error"; bouncedAt: Date; }; type AdminEmailOutboxDeliveryDelayed = AdminEmailOutboxStartedSendingFields & { status: "delivery-delayed"; simpleStatus: "ok"; deliveryDelayedAt: Date; }; type AdminEmailOutboxSent = AdminEmailOutboxFinishedDeliveringFields & { status: "sent"; simpleStatus: "ok"; canHaveDeliveryInfo: boolean; }; type AdminEmailOutboxOpened = AdminEmailOutboxFinishedDeliveringFields & { status: "opened"; simpleStatus: "ok"; openedAt: Date; canHaveDeliveryInfo: true; }; type AdminEmailOutboxClicked = AdminEmailOutboxFinishedDeliveringFields & { status: "clicked"; simpleStatus: "ok"; clickedAt: Date; canHaveDeliveryInfo: true; }; type AdminEmailOutboxMarkedAsSpam = AdminEmailOutboxFinishedDeliveringFields & { status: "marked-as-spam"; simpleStatus: "ok"; markedAsSpamAt: Date; canHaveDeliveryInfo: true; }; type AdminEmailOutbox = AdminEmailOutboxPaused | AdminEmailOutboxPreparing | AdminEmailOutboxRendering | AdminEmailOutboxRenderError | AdminEmailOutboxScheduled | AdminEmailOutboxQueued | AdminEmailOutboxSending | AdminEmailOutboxServerError | AdminEmailOutboxSkipped | AdminEmailOutboxBounced | AdminEmailOutboxDeliveryDelayed | AdminEmailOutboxSent | AdminEmailOutboxOpened | AdminEmailOutboxClicked | AdminEmailOutboxMarkedAsSpam; type SendEmailOptionsBase = { themeId?: string | null | false; subject?: string; notificationCategoryName?: string; scheduledAt?: Date; variables?: Record; }; type SendEmailOptions = SendEmailOptionsBase & XOR<[{ userIds: string[]; }, { allUsers: true; }, { emails: string[]; }]> & XOR<[{ html: string; }, { templateId: string; }, { draftId: string; }]>; type EmailDeliveryWindowStats = { sent: number; bounced: number; marked_as_spam: number; }; type EmailDeliveryStats = { hour: EmailDeliveryWindowStats; day: EmailDeliveryWindowStats; week: EmailDeliveryWindowStats; month: EmailDeliveryWindowStats; }; type EmailDeliveryCapacity = { rate_per_second: number; boost_multiplier: number; penalty_factor: number; is_boost_active: boolean; boost_expires_at: string | null; }; type EmailDeliveryInfo = { stats: EmailDeliveryStats; capacity: EmailDeliveryCapacity; }; //#endregion export { EmailDeliveryCapacity as C, SendEmailOptions as D, EmailDeliveryWindowStats as E, AdminSentEmail as S, EmailDeliveryStats as T, AdminEmailOutboxServerError as _, AdminEmailOutboxDeliveryDelayed as a, AdminEmailOutboxStatus as b, AdminEmailOutboxPaused as c, AdminEmailOutboxRecipient as d, AdminEmailOutboxRenderError as f, AdminEmailOutboxSent as g, AdminEmailOutboxSending as h, AdminEmailOutboxCreatedWith as i, AdminEmailOutboxPreparing as l, AdminEmailOutboxScheduled as m, AdminEmailOutboxBounced as n, AdminEmailOutboxMarkedAsSpam as o, AdminEmailOutboxRendering as p, AdminEmailOutboxClicked as r, AdminEmailOutboxOpened as s, AdminEmailOutbox as t, AdminEmailOutboxQueued as u, AdminEmailOutboxSimpleStatus as v, EmailDeliveryInfo as w, AdminSendAttemptError as x, AdminEmailOutboxSkipped as y }; //# sourceMappingURL=index-CBDR4cNg.d.ts.map