# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.3.0

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property

import winrt._winrt
import winrt.system
import winrt.windows.applicationmodel.email as windows_applicationmodel_email
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.security.cryptography.certificates as windows_security_cryptography_certificates

Self = typing.TypeVar('Self')

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

@typing.final
class EmailDataProviderTriggerDetails(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailDataProviderTriggerDetails: ...
    @_property
    def connection(self) -> typing.Optional[EmailDataProviderConnection]: ...

@typing.final
class EmailMailboxCreateFolderRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxCreateFolderRequest: ...
    def report_completed_async(self, folder: typing.Optional[windows_applicationmodel_email.EmailFolder], /) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self, status: windows_applicationmodel_email.EmailMailboxCreateFolderStatus, /) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def name(self) -> str: ...
    @_property
    def parent_folder_id(self) -> str: ...

@typing.final
class EmailMailboxCreateFolderRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxCreateFolderRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxCreateFolderRequest]: ...

@typing.final
class EmailMailboxDeleteFolderRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxDeleteFolderRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self, status: windows_applicationmodel_email.EmailMailboxDeleteFolderStatus, /) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_folder_id(self) -> str: ...
    @_property
    def email_mailbox_id(self) -> str: ...

@typing.final
class EmailMailboxDeleteFolderRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxDeleteFolderRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxDeleteFolderRequest]: ...

@typing.final
class EmailMailboxDownloadAttachmentRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxDownloadAttachmentRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_attachment_id(self) -> str: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def email_message_id(self) -> str: ...

@typing.final
class EmailMailboxDownloadAttachmentRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxDownloadAttachmentRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxDownloadAttachmentRequest]: ...

@typing.final
class EmailMailboxDownloadMessageRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxDownloadMessageRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def email_message_id(self) -> str: ...

@typing.final
class EmailMailboxDownloadMessageRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxDownloadMessageRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxDownloadMessageRequest]: ...

@typing.final
class EmailMailboxEmptyFolderRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxEmptyFolderRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self, status: windows_applicationmodel_email.EmailMailboxEmptyFolderStatus, /) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_folder_id(self) -> str: ...
    @_property
    def email_mailbox_id(self) -> str: ...

@typing.final
class EmailMailboxEmptyFolderRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxEmptyFolderRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxEmptyFolderRequest]: ...

@typing.final
class EmailMailboxForwardMeetingRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxForwardMeetingRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def comment(self) -> str: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def email_message_id(self) -> str: ...
    @_property
    def forward_header(self) -> str: ...
    @_property
    def forward_header_type(self) -> windows_applicationmodel_email.EmailMessageBodyKind: ...
    @_property
    def recipients(self) -> typing.Optional[windows_foundation_collections.IVectorView[windows_applicationmodel_email.EmailRecipient]]: ...
    @_property
    def subject(self) -> str: ...

@typing.final
class EmailMailboxForwardMeetingRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxForwardMeetingRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxForwardMeetingRequest]: ...

@typing.final
class EmailMailboxGetAutoReplySettingsRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxGetAutoReplySettingsRequest: ...
    def report_completed_async(self, auto_reply_settings: typing.Optional[windows_applicationmodel_email.EmailMailboxAutoReplySettings], /) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def requested_format(self) -> windows_applicationmodel_email.EmailMailboxAutoReplyMessageResponseKind: ...

@typing.final
class EmailMailboxGetAutoReplySettingsRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxGetAutoReplySettingsRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxGetAutoReplySettingsRequest]: ...

@typing.final
class EmailMailboxMoveFolderRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxMoveFolderRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_folder_id(self) -> str: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def new_folder_name(self) -> str: ...
    @_property
    def new_parent_folder_id(self) -> str: ...

@typing.final
class EmailMailboxMoveFolderRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxMoveFolderRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxMoveFolderRequest]: ...

@typing.final
class EmailMailboxProposeNewTimeForMeetingRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxProposeNewTimeForMeetingRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def comment(self) -> str: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def email_message_id(self) -> str: ...
    @_property
    def new_duration(self) -> datetime.timedelta: ...
    @_property
    def new_start_time(self) -> datetime.datetime: ...
    @_property
    def subject(self) -> str: ...

@typing.final
class EmailMailboxProposeNewTimeForMeetingRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxProposeNewTimeForMeetingRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxProposeNewTimeForMeetingRequest]: ...

@typing.final
class EmailMailboxResolveRecipientsRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxResolveRecipientsRequest: ...
    def report_completed_async(self, resolution_results: typing.Iterable[windows_applicationmodel_email.EmailRecipientResolutionResult], /) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def recipients(self) -> typing.Optional[windows_foundation_collections.IVectorView[str]]: ...

@typing.final
class EmailMailboxResolveRecipientsRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxResolveRecipientsRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxResolveRecipientsRequest]: ...

@typing.final
class EmailMailboxServerSearchReadBatchRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxServerSearchReadBatchRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self, batch_status: windows_applicationmodel_email.EmailBatchStatus, /) -> windows_foundation.IAsyncAction: ...
    def save_message_async(self, message: typing.Optional[windows_applicationmodel_email.EmailMessage], /) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_folder_id(self) -> str: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def options(self) -> typing.Optional[windows_applicationmodel_email.EmailQueryOptions]: ...
    @_property
    def session_id(self) -> str: ...
    @_property
    def suggested_batch_size(self) -> winrt.system.UInt32: ...

@typing.final
class EmailMailboxServerSearchReadBatchRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxServerSearchReadBatchRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxServerSearchReadBatchRequest]: ...

@typing.final
class EmailMailboxSetAutoReplySettingsRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxSetAutoReplySettingsRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def auto_reply_settings(self) -> typing.Optional[windows_applicationmodel_email.EmailMailboxAutoReplySettings]: ...
    @_property
    def email_mailbox_id(self) -> str: ...

@typing.final
class EmailMailboxSetAutoReplySettingsRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxSetAutoReplySettingsRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxSetAutoReplySettingsRequest]: ...

@typing.final
class EmailMailboxSyncManagerSyncRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxSyncManagerSyncRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def email_mailbox_id(self) -> str: ...

@typing.final
class EmailMailboxSyncManagerSyncRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxSyncManagerSyncRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxSyncManagerSyncRequest]: ...

@typing.final
class EmailMailboxUpdateMeetingResponseRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxUpdateMeetingResponseRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def comment(self) -> str: ...
    @_property
    def email_mailbox_id(self) -> str: ...
    @_property
    def email_message_id(self) -> str: ...
    @_property
    def response(self) -> windows_applicationmodel_email.EmailMeetingResponseType: ...
    @_property
    def send_update(self) -> bool: ...
    @_property
    def subject(self) -> str: ...

@typing.final
class EmailMailboxUpdateMeetingResponseRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxUpdateMeetingResponseRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxUpdateMeetingResponseRequest]: ...

@typing.final
class EmailMailboxValidateCertificatesRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxValidateCertificatesRequest: ...
    def report_completed_async(self, validation_statuses: typing.Iterable[windows_applicationmodel_email.EmailCertificateValidationStatus], /) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def certificates(self) -> typing.Optional[windows_foundation_collections.IVectorView[windows_security_cryptography_certificates.Certificate]]: ...
    @_property
    def email_mailbox_id(self) -> str: ...

@typing.final
class EmailMailboxValidateCertificatesRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> EmailMailboxValidateCertificatesRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[EmailMailboxValidateCertificatesRequest]: ...

