import { Json } from "@stackframe/stack-shared/dist/utils/json"; import { XOR } from "@stackframe/stack-shared/dist/utils/types"; //#region src/lib/stack-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; }]> & 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 { AdminEmailOutbox, AdminEmailOutboxBounced, AdminEmailOutboxClicked, AdminEmailOutboxCreatedWith, AdminEmailOutboxDeliveryDelayed, AdminEmailOutboxMarkedAsSpam, AdminEmailOutboxOpened, AdminEmailOutboxPaused, AdminEmailOutboxPreparing, AdminEmailOutboxQueued, AdminEmailOutboxRecipient, AdminEmailOutboxRenderError, AdminEmailOutboxRendering, AdminEmailOutboxScheduled, AdminEmailOutboxSending, AdminEmailOutboxSent, AdminEmailOutboxServerError, AdminEmailOutboxSimpleStatus, AdminEmailOutboxSkipped, AdminEmailOutboxStatus, AdminSendAttemptError, AdminSentEmail, EmailDeliveryCapacity, EmailDeliveryInfo, EmailDeliveryStats, EmailDeliveryWindowStats, SendEmailOptions }; //# sourceMappingURL=index.d.ts.map