# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.7

import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
import winsdk.windows.applicationmodel.email
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.security.cryptography.certificates

Self = typing.TypeVar('Self')

class EmailDataProviderConnection(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailDataProviderConnection: ...
    def start(self) -> None: ...
    def add_create_folder_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxCreateFolderRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_create_folder_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_delete_folder_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxDeleteFolderRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_delete_folder_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_download_attachment_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxDownloadAttachmentRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_download_attachment_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_download_message_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxDownloadMessageRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_download_message_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_empty_folder_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxEmptyFolderRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_empty_folder_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_forward_meeting_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxForwardMeetingRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_forward_meeting_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_get_auto_reply_settings_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxGetAutoReplySettingsRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_get_auto_reply_settings_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_mailbox_sync_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxSyncManagerSyncRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_mailbox_sync_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_move_folder_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxMoveFolderRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_move_folder_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_propose_new_time_for_meeting_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxProposeNewTimeForMeetingRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_propose_new_time_for_meeting_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_resolve_recipients_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxResolveRecipientsRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_resolve_recipients_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_server_search_read_batch_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxServerSearchReadBatchRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_server_search_read_batch_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_set_auto_reply_settings_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxSetAutoReplySettingsRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_set_auto_reply_settings_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_update_meeting_response_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxUpdateMeetingResponseRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_update_meeting_response_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_validate_certificates_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[EmailDataProviderConnection, EmailMailboxValidateCertificatesRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_validate_certificates_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class EmailDataProviderTriggerDetails(_winrt.Object):
    connection: typing.Optional[EmailDataProviderConnection]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailDataProviderTriggerDetails: ...

class EmailMailboxCreateFolderRequest(_winrt.Object):
    email_mailbox_id: str
    name: str
    parent_folder_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxCreateFolderRequest: ...
    def report_completed_async(self, folder: typing.Optional[winsdk.windows.applicationmodel.email.EmailFolder]) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self, status: winsdk.windows.applicationmodel.email.EmailMailboxCreateFolderStatus) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxCreateFolderRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxCreateFolderRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxCreateFolderRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxDeleteFolderRequest(_winrt.Object):
    email_folder_id: str
    email_mailbox_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxDeleteFolderRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self, status: winsdk.windows.applicationmodel.email.EmailMailboxDeleteFolderStatus) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxDeleteFolderRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxDeleteFolderRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxDeleteFolderRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxDownloadAttachmentRequest(_winrt.Object):
    email_attachment_id: str
    email_mailbox_id: str
    email_message_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxDownloadAttachmentRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxDownloadAttachmentRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxDownloadAttachmentRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxDownloadAttachmentRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxDownloadMessageRequest(_winrt.Object):
    email_mailbox_id: str
    email_message_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxDownloadMessageRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxDownloadMessageRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxDownloadMessageRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxDownloadMessageRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxEmptyFolderRequest(_winrt.Object):
    email_folder_id: str
    email_mailbox_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxEmptyFolderRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self, status: winsdk.windows.applicationmodel.email.EmailMailboxEmptyFolderStatus) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxEmptyFolderRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxEmptyFolderRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxEmptyFolderRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxForwardMeetingRequest(_winrt.Object):
    comment: str
    email_mailbox_id: str
    email_message_id: str
    forward_header: str
    forward_header_type: winsdk.windows.applicationmodel.email.EmailMessageBodyKind
    recipients: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.applicationmodel.email.EmailRecipient]]
    subject: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxForwardMeetingRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxForwardMeetingRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxForwardMeetingRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxForwardMeetingRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxGetAutoReplySettingsRequest(_winrt.Object):
    email_mailbox_id: str
    requested_format: winsdk.windows.applicationmodel.email.EmailMailboxAutoReplyMessageResponseKind
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxGetAutoReplySettingsRequest: ...
    def report_completed_async(self, auto_reply_settings: typing.Optional[winsdk.windows.applicationmodel.email.EmailMailboxAutoReplySettings]) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxGetAutoReplySettingsRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxGetAutoReplySettingsRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxGetAutoReplySettingsRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxMoveFolderRequest(_winrt.Object):
    email_folder_id: str
    email_mailbox_id: str
    new_folder_name: str
    new_parent_folder_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxMoveFolderRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxMoveFolderRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxMoveFolderRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxMoveFolderRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxProposeNewTimeForMeetingRequest(_winrt.Object):
    comment: str
    email_mailbox_id: str
    email_message_id: str
    new_duration: datetime.timedelta
    new_start_time: datetime.datetime
    subject: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxProposeNewTimeForMeetingRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxProposeNewTimeForMeetingRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxProposeNewTimeForMeetingRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxProposeNewTimeForMeetingRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxResolveRecipientsRequest(_winrt.Object):
    email_mailbox_id: str
    recipients: typing.Optional[winsdk.windows.foundation.collections.IVectorView[str]]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxResolveRecipientsRequest: ...
    def report_completed_async(self, resolution_results: typing.Iterable[winsdk.windows.applicationmodel.email.EmailRecipientResolutionResult]) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxResolveRecipientsRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxResolveRecipientsRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxResolveRecipientsRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxServerSearchReadBatchRequest(_winrt.Object):
    email_folder_id: str
    email_mailbox_id: str
    options: typing.Optional[winsdk.windows.applicationmodel.email.EmailQueryOptions]
    session_id: str
    suggested_batch_size: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxServerSearchReadBatchRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self, batch_status: winsdk.windows.applicationmodel.email.EmailBatchStatus) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def save_message_async(self, message: typing.Optional[winsdk.windows.applicationmodel.email.EmailMessage]) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxServerSearchReadBatchRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxServerSearchReadBatchRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxServerSearchReadBatchRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxSetAutoReplySettingsRequest(_winrt.Object):
    auto_reply_settings: typing.Optional[winsdk.windows.applicationmodel.email.EmailMailboxAutoReplySettings]
    email_mailbox_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxSetAutoReplySettingsRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxSetAutoReplySettingsRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxSetAutoReplySettingsRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxSetAutoReplySettingsRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxSyncManagerSyncRequest(_winrt.Object):
    email_mailbox_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxSyncManagerSyncRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxSyncManagerSyncRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxSyncManagerSyncRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxSyncManagerSyncRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxUpdateMeetingResponseRequest(_winrt.Object):
    comment: str
    email_mailbox_id: str
    email_message_id: str
    response: winsdk.windows.applicationmodel.email.EmailMeetingResponseType
    send_update: _winrt.Boolean
    subject: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxUpdateMeetingResponseRequest: ...
    def report_completed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxUpdateMeetingResponseRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxUpdateMeetingResponseRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxUpdateMeetingResponseRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

class EmailMailboxValidateCertificatesRequest(_winrt.Object):
    certificates: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.security.cryptography.certificates.Certificate]]
    email_mailbox_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxValidateCertificatesRequest: ...
    def report_completed_async(self, validation_statuses: typing.Iterable[winsdk.windows.applicationmodel.email.EmailCertificateValidationStatus]) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def report_failed_async(self) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...

class EmailMailboxValidateCertificatesRequestEventArgs(_winrt.Object):
    request: typing.Optional[EmailMailboxValidateCertificatesRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> EmailMailboxValidateCertificatesRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[winsdk.windows.foundation.Deferral]: ...

