# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.1.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.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.storage as windows_storage
import winrt.windows.system as windows_system

from winui3.microsoft.windows.storage import ApplicationDataCreateDisposition, ApplicationDataLocality

Self = typing.TypeVar('Self')

@typing.final
class ApplicationData_Static(winrt._winrt.IInspectable_Static):
    # Microsoft.Windows.Storage.ApplicationData Microsoft.Windows.Storage.ApplicationData::GetDefault()
    def get_default(cls) -> ApplicationData: ...
    # Microsoft.Windows.Storage.ApplicationData Microsoft.Windows.Storage.ApplicationData::GetForPackageFamily(System.String)
    def get_for_package_family(cls, package_family_name: str, /) -> ApplicationData: ...
    # Microsoft.Windows.Storage.ApplicationData Microsoft.Windows.Storage.ApplicationData::GetForUser(Windows.System.User)
    def get_for_user(cls, user: windows_system.User, /) -> ApplicationData: ...

@typing.final
class ApplicationData(winrt.system.Object, windows_foundation.IClosable, metaclass=ApplicationData_Static):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # Windows.Foundation.IAsyncAction Microsoft.Windows.Storage.ApplicationData::ClearAsync(Microsoft.Windows.Storage.ApplicationDataLocality)
    def clear_async(self, locality: ApplicationDataLocality, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Microsoft.Windows.Storage.ApplicationData::ClearPublisherCacheFolderAsync(System.String)
    def clear_publisher_cache_folder_async(self, folder_name: str, /) -> windows_foundation.IAsyncAction: ...
    # System.Void Microsoft.Windows.Storage.ApplicationData::Close()
    def close(self) -> None: ...
    # Windows.Storage.StorageFolder Microsoft.Windows.Storage.ApplicationData::GetPublisherCacheFolder(System.String)
    def get_publisher_cache_folder(self, folder_name: str, /) -> windows_storage.StorageFolder: ...
    # System.String Microsoft.Windows.Storage.ApplicationData::GetPublisherCachePath(System.String)
    def get_publisher_cache_path(self, folder_name: str, /) -> str: ...
    # System.Boolean Microsoft.Windows.Storage.ApplicationData::get_IsMachinePathSupported()
    @_property
    def is_machine_path_supported(self) -> bool: ...
    # Windows.Storage.StorageFolder Microsoft.Windows.Storage.ApplicationData::get_LocalCacheFolder()
    @_property
    def local_cache_folder(self) -> windows_storage.StorageFolder: ...
    # System.String Microsoft.Windows.Storage.ApplicationData::get_LocalCachePath()
    @_property
    def local_cache_path(self) -> str: ...
    # Windows.Storage.StorageFolder Microsoft.Windows.Storage.ApplicationData::get_LocalFolder()
    @_property
    def local_folder(self) -> windows_storage.StorageFolder: ...
    # System.String Microsoft.Windows.Storage.ApplicationData::get_LocalPath()
    @_property
    def local_path(self) -> str: ...
    # Microsoft.Windows.Storage.ApplicationDataContainer Microsoft.Windows.Storage.ApplicationData::get_LocalSettings()
    @_property
    def local_settings(self) -> ApplicationDataContainer: ...
    # Windows.Storage.StorageFolder Microsoft.Windows.Storage.ApplicationData::get_MachineFolder()
    @_property
    def machine_folder(self) -> windows_storage.StorageFolder: ...
    # System.String Microsoft.Windows.Storage.ApplicationData::get_MachinePath()
    @_property
    def machine_path(self) -> str: ...
    # Windows.Storage.StorageFolder Microsoft.Windows.Storage.ApplicationData::get_SharedLocalFolder()
    @_property
    def shared_local_folder(self) -> windows_storage.StorageFolder: ...
    # System.String Microsoft.Windows.Storage.ApplicationData::get_SharedLocalPath()
    @_property
    def shared_local_path(self) -> str: ...
    # Windows.Storage.StorageFolder Microsoft.Windows.Storage.ApplicationData::get_TemporaryFolder()
    @_property
    def temporary_folder(self) -> windows_storage.StorageFolder: ...
    # System.String Microsoft.Windows.Storage.ApplicationData::get_TemporaryPath()
    @_property
    def temporary_path(self) -> str: ...

@typing.final
class ApplicationDataContainer(winrt.system.Object, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Microsoft.Windows.Storage.ApplicationDataContainer::Close()
    def close(self) -> None: ...
    # Microsoft.Windows.Storage.ApplicationDataContainer Microsoft.Windows.Storage.ApplicationDataContainer::CreateContainer(System.String,Microsoft.Windows.Storage.ApplicationDataCreateDisposition)
    def create_container(self, name: str, disposition: ApplicationDataCreateDisposition, /) -> ApplicationDataContainer: ...
    # System.Void Microsoft.Windows.Storage.ApplicationDataContainer::DeleteContainer(System.String)
    def delete_container(self, name: str, /) -> None: ...
    # Windows.Foundation.Collections.IMap`2<System.String,Microsoft.Windows.Storage.ApplicationDataContainer> Microsoft.Windows.Storage.ApplicationDataContainer::get_Containers()
    @_property
    def containers(self) -> typing.MutableMapping[str, ApplicationDataContainer]: ...
    # Microsoft.Windows.Storage.ApplicationDataLocality Microsoft.Windows.Storage.ApplicationDataContainer::get_Locality()
    @_property
    def locality(self) -> ApplicationDataLocality: ...
    # System.String Microsoft.Windows.Storage.ApplicationDataContainer::get_Name()
    @_property
    def name(self) -> str: ...
    # Windows.Foundation.Collections.IPropertySet Microsoft.Windows.Storage.ApplicationDataContainer::get_Values()
    @_property
    def values(self) -> windows_foundation_collections.IPropertySet: ...

