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

import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
import winsdk.windows.applicationmodel
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.storage

Self = typing.TypeVar('Self')

class AppExtension(_winrt.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: _winrt.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(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.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[_winrt.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(_winrt.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: _winrt.Object) -> AppExtensionPackageInstalledEventArgs: ...

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

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

class AppExtensionPackageUpdatedEventArgs(_winrt.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: _winrt.Object) -> AppExtensionPackageUpdatedEventArgs: ...

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

