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

import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.applicationmodel.contacts
import winsdk.windows.foundation

Self = typing.TypeVar('Self')

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

class ContactDataProviderTriggerDetails(winsdk.system.Object):
    connection: typing.Optional[ContactDataProviderConnection]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> ContactDataProviderTriggerDetails: ...

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

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

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

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

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

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

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

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

