# 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.appointments as windows_applicationmodel_appointments
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections

Self = typing.TypeVar('Self')

@typing.final
class AppointmentCalendarCancelMeetingRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppointmentCalendarCancelMeetingRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def appointment_calendar_local_id(self) -> str: ...
    @_property
    def appointment_local_id(self) -> str: ...
    @_property
    def appointment_original_start_time(self) -> typing.Optional[typing.Optional[datetime.datetime]]: ...
    @_property
    def comment(self) -> str: ...
    @_property
    def notify_invitees(self) -> bool: ...
    @_property
    def subject(self) -> str: ...

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

@typing.final
class AppointmentCalendarCreateOrUpdateAppointmentRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppointmentCalendarCreateOrUpdateAppointmentRequest: ...
    def report_completed_async(self, created_or_updated_appointment: typing.Optional[windows_applicationmodel_appointments.Appointment], /) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def appointment(self) -> typing.Optional[windows_applicationmodel_appointments.Appointment]: ...
    @_property
    def appointment_calendar_local_id(self) -> str: ...
    @_property
    def changed_properties(self) -> typing.Optional[windows_foundation_collections.IVectorView[str]]: ...
    @_property
    def notify_invitees(self) -> bool: ...

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

@typing.final
class AppointmentCalendarForwardMeetingRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppointmentCalendarForwardMeetingRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def appointment_calendar_local_id(self) -> str: ...
    @_property
    def appointment_local_id(self) -> str: ...
    @_property
    def appointment_original_start_time(self) -> typing.Optional[typing.Optional[datetime.datetime]]: ...
    @_property
    def comment(self) -> str: ...
    @_property
    def forward_header(self) -> str: ...
    @_property
    def invitees(self) -> typing.Optional[windows_foundation_collections.IVectorView[windows_applicationmodel_appointments.AppointmentInvitee]]: ...
    @_property
    def subject(self) -> str: ...

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

@typing.final
class AppointmentCalendarProposeNewTimeForMeetingRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppointmentCalendarProposeNewTimeForMeetingRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def appointment_calendar_local_id(self) -> str: ...
    @_property
    def appointment_local_id(self) -> str: ...
    @_property
    def appointment_original_start_time(self) -> typing.Optional[typing.Optional[datetime.datetime]]: ...
    @_property
    def comment(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 AppointmentCalendarProposeNewTimeForMeetingRequestEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppointmentCalendarProposeNewTimeForMeetingRequestEventArgs: ...
    def get_deferral(self) -> typing.Optional[windows_foundation.Deferral]: ...
    @_property
    def request(self) -> typing.Optional[AppointmentCalendarProposeNewTimeForMeetingRequest]: ...

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

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

@typing.final
class AppointmentCalendarUpdateMeetingResponseRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppointmentCalendarUpdateMeetingResponseRequest: ...
    def report_completed_async(self) -> windows_foundation.IAsyncAction: ...
    def report_failed_async(self) -> windows_foundation.IAsyncAction: ...
    @_property
    def appointment_calendar_local_id(self) -> str: ...
    @_property
    def appointment_local_id(self) -> str: ...
    @_property
    def appointment_original_start_time(self) -> typing.Optional[typing.Optional[datetime.datetime]]: ...
    @_property
    def comment(self) -> str: ...
    @_property
    def response(self) -> windows_applicationmodel_appointments.AppointmentParticipantResponse: ...
    @_property
    def send_update(self) -> bool: ...
    @_property
    def subject(self) -> str: ...

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

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

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

