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

import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

try:
    import winsdk.windows.applicationmodel.contacts
except Exception:
    pass

try:
    import winsdk.windows.foundation
except Exception:
    pass

class ContactDataProviderConnection(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactDataProviderConnection: ...
    @typing.overload
    def start(self) -> None: ...
    @typing.overload
    def add_server_search_read_batch_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[ContactDataProviderConnection, ContactListServerSearchReadBatchRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_server_search_read_batch_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_sync_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[ContactDataProviderConnection, ContactListSyncManagerSyncRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_sync_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_create_or_update_contact_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[ContactDataProviderConnection, ContactListCreateOrUpdateContactRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_create_or_update_contact_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @typing.overload
    def add_delete_contact_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[ContactDataProviderConnection, ContactListDeleteContactRequestEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_delete_contact_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class ContactDataProviderTriggerDetails(_winrt.Object):
    connection: ContactDataProviderConnection
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactDataProviderTriggerDetails: ...

class ContactListCreateOrUpdateContactRequest(_winrt.Object):
    contact: winsdk.windows.applicationmodel.contacts.Contact
    contact_list_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactListCreateOrUpdateContactRequest: ...
    @typing.overload
    def report_completed_async(self, created_or_updated_contact: winsdk.windows.applicationmodel.contacts.Contact) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

class ContactListCreateOrUpdateContactRequestEventArgs(_winrt.Object):
    request: ContactListCreateOrUpdateContactRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactListCreateOrUpdateContactRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class ContactListDeleteContactRequest(_winrt.Object):
    contact_id: str
    contact_list_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactListDeleteContactRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

class ContactListDeleteContactRequestEventArgs(_winrt.Object):
    request: ContactListDeleteContactRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactListDeleteContactRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class ContactListServerSearchReadBatchRequest(_winrt.Object):
    contact_list_id: str
    options: winsdk.windows.applicationmodel.contacts.ContactQueryOptions
    session_id: str
    suggested_batch_size: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactListServerSearchReadBatchRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self, batch_status: winsdk.windows.applicationmodel.contacts.ContactBatchStatus) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def save_contact_async(self, contact: winsdk.windows.applicationmodel.contacts.Contact) -> winsdk.windows.foundation.IAsyncAction: ...

class ContactListServerSearchReadBatchRequestEventArgs(_winrt.Object):
    request: ContactListServerSearchReadBatchRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactListServerSearchReadBatchRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

class ContactListSyncManagerSyncRequest(_winrt.Object):
    contact_list_id: str
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactListSyncManagerSyncRequest: ...
    @typing.overload
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

class ContactListSyncManagerSyncRequestEventArgs(_winrt.Object):
    request: ContactListSyncManagerSyncRequest
    @staticmethod
    def _from(obj: _winrt.Object) -> ContactListSyncManagerSyncRequestEventArgs: ...
    @typing.overload
    def get_deferral(self) -> winsdk.windows.foundation.Deferral: ...

