# 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
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.storage

Self = typing.TypeVar('Self')

class AppExtension(winsdk.system.Object):
    app_info: typing.Optional[winsdk.windows.applicationmodel.AppInfo]
    description: str
    display_name: str
    id: str
    package: typing.Optional[winsdk.windows.applicationmodel.Package]
    app_user_model_id: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppExtension: ...
    def get_extension_properties_async(self) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IPropertySet]: ...
    def get_public_folder_async(self) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.storage.StorageFolder]: ...

class AppExtensionCatalog(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppExtensionCatalog: ...
    def find_all_async(self) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[AppExtension]]: ...
    @staticmethod
    def open(app_extension_name: str, /) -> typing.Optional[AppExtensionCatalog]: ...
    def request_remove_package_async(self, package_full_name: str, /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.system.Boolean]: ...
    def add_package_installed(self, handler: winsdk.windows.foundation.TypedEventHandler[AppExtensionCatalog, AppExtensionPackageInstalledEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_package_installed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_package_status_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[AppExtensionCatalog, AppExtensionPackageStatusChangedEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_package_status_changed(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_package_uninstalling(self, handler: winsdk.windows.foundation.TypedEventHandler[AppExtensionCatalog, AppExtensionPackageUninstallingEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_package_uninstalling(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_package_updated(self, handler: winsdk.windows.foundation.TypedEventHandler[AppExtensionCatalog, AppExtensionPackageUpdatedEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_package_updated(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_package_updating(self, handler: winsdk.windows.foundation.TypedEventHandler[AppExtensionCatalog, AppExtensionPackageUpdatingEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_package_updating(self, token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class AppExtensionPackageInstalledEventArgs(winsdk.system.Object):
    app_extension_name: str
    extensions: typing.Optional[winsdk.windows.foundation.collections.IVectorView[AppExtension]]
    package: typing.Optional[winsdk.windows.applicationmodel.Package]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppExtensionPackageInstalledEventArgs: ...

class AppExtensionPackageStatusChangedEventArgs(winsdk.system.Object):
    app_extension_name: str
    package: typing.Optional[winsdk.windows.applicationmodel.Package]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppExtensionPackageStatusChangedEventArgs: ...

class AppExtensionPackageUninstallingEventArgs(winsdk.system.Object):
    app_extension_name: str
    package: typing.Optional[winsdk.windows.applicationmodel.Package]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppExtensionPackageUninstallingEventArgs: ...

class AppExtensionPackageUpdatedEventArgs(winsdk.system.Object):
    app_extension_name: str
    extensions: typing.Optional[winsdk.windows.foundation.collections.IVectorView[AppExtension]]
    package: typing.Optional[winsdk.windows.applicationmodel.Package]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppExtensionPackageUpdatedEventArgs: ...

class AppExtensionPackageUpdatingEventArgs(winsdk.system.Object):
    app_extension_name: str
    package: typing.Optional[winsdk.windows.applicationmodel.Package]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> AppExtensionPackageUpdatingEventArgs: ...

