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

import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.applicationmodel.appointments
import winsdk.windows.foundation
import winsdk.windows.foundation.collections

Self = typing.TypeVar('Self')

class AppointmentCalendarCancelMeetingRequest(winsdk.system.Object):
    appointment_calendar_local_id: str
    appointment_local_id: str
    appointment_original_start_time: typing.Optional[typing.Optional[datetime.datetime]]
    comment: str
    notify_invitees: winsdk.system.Boolean
    subject: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppointmentCalendarCancelMeetingRequest: ...
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

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

class AppointmentCalendarCreateOrUpdateAppointmentRequest(winsdk.system.Object):
    appointment: typing.Optional[winsdk.windows.applicationmodel.appointments.Appointment]
    appointment_calendar_local_id: str
    changed_properties: typing.Optional[winsdk.windows.foundation.collections.IVectorView[str]]
    notify_invitees: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppointmentCalendarCreateOrUpdateAppointmentRequest: ...
    def report_completed_async(self, created_or_updated_appointment: typing.Optional[winsdk.windows.applicationmodel.appointments.Appointment], /) -> winsdk.windows.foundation.IAsyncAction: ...
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

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

class AppointmentCalendarForwardMeetingRequest(winsdk.system.Object):
    appointment_calendar_local_id: str
    appointment_local_id: str
    appointment_original_start_time: typing.Optional[typing.Optional[datetime.datetime]]
    comment: str
    forward_header: str
    invitees: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.applicationmodel.appointments.AppointmentInvitee]]
    subject: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppointmentCalendarForwardMeetingRequest: ...
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

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

class AppointmentCalendarProposeNewTimeForMeetingRequest(winsdk.system.Object):
    appointment_calendar_local_id: str
    appointment_local_id: str
    appointment_original_start_time: typing.Optional[typing.Optional[datetime.datetime]]
    comment: str
    new_duration: datetime.timedelta
    new_start_time: datetime.datetime
    subject: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppointmentCalendarProposeNewTimeForMeetingRequest: ...
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

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

class AppointmentCalendarSyncManagerSyncRequest(winsdk.system.Object):
    appointment_calendar_local_id: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppointmentCalendarSyncManagerSyncRequest: ...
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

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

class AppointmentCalendarUpdateMeetingResponseRequest(winsdk.system.Object):
    appointment_calendar_local_id: str
    appointment_local_id: str
    appointment_original_start_time: typing.Optional[typing.Optional[datetime.datetime]]
    comment: str
    response: winsdk.windows.applicationmodel.appointments.AppointmentParticipantResponse
    send_update: winsdk.system.Boolean
    subject: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppointmentCalendarUpdateMeetingResponseRequest: ...
    def report_completed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...
    def report_failed_async(self) -> winsdk.windows.foundation.IAsyncAction: ...

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

class AppointmentDataProviderConnection(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppointmentDataProviderConnection: ...
    def start(self) -> None: ...
    def add_cancel_meeting_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[AppointmentDataProviderConnection, AppointmentCalendarCancelMeetingRequestEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_cancel_meeting_requested(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_create_or_update_appointment_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[AppointmentDataProviderConnection, AppointmentCalendarCreateOrUpdateAppointmentRequestEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_create_or_update_appointment_requested(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_forward_meeting_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[AppointmentDataProviderConnection, AppointmentCalendarForwardMeetingRequestEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_forward_meeting_requested(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_propose_new_time_for_meeting_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[AppointmentDataProviderConnection, AppointmentCalendarProposeNewTimeForMeetingRequestEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_propose_new_time_for_meeting_requested(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_sync_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[AppointmentDataProviderConnection, AppointmentCalendarSyncManagerSyncRequestEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_sync_requested(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_update_meeting_response_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[AppointmentDataProviderConnection, AppointmentCalendarUpdateMeetingResponseRequestEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_update_meeting_response_requested(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class AppointmentDataProviderTriggerDetails(winsdk.system.Object):
    connection: typing.Optional[AppointmentDataProviderConnection]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppointmentDataProviderTriggerDetails: ...

