/** * Copyright © 2026 Anonyome Labs, Inc. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 */ import { ListOutput } from '@sudoplatform/sudo-common'; import { SudoPlatformSignInCallback } from '@sudoplatform/sudo-user'; import { BlockEmailAddressesInput, UnblockEmailAddressesByHashedValueInput, UnblockEmailAddressesInput } from './inputs/blockedAddresses'; import { CancelScheduledDraftMessageInput, CreateDraftEmailMessageInput, DeleteDraftEmailMessagesInput, GetDraftEmailMessageInput, ListDraftEmailMessageMetadataForEmailAddressIdInput, ListDraftEmailMessagesForEmailAddressIdInput, ListScheduledDraftMessagesForEmailAddressIdInput, ScheduleSendDraftMessageInput, UpdateDraftEmailMessageInput } from './inputs/draftEmailMessage'; import { CheckEmailAddressAvailabilityInput, GetEmailAddressInput, ListEmailAddressesForSudoIdInput, ListEmailAddressesInput, LookupEmailAddressesPublicInfoInput, ProvisionEmailAddressInput, UpdateEmailAddressMetadataInput } from './inputs/emailAddress'; import { CreateCustomEmailFolderInput, DeleteCustomEmailFolderInput, DeleteMessagesForFolderIdInput, ListEmailFoldersForEmailAddressIdInput, UpdateCustomEmailFolderInput } from './inputs/emailFolder'; import { DeprovisionEmailMaskInput, DisableEmailMaskInput, EnableEmailMaskInput, ListEmailMasksForOwnerInput, ProvisionEmailMaskInput, UpdateEmailMaskInput } from './inputs/emailMask'; import { GetEmailMessageInput, GetEmailMessageRfc822DataInput, GetEmailMessageWithBodyInput, ListEmailMessagesForEmailAddressIdInput, ListEmailMessagesForEmailFolderIdInput, ListEmailMessagesInput, SendEmailMessageInput, SendMaskedEmailMessageInput, UpdateEmailMessagesInput } from './inputs/emailMessage'; import { SudoEmailClient, SudoEmailClientOptions } from './sudoEmailClient'; import { ScheduledDraftMessage, UpdatedEmailMessageSuccess } from './typings'; import { BatchOperationResult, EmailMessageOperationFailureResult } from './typings/batchOperationResult'; import { UnsealedBlockedAddress } from './typings/blockedAddresses'; import { ConfigurationData } from './typings/configurationData'; import { DeleteEmailMessageSuccessResult } from './typings/deleteEmailMessageSuccessResult'; import { DraftEmailMessage } from './typings/draftEmailMessage'; import { DraftEmailMessageMetadata } from './typings/draftEmailMessageMetadata'; import { EmailAddress } from './typings/emailAddress'; import { EmailAddressPublicInfo } from './typings/emailAddressPublicInfo'; import { EmailFolder } from './typings/emailFolder'; import { EmailMask } from './typings/emailMask'; import { EmailMessage, EmailMessageSubscriber, SendEmailMessageResult } from './typings/emailMessage'; import { EmailMessageRfc822Data } from './typings/emailMessageRfc822Data'; import { EmailMessageWithBody } from './typings/emailMessageWithBody'; import { ListEmailAddressesResult, ListEmailMessagesResult } from './typings/listOperationResult'; import { VerifyExternalEmailAddressInput, VerifyExternalEmailAddressResult } from './typings/verifyExternalEmailAddress'; export declare class DefaultSudoEmailClient implements SudoEmailClient { private readonly apiClient; private readonly userClient; private readonly configurationDataService; private readonly emailAccountService; private readonly emailDomainService; private readonly emailFolderService; private readonly emailMessageService; private readonly emailAddressBlocklistService; private readonly emailMaskService; private readonly emailCryptoService; private readonly sudoCryptoProvider; private readonly keyManager; private readonly identityServiceConfig; private readonly emailServiceConfig; private readonly signInGuard; private readonly log; private readonly mutex; constructor(opts: SudoEmailClientOptions); setSignInCallback(callback?: SudoPlatformSignInCallback): void; getConfigurationData(): Promise; provisionEmailAddress({ emailAddress, ownershipProofToken, alias, allowSymmetricKeyGeneration, }: ProvisionEmailAddressInput): Promise; deprovisionEmailAddress(id: string): Promise; updateEmailAddressMetadata({ id, values, }: UpdateEmailAddressMetadataInput): Promise; sendEmailMessage({ senderEmailAddressId, emailMessageHeader, body, attachments, inlineAttachments, replyingMessageId, forwardingMessageId, }: SendEmailMessageInput): Promise; sendMaskedEmailMessage({ senderEmailMaskId, emailMessageHeader, body, attachments, inlineAttachments, replyingMessageId, forwardingMessageId, }: SendMaskedEmailMessageInput): Promise; updateEmailMessages({ ids, values, }: UpdateEmailMessagesInput): Promise>; deleteEmailMessage(id: string): Promise; deleteMessagesForFolderId(input: DeleteMessagesForFolderIdInput): Promise; deleteEmailMessages(ids: string[]): Promise>; getSupportedEmailDomains(): Promise; getConfiguredEmailDomains(): Promise; getEmailMaskDomains(): Promise; checkEmailAddressAvailability({ localParts, domains, }: CheckEmailAddressAvailabilityInput): Promise; getEmailAddress({ id, }: GetEmailAddressInput): Promise; listEmailAddresses(input?: ListEmailAddressesInput): Promise; listEmailAddressesForSudoId({ sudoId, limit, nextToken, }: ListEmailAddressesForSudoIdInput): Promise; lookupEmailAddressesPublicInfo({ emailAddresses, }: LookupEmailAddressesPublicInfoInput): Promise; listEmailFoldersForEmailAddressId({ emailAddressId, limit, nextToken, }: ListEmailFoldersForEmailAddressIdInput): Promise>; createCustomEmailFolder({ emailAddressId, customFolderName, allowSymmetricKeyGeneration, }: CreateCustomEmailFolderInput): Promise; deleteCustomEmailFolder({ emailFolderId, emailAddressId, }: DeleteCustomEmailFolderInput): Promise; updateCustomEmailFolder({ emailAddressId, emailFolderId, values, allowSymmetricKeyGeneration, }: UpdateCustomEmailFolderInput): Promise; blockEmailAddresses(input: BlockEmailAddressesInput): Promise>; unblockEmailAddresses(input: UnblockEmailAddressesInput): Promise>; unblockEmailAddressesByHashedValue(input: UnblockEmailAddressesByHashedValueInput): Promise>; getEmailAddressBlocklist(): Promise; createDraftEmailMessage({ rfc822Data, senderEmailAddressId, }: CreateDraftEmailMessageInput): Promise; updateDraftEmailMessage({ id, rfc822Data, senderEmailAddressId, }: UpdateDraftEmailMessageInput): Promise; deleteDraftEmailMessages({ ids, emailAddressId, }: DeleteDraftEmailMessagesInput): Promise>; getDraftEmailMessage({ id, emailAddressId, }: GetDraftEmailMessageInput): Promise; listDraftEmailMessages(): Promise; listDraftEmailMessagesForEmailAddressId({ emailAddressId, limit, nextToken, }: ListDraftEmailMessagesForEmailAddressIdInput): Promise>; /** * @deprecated The method should not be used. Instead use listDraftEmailMessageMetadataForEmailAddressId. */ listDraftEmailMessageMetadata(): Promise; listDraftEmailMessageMetadataForEmailAddressId({ emailAddressId, limit, nextToken, }: ListDraftEmailMessageMetadataForEmailAddressIdInput): Promise>; scheduleSendDraftMessage({ id, emailAddressId, sendAt, }: ScheduleSendDraftMessageInput): Promise; cancelScheduledDraftMessage({ id, emailAddressId, }: CancelScheduledDraftMessageInput): Promise; listScheduledDraftMessagesForEmailAddressId({ emailAddressId, filter, limit, nextToken, }: ListScheduledDraftMessagesForEmailAddressIdInput): Promise>; getEmailMessage({ id, }: GetEmailMessageInput): Promise; getEmailMessageWithBody({ id, emailAddressId, }: GetEmailMessageWithBodyInput): Promise; getEmailMessageRfc822Data({ id, emailAddressId, }: GetEmailMessageRfc822DataInput): Promise; listEmailMessages({ dateRange, limit, sortOrder, nextToken, includeDeletedMessages, }: ListEmailMessagesInput): Promise; listEmailMessagesForEmailAddressId({ emailAddressId, dateRange, limit, sortOrder, nextToken, includeDeletedMessages, }: ListEmailMessagesForEmailAddressIdInput): Promise; listEmailMessagesForEmailFolderId({ folderId, dateRange, limit, sortOrder, nextToken, includeDeletedMessages, }: ListEmailMessagesForEmailFolderIdInput): Promise; provisionEmailMask({ maskAddress, realAddress, ownershipProofToken, expiresAt, metadata, }: ProvisionEmailMaskInput): Promise; deprovisionEmailMask(input: DeprovisionEmailMaskInput): Promise; updateEmailMask(input: UpdateEmailMaskInput): Promise; enableEmailMask(input: EnableEmailMaskInput): Promise; disableEmailMask(input: DisableEmailMaskInput): Promise; listEmailMasksForOwner(input?: ListEmailMasksForOwnerInput): Promise>; verifyExternalEmailAddress(input: VerifyExternalEmailAddressInput): Promise; subscribeToEmailMessages(subscriptionId: string, subscriber: EmailMessageSubscriber): Promise; unsubscribeFromEmailMessages(subscriptionId: string): void; exportKeys(): Promise; importKeys(archiveData: ArrayBuffer): Promise; reset(): Promise; /** * Checks if user is signed in and invokes callback if needed. * Only performs check if callback is configured. * * Throws: Any error thrown by the sign-in callback */ private ensureSignedIn; }