# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.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.storage.fileproperties as windows_storage_fileproperties
import winrt.windows.storage.search as windows_storage_search
import winrt.windows.storage.streams as windows_storage_streams

Self = typing.TypeVar('Self')

@typing.final
class FileInformation(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FileInformation: ...
    def copy_and_replace_async(self, file_to_replace: typing.Optional[windows_storage.IStorageFile], /) -> windows_foundation.IAsyncAction: ...
    @typing.overload
    def copy_async(self, destination_folder: typing.Optional[windows_storage.IStorageFolder], /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...
    @typing.overload
    def copy_async(self, destination_folder: typing.Optional[windows_storage.IStorageFolder], desired_new_name: str, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...
    @typing.overload
    def copy_async(self, destination_folder: typing.Optional[windows_storage.IStorageFolder], desired_new_name: str, option: windows_storage.NameCollisionOption, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...
    @typing.overload
    def delete_async(self) -> windows_foundation.IAsyncAction: ...
    @typing.overload
    def delete_async(self, option: windows_storage.StorageDeleteOption, /) -> windows_foundation.IAsyncAction: ...
    def get_basic_properties_async(self) -> windows_foundation.IAsyncOperation[windows_storage_fileproperties.BasicProperties]: ...
    def get_parent_async(self) -> windows_foundation.IAsyncOperation[windows_storage.StorageFolder]: ...
    @typing.overload
    def get_thumbnail_async(self, mode: windows_storage_fileproperties.ThumbnailMode, /) -> windows_foundation.IAsyncOperation[windows_storage_fileproperties.StorageItemThumbnail]: ...
    @typing.overload
    def get_thumbnail_async(self, mode: windows_storage_fileproperties.ThumbnailMode, requested_size: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[windows_storage_fileproperties.StorageItemThumbnail]: ...
    @typing.overload
    def get_thumbnail_async(self, mode: windows_storage_fileproperties.ThumbnailMode, requested_size: winrt.system.UInt32, options: windows_storage_fileproperties.ThumbnailOptions, /) -> windows_foundation.IAsyncOperation[windows_storage_fileproperties.StorageItemThumbnail]: ...
    def is_equal(self, item: typing.Optional[windows_storage.IStorageItem], /) -> bool: ...
    def is_of_type(self, type: windows_storage.StorageItemTypes, /) -> bool: ...
    def move_and_replace_async(self, file_to_replace: typing.Optional[windows_storage.IStorageFile], /) -> windows_foundation.IAsyncAction: ...
    @typing.overload
    def move_async(self, destination_folder: typing.Optional[windows_storage.IStorageFolder], /) -> windows_foundation.IAsyncAction: ...
    @typing.overload
    def move_async(self, destination_folder: typing.Optional[windows_storage.IStorageFolder], desired_new_name: str, /) -> windows_foundation.IAsyncAction: ...
    @typing.overload
    def move_async(self, destination_folder: typing.Optional[windows_storage.IStorageFolder], desired_new_name: str, option: windows_storage.NameCollisionOption, /) -> windows_foundation.IAsyncAction: ...
    @typing.overload
    def open_async(self, access_mode: windows_storage.FileAccessMode, /) -> windows_foundation.IAsyncOperation[windows_storage_streams.IRandomAccessStream]: ...
    @typing.overload
    def open_async(self, access_mode: windows_storage.FileAccessMode, options: windows_storage.StorageOpenOptions, /) -> windows_foundation.IAsyncOperation[windows_storage_streams.IRandomAccessStream]: ...
    def open_read_async(self) -> windows_foundation.IAsyncOperation[windows_storage_streams.IRandomAccessStreamWithContentType]: ...
    def open_sequential_read_async(self) -> windows_foundation.IAsyncOperation[windows_storage_streams.IInputStream]: ...
    @typing.overload
    def open_transacted_write_async(self) -> windows_foundation.IAsyncOperation[windows_storage.StorageStreamTransaction]: ...
    @typing.overload
    def open_transacted_write_async(self, options: windows_storage.StorageOpenOptions, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageStreamTransaction]: ...
    @typing.overload
    def rename_async(self, desired_name: str, /) -> windows_foundation.IAsyncAction: ...
    @typing.overload
    def rename_async(self, desired_name: str, option: windows_storage.NameCollisionOption, /) -> windows_foundation.IAsyncAction: ...
    def add_properties_updated(self, changed_handler: windows_foundation.TypedEventHandler[IStorageItemInformation, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_properties_updated(self, event_cookie: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_thumbnail_updated(self, changed_handler: windows_foundation.TypedEventHandler[IStorageItemInformation, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_thumbnail_updated(self, event_cookie: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def basic_properties(self) -> typing.Optional[windows_storage_fileproperties.BasicProperties]: ...
    @_property
    def document_properties(self) -> typing.Optional[windows_storage_fileproperties.DocumentProperties]: ...
    @_property
    def image_properties(self) -> typing.Optional[windows_storage_fileproperties.ImageProperties]: ...
    @_property
    def music_properties(self) -> typing.Optional[windows_storage_fileproperties.MusicProperties]: ...
    @_property
    def thumbnail(self) -> typing.Optional[windows_storage_fileproperties.StorageItemThumbnail]: ...
    @_property
    def video_properties(self) -> typing.Optional[windows_storage_fileproperties.VideoProperties]: ...
    @_property
    def content_type(self) -> str: ...
    @_property
    def file_type(self) -> str: ...
    @_property
    def is_available(self) -> bool: ...
    @_property
    def attributes(self) -> windows_storage.FileAttributes: ...
    @_property
    def date_created(self) -> datetime.datetime: ...
    @_property
    def name(self) -> str: ...
    @_property
    def path(self) -> str: ...
    @_property
    def display_name(self) -> str: ...
    @_property
    def display_type(self) -> str: ...
    @_property
    def folder_relative_id(self) -> str: ...
    @_property
    def properties(self) -> typing.Optional[windows_storage_fileproperties.StorageItemContentProperties]: ...
    @_property
    def provider(self) -> typing.Optional[windows_storage.StorageProvider]: ...

@typing.final
class FileInformationFactory(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FileInformationFactory: ...
    @typing.overload
    def __new__(cls: typing.Type[FileInformationFactory], query_result: typing.Optional[windows_storage_search.IStorageQueryResultBase], mode: windows_storage_fileproperties.ThumbnailMode) -> FileInformationFactory: ...
    @typing.overload
    def __new__(cls: typing.Type[FileInformationFactory], query_result: typing.Optional[windows_storage_search.IStorageQueryResultBase], mode: windows_storage_fileproperties.ThumbnailMode, requested_thumbnail_size: winrt.system.UInt32) -> FileInformationFactory: ...
    @typing.overload
    def __new__(cls: typing.Type[FileInformationFactory], query_result: typing.Optional[windows_storage_search.IStorageQueryResultBase], mode: windows_storage_fileproperties.ThumbnailMode, requested_thumbnail_size: winrt.system.UInt32, thumbnail_options: windows_storage_fileproperties.ThumbnailOptions) -> FileInformationFactory: ...
    @typing.overload
    def __new__(cls: typing.Type[FileInformationFactory], query_result: typing.Optional[windows_storage_search.IStorageQueryResultBase], mode: windows_storage_fileproperties.ThumbnailMode, requested_thumbnail_size: winrt.system.UInt32, thumbnail_options: windows_storage_fileproperties.ThumbnailOptions, delay_load: bool) -> FileInformationFactory: ...
    @typing.overload
    def get_files_async(self) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[FileInformation]]: ...
    @typing.overload
    def get_files_async(self, start_index: winrt.system.UInt32, max_items_to_retrieve: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[FileInformation]]: ...
    @typing.overload
    def get_folders_async(self) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[FolderInformation]]: ...
    @typing.overload
    def get_folders_async(self, start_index: winrt.system.UInt32, max_items_to_retrieve: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[FolderInformation]]: ...
    @typing.overload
    def get_items_async(self) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[IStorageItemInformation]]: ...
    @typing.overload
    def get_items_async(self, start_index: winrt.system.UInt32, max_items_to_retrieve: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[IStorageItemInformation]]: ...
    def get_virtualized_files_vector(self) -> typing.Optional[winrt.system.Object]: ...
    def get_virtualized_folders_vector(self) -> typing.Optional[winrt.system.Object]: ...
    def get_virtualized_items_vector(self) -> typing.Optional[winrt.system.Object]: ...

@typing.final
class FolderInformation(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FolderInformation: ...
    def are_query_options_supported(self, query_options: typing.Optional[windows_storage_search.QueryOptions], /) -> bool: ...
    @typing.overload
    def create_file_async(self, desired_name: str, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...
    @typing.overload
    def create_file_async(self, desired_name: str, options: windows_storage.CreationCollisionOption, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...
    @typing.overload
    def create_file_query(self) -> typing.Optional[windows_storage_search.StorageFileQueryResult]: ...
    @typing.overload
    def create_file_query(self, query: windows_storage_search.CommonFileQuery, /) -> typing.Optional[windows_storage_search.StorageFileQueryResult]: ...
    def create_file_query_with_options(self, query_options: typing.Optional[windows_storage_search.QueryOptions], /) -> typing.Optional[windows_storage_search.StorageFileQueryResult]: ...
    @typing.overload
    def create_folder_async(self, desired_name: str, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFolder]: ...
    @typing.overload
    def create_folder_async(self, desired_name: str, options: windows_storage.CreationCollisionOption, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFolder]: ...
    @typing.overload
    def create_folder_query(self) -> typing.Optional[windows_storage_search.StorageFolderQueryResult]: ...
    @typing.overload
    def create_folder_query(self, query: windows_storage_search.CommonFolderQuery, /) -> typing.Optional[windows_storage_search.StorageFolderQueryResult]: ...
    def create_folder_query_with_options(self, query_options: typing.Optional[windows_storage_search.QueryOptions], /) -> typing.Optional[windows_storage_search.StorageFolderQueryResult]: ...
    def create_item_query(self) -> typing.Optional[windows_storage_search.StorageItemQueryResult]: ...
    def create_item_query_with_options(self, query_options: typing.Optional[windows_storage_search.QueryOptions], /) -> typing.Optional[windows_storage_search.StorageItemQueryResult]: ...
    @typing.overload
    def delete_async(self) -> windows_foundation.IAsyncAction: ...
    @typing.overload
    def delete_async(self, option: windows_storage.StorageDeleteOption, /) -> windows_foundation.IAsyncAction: ...
    def get_basic_properties_async(self) -> windows_foundation.IAsyncOperation[windows_storage_fileproperties.BasicProperties]: ...
    def get_file_async(self, name: str, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...
    @typing.overload
    def get_files_async(self) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[windows_storage.StorageFile]]: ...
    @typing.overload
    def get_files_async(self, query: windows_storage_search.CommonFileQuery, /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[windows_storage.StorageFile]]: ...
    @typing.overload
    def get_files_async(self, query: windows_storage_search.CommonFileQuery, start_index: winrt.system.UInt32, max_items_to_retrieve: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[windows_storage.StorageFile]]: ...
    def get_folder_async(self, name: str, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFolder]: ...
    @typing.overload
    def get_folders_async(self) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[windows_storage.StorageFolder]]: ...
    @typing.overload
    def get_folders_async(self, query: windows_storage_search.CommonFolderQuery, /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[windows_storage.StorageFolder]]: ...
    @typing.overload
    def get_folders_async(self, query: windows_storage_search.CommonFolderQuery, start_index: winrt.system.UInt32, max_items_to_retrieve: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[windows_storage.StorageFolder]]: ...
    def get_indexed_state_async(self) -> windows_foundation.IAsyncOperation[windows_storage_search.IndexedState]: ...
    def get_item_async(self, name: str, /) -> windows_foundation.IAsyncOperation[windows_storage.IStorageItem]: ...
    @typing.overload
    def get_items_async(self) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[windows_storage.IStorageItem]]: ...
    @typing.overload
    def get_items_async(self, start_index: winrt.system.UInt32, max_items_to_retrieve: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[windows_storage.IStorageItem]]: ...
    def get_parent_async(self) -> windows_foundation.IAsyncOperation[windows_storage.StorageFolder]: ...
    @typing.overload
    def get_thumbnail_async(self, mode: windows_storage_fileproperties.ThumbnailMode, /) -> windows_foundation.IAsyncOperation[windows_storage_fileproperties.StorageItemThumbnail]: ...
    @typing.overload
    def get_thumbnail_async(self, mode: windows_storage_fileproperties.ThumbnailMode, requested_size: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[windows_storage_fileproperties.StorageItemThumbnail]: ...
    @typing.overload
    def get_thumbnail_async(self, mode: windows_storage_fileproperties.ThumbnailMode, requested_size: winrt.system.UInt32, options: windows_storage_fileproperties.ThumbnailOptions, /) -> windows_foundation.IAsyncOperation[windows_storage_fileproperties.StorageItemThumbnail]: ...
    def is_common_file_query_supported(self, query: windows_storage_search.CommonFileQuery, /) -> bool: ...
    def is_common_folder_query_supported(self, query: windows_storage_search.CommonFolderQuery, /) -> bool: ...
    def is_equal(self, item: typing.Optional[windows_storage.IStorageItem], /) -> bool: ...
    def is_of_type(self, type: windows_storage.StorageItemTypes, /) -> bool: ...
    @typing.overload
    def rename_async(self, desired_name: str, /) -> windows_foundation.IAsyncAction: ...
    @typing.overload
    def rename_async(self, desired_name: str, option: windows_storage.NameCollisionOption, /) -> windows_foundation.IAsyncAction: ...
    def try_get_item_async(self, name: str, /) -> windows_foundation.IAsyncOperation[windows_storage.IStorageItem]: ...
    def add_properties_updated(self, changed_handler: windows_foundation.TypedEventHandler[IStorageItemInformation, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_properties_updated(self, event_cookie: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_thumbnail_updated(self, changed_handler: windows_foundation.TypedEventHandler[IStorageItemInformation, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_thumbnail_updated(self, event_cookie: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def basic_properties(self) -> typing.Optional[windows_storage_fileproperties.BasicProperties]: ...
    @_property
    def document_properties(self) -> typing.Optional[windows_storage_fileproperties.DocumentProperties]: ...
    @_property
    def image_properties(self) -> typing.Optional[windows_storage_fileproperties.ImageProperties]: ...
    @_property
    def music_properties(self) -> typing.Optional[windows_storage_fileproperties.MusicProperties]: ...
    @_property
    def thumbnail(self) -> typing.Optional[windows_storage_fileproperties.StorageItemThumbnail]: ...
    @_property
    def video_properties(self) -> typing.Optional[windows_storage_fileproperties.VideoProperties]: ...
    @_property
    def attributes(self) -> windows_storage.FileAttributes: ...
    @_property
    def date_created(self) -> datetime.datetime: ...
    @_property
    def name(self) -> str: ...
    @_property
    def path(self) -> str: ...
    @_property
    def display_name(self) -> str: ...
    @_property
    def display_type(self) -> str: ...
    @_property
    def folder_relative_id(self) -> str: ...
    @_property
    def properties(self) -> typing.Optional[windows_storage_fileproperties.StorageItemContentProperties]: ...
    @_property
    def provider(self) -> typing.Optional[windows_storage.StorageProvider]: ...

@typing.final
class IStorageItemInformation(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IStorageItemInformation: ...
    def add_properties_updated(self, changed_handler: windows_foundation.TypedEventHandler[IStorageItemInformation, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_properties_updated(self, event_cookie: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_thumbnail_updated(self, changed_handler: windows_foundation.TypedEventHandler[IStorageItemInformation, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_thumbnail_updated(self, event_cookie: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def basic_properties(self) -> typing.Optional[windows_storage_fileproperties.BasicProperties]: ...
    @_property
    def document_properties(self) -> typing.Optional[windows_storage_fileproperties.DocumentProperties]: ...
    @_property
    def image_properties(self) -> typing.Optional[windows_storage_fileproperties.ImageProperties]: ...
    @_property
    def music_properties(self) -> typing.Optional[windows_storage_fileproperties.MusicProperties]: ...
    @_property
    def thumbnail(self) -> typing.Optional[windows_storage_fileproperties.StorageItemThumbnail]: ...
    @_property
    def video_properties(self) -> typing.Optional[windows_storage_fileproperties.VideoProperties]: ...

