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

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.microsoft.windows.widgets
import winrt.windows.foundation

Self = typing.TypeVar('Self')

@typing.final
class WidgetActionInvokedArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WidgetActionInvokedArgs: ...
    @_property
    def custom_state(self) -> str: ...
    @_property
    def data(self) -> str: ...
    @_property
    def verb(self) -> str: ...
    @_property
    def widget_context(self) -> typing.Optional[WidgetContext]: ...

@typing.final
class WidgetAnalyticsInfoReportedArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WidgetAnalyticsInfoReportedArgs: ...
    @_property
    def analytics_json(self) -> str: ...
    @_property
    def widget_context(self) -> typing.Optional[WidgetContext]: ...

@typing.final
class WidgetContext(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WidgetContext: ...
    @_property
    def definition_id(self) -> str: ...
    @_property
    def id(self) -> str: ...
    @_property
    def is_active(self) -> bool: ...
    @_property
    def size(self) -> winrt.microsoft.windows.widgets.WidgetSize: ...

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

@typing.final
class WidgetCustomizationRequestedArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WidgetCustomizationRequestedArgs: ...
    @_property
    def custom_state(self) -> str: ...
    @_property
    def widget_context(self) -> typing.Optional[WidgetContext]: ...

@typing.final
class WidgetErrorInfoReportedArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WidgetErrorInfoReportedArgs: ...
    @_property
    def error_json(self) -> str: ...
    @_property
    def widget_context(self) -> typing.Optional[WidgetContext]: ...

@typing.final
class WidgetInfo(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WidgetInfo: ...
    @_property
    def custom_state(self) -> str: ...
    @_property
    def data(self) -> str: ...
    @_property
    def last_update_time(self) -> datetime.datetime: ...
    @_property
    def template(self) -> str: ...
    @_property
    def widget_context(self) -> typing.Optional[WidgetContext]: ...

@typing.final
class WidgetManager_Static(type):
    def get_default(cls) -> typing.Optional[WidgetManager]: ...

@typing.final
class WidgetManager(winrt.system.Object, metaclass=WidgetManager_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WidgetManager: ...
    def delete_widget(self, widget_id: str, /) -> None: ...
    def get_widget_ids(self) -> str: ...
    def get_widget_info(self, widget_id: str, /) -> typing.Optional[WidgetInfo]: ...
    def get_widget_infos(self) -> typing.Optional[WidgetInfo]: ...
    def update_widget(self, widget_update_request_options: typing.Optional[WidgetUpdateRequestOptions], /) -> None: ...

@typing.final
class WidgetUpdateRequestOptions_Static(type):
    @_property
    def unset_value(cls) -> str: ...

@typing.final
class WidgetUpdateRequestOptions(winrt.system.Object, metaclass=WidgetUpdateRequestOptions_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WidgetUpdateRequestOptions: ...
    def __new__(cls: typing.Type[WidgetUpdateRequestOptions], widget_id: str) -> WidgetUpdateRequestOptions:...
    @_property
    def template(self) -> str: ...
    @template.setter
    def template(self, value: str) -> None: ...
    @_property
    def data(self) -> str: ...
    @data.setter
    def data(self, value: str) -> None: ...
    @_property
    def custom_state(self) -> str: ...
    @custom_state.setter
    def custom_state(self, value: str) -> None: ...
    @_property
    def widget_id(self) -> str: ...

@typing.final
class IWidgetManager(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IWidgetManager: ...
    def delete_widget(self, widget_id: str, /) -> None: ...
    def get_widget_ids(self) -> str: ...
    def get_widget_info(self, widget_id: str, /) -> typing.Optional[WidgetInfo]: ...
    def get_widget_infos(self) -> typing.Optional[WidgetInfo]: ...
    def update_widget(self, widget_update_request_options: typing.Optional[WidgetUpdateRequestOptions], /) -> None: ...

@typing.final
class IWidgetProvider(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IWidgetProvider: ...
    def activate(self, widget_context: typing.Optional[WidgetContext], /) -> None: ...
    def create_widget(self, widget_context: typing.Optional[WidgetContext], /) -> None: ...
    def deactivate(self, widget_id: str, /) -> None: ...
    def delete_widget(self, widget_id: str, custom_state: str, /) -> None: ...
    def on_action_invoked(self, action_invoked_args: typing.Optional[WidgetActionInvokedArgs], /) -> None: ...
    def on_widget_context_changed(self, context_changed_args: typing.Optional[WidgetContextChangedArgs], /) -> None: ...

@typing.final
class IWidgetProvider2(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IWidgetProvider2: ...
    def on_customization_requested(self, customization_requested_args: typing.Optional[WidgetCustomizationRequestedArgs], /) -> None: ...

@typing.final
class IWidgetProviderAnalytics(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IWidgetProviderAnalytics: ...
    def on_analytics_info_reported(self, args: typing.Optional[WidgetAnalyticsInfoReportedArgs], /) -> None: ...

@typing.final
class IWidgetProviderErrors(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IWidgetProviderErrors: ...
    def on_error_info_reported(self, args: typing.Optional[WidgetErrorInfoReportedArgs], /) -> None: ...

