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

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.contacts as windows_applicationmodel_contacts
import winrt.windows.foundation as windows_foundation

Self = typing.TypeVar('Self')

@typing.final
class ContactDataProviderConnection(winrt.system.Object):
    # System.Void Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection::Start()
    def start(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection::add_ServerSearchReadBatchRequested(Windows.Foundation.TypedEventHandler`2<Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection,Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequestEventArgs>)
    def add_server_search_read_batch_requested(self, handler: windows_foundation.TypedEventHandler[ContactDataProviderConnection, ContactListServerSearchReadBatchRequestEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection::remove_ServerSearchReadBatchRequested(Windows.Foundation.EventRegistrationToken)
    def remove_server_search_read_batch_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection::add_SyncRequested(Windows.Foundation.TypedEventHandler`2<Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection,Windows.ApplicationModel.Contacts.DataProvider.ContactListSyncManagerSyncRequestEventArgs>)
    def add_sync_requested(self, handler: windows_foundation.TypedEventHandler[ContactDataProviderConnection, ContactListSyncManagerSyncRequestEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection::remove_SyncRequested(Windows.Foundation.EventRegistrationToken)
    def remove_sync_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection::add_CreateOrUpdateContactRequested(Windows.Foundation.TypedEventHandler`2<Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection,Windows.ApplicationModel.Contacts.DataProvider.ContactListCreateOrUpdateContactRequestEventArgs>)
    def add_create_or_update_contact_requested(self, handler: windows_foundation.TypedEventHandler[ContactDataProviderConnection, ContactListCreateOrUpdateContactRequestEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection::remove_CreateOrUpdateContactRequested(Windows.Foundation.EventRegistrationToken)
    def remove_create_or_update_contact_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection::add_DeleteContactRequested(Windows.Foundation.TypedEventHandler`2<Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection,Windows.ApplicationModel.Contacts.DataProvider.ContactListDeleteContactRequestEventArgs>)
    def add_delete_contact_requested(self, handler: windows_foundation.TypedEventHandler[ContactDataProviderConnection, ContactListDeleteContactRequestEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection::remove_DeleteContactRequested(Windows.Foundation.EventRegistrationToken)
    def remove_delete_contact_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class ContactDataProviderTriggerDetails(winrt.system.Object):
    # Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderConnection Windows.ApplicationModel.Contacts.DataProvider.ContactDataProviderTriggerDetails::get_Connection()
    @_property
    def connection(self) -> ContactDataProviderConnection: ...

@typing.final
class ContactListCreateOrUpdateContactRequest(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.ApplicationModel.Contacts.DataProvider.ContactListCreateOrUpdateContactRequest::ReportCompletedAsync(Windows.ApplicationModel.Contacts.Contact)
    def report_completed_async(self, created_or_updated_contact: windows_applicationmodel_contacts.Contact, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.ApplicationModel.Contacts.DataProvider.ContactListCreateOrUpdateContactRequest::ReportFailedAsync()
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.ApplicationModel.Contacts.Contact Windows.ApplicationModel.Contacts.DataProvider.ContactListCreateOrUpdateContactRequest::get_Contact()
    @_property
    def contact(self) -> windows_applicationmodel_contacts.Contact: ...
    # System.String Windows.ApplicationModel.Contacts.DataProvider.ContactListCreateOrUpdateContactRequest::get_ContactListId()
    @_property
    def contact_list_id(self) -> str: ...

@typing.final
class ContactListCreateOrUpdateContactRequestEventArgs(winrt.system.Object):
    # Windows.Foundation.Deferral Windows.ApplicationModel.Contacts.DataProvider.ContactListCreateOrUpdateContactRequestEventArgs::GetDeferral()
    def get_deferral(self) -> windows_foundation.Deferral: ...
    # Windows.ApplicationModel.Contacts.DataProvider.ContactListCreateOrUpdateContactRequest Windows.ApplicationModel.Contacts.DataProvider.ContactListCreateOrUpdateContactRequestEventArgs::get_Request()
    @_property
    def request(self) -> ContactListCreateOrUpdateContactRequest: ...

@typing.final
class ContactListDeleteContactRequest(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.ApplicationModel.Contacts.DataProvider.ContactListDeleteContactRequest::ReportCompletedAsync()
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.ApplicationModel.Contacts.DataProvider.ContactListDeleteContactRequest::ReportFailedAsync()
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    # System.String Windows.ApplicationModel.Contacts.DataProvider.ContactListDeleteContactRequest::get_ContactId()
    @_property
    def contact_id(self) -> str: ...
    # System.String Windows.ApplicationModel.Contacts.DataProvider.ContactListDeleteContactRequest::get_ContactListId()
    @_property
    def contact_list_id(self) -> str: ...

@typing.final
class ContactListDeleteContactRequestEventArgs(winrt.system.Object):
    # Windows.Foundation.Deferral Windows.ApplicationModel.Contacts.DataProvider.ContactListDeleteContactRequestEventArgs::GetDeferral()
    def get_deferral(self) -> windows_foundation.Deferral: ...
    # Windows.ApplicationModel.Contacts.DataProvider.ContactListDeleteContactRequest Windows.ApplicationModel.Contacts.DataProvider.ContactListDeleteContactRequestEventArgs::get_Request()
    @_property
    def request(self) -> ContactListDeleteContactRequest: ...

@typing.final
class ContactListServerSearchReadBatchRequest(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequest::ReportCompletedAsync()
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequest::ReportFailedAsync(Windows.ApplicationModel.Contacts.ContactBatchStatus)
    def report_failed_async(self, batch_status: windows_applicationmodel_contacts.ContactBatchStatus, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequest::SaveContactAsync(Windows.ApplicationModel.Contacts.Contact)
    def save_contact_async(self, contact: windows_applicationmodel_contacts.Contact, /) -> windows_foundation.IAsyncAction: ...
    # System.String Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequest::get_ContactListId()
    @_property
    def contact_list_id(self) -> str: ...
    # Windows.ApplicationModel.Contacts.ContactQueryOptions Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequest::get_Options()
    @_property
    def options(self) -> windows_applicationmodel_contacts.ContactQueryOptions: ...
    # System.String Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequest::get_SessionId()
    @_property
    def session_id(self) -> str: ...
    # System.UInt32 Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequest::get_SuggestedBatchSize()
    @_property
    def suggested_batch_size(self) -> winrt.system.UInt32: ...

@typing.final
class ContactListServerSearchReadBatchRequestEventArgs(winrt.system.Object):
    # Windows.Foundation.Deferral Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequestEventArgs::GetDeferral()
    def get_deferral(self) -> windows_foundation.Deferral: ...
    # Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequest Windows.ApplicationModel.Contacts.DataProvider.ContactListServerSearchReadBatchRequestEventArgs::get_Request()
    @_property
    def request(self) -> ContactListServerSearchReadBatchRequest: ...

@typing.final
class ContactListSyncManagerSyncRequest(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.ApplicationModel.Contacts.DataProvider.ContactListSyncManagerSyncRequest::ReportCompletedAsync()
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.ApplicationModel.Contacts.DataProvider.ContactListSyncManagerSyncRequest::ReportFailedAsync()
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    # System.String Windows.ApplicationModel.Contacts.DataProvider.ContactListSyncManagerSyncRequest::get_ContactListId()
    @_property
    def contact_list_id(self) -> str: ...

@typing.final
class ContactListSyncManagerSyncRequestEventArgs(winrt.system.Object):
    # Windows.Foundation.Deferral Windows.ApplicationModel.Contacts.DataProvider.ContactListSyncManagerSyncRequestEventArgs::GetDeferral()
    def get_deferral(self) -> windows_foundation.Deferral: ...
    # Windows.ApplicationModel.Contacts.DataProvider.ContactListSyncManagerSyncRequest Windows.ApplicationModel.Contacts.DataProvider.ContactListSyncManagerSyncRequestEventArgs::get_Request()
    @_property
    def request(self) -> ContactListSyncManagerSyncRequest: ...

