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

Self = typing.TypeVar('Self')

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

class FileInformationFactory(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> FileInformationFactory: ...
    @typing.overload
    def __new__(cls: typing.Type[FileInformationFactory], query_result: typing.Optional[winsdk.windows.storage.search.IStorageQueryResultBase], mode: winsdk.windows.storage.fileproperties.ThumbnailMode) -> FileInformationFactory:...
    @typing.overload
    def __new__(cls: typing.Type[FileInformationFactory], query_result: typing.Optional[winsdk.windows.storage.search.IStorageQueryResultBase], mode: winsdk.windows.storage.fileproperties.ThumbnailMode, requested_thumbnail_size: _winrt.UInt32) -> FileInformationFactory:...
    @typing.overload
    def __new__(cls: typing.Type[FileInformationFactory], query_result: typing.Optional[winsdk.windows.storage.search.IStorageQueryResultBase], mode: winsdk.windows.storage.fileproperties.ThumbnailMode, requested_thumbnail_size: _winrt.UInt32, thumbnail_options: winsdk.windows.storage.fileproperties.ThumbnailOptions) -> FileInformationFactory:...
    @typing.overload
    def __new__(cls: typing.Type[FileInformationFactory], query_result: typing.Optional[winsdk.windows.storage.search.IStorageQueryResultBase], mode: winsdk.windows.storage.fileproperties.ThumbnailMode, requested_thumbnail_size: _winrt.UInt32, thumbnail_options: winsdk.windows.storage.fileproperties.ThumbnailOptions, delay_load: _winrt.Boolean) -> FileInformationFactory:...
    @typing.overload
    def get_files_async(self) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[FileInformation]]: ...
    @typing.overload
    def get_files_async(self, start_index: _winrt.UInt32, max_items_to_retrieve: _winrt.UInt32) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[FileInformation]]: ...
    @typing.overload
    def get_folders_async(self) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[FolderInformation]]: ...
    @typing.overload
    def get_folders_async(self, start_index: _winrt.UInt32, max_items_to_retrieve: _winrt.UInt32) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[FolderInformation]]: ...
    @typing.overload
    def get_items_async(self) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[IStorageItemInformation]]: ...
    @typing.overload
    def get_items_async(self, start_index: _winrt.UInt32, max_items_to_retrieve: _winrt.UInt32) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[IStorageItemInformation]]: ...
    def get_virtualized_files_vector(self) -> typing.Optional[_winrt.Object]: ...
    def get_virtualized_folders_vector(self) -> typing.Optional[_winrt.Object]: ...
    def get_virtualized_items_vector(self) -> typing.Optional[_winrt.Object]: ...

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

class IStorageItemInformation(_winrt.Object):
    basic_properties: typing.Optional[winsdk.windows.storage.fileproperties.BasicProperties]
    document_properties: typing.Optional[winsdk.windows.storage.fileproperties.DocumentProperties]
    image_properties: typing.Optional[winsdk.windows.storage.fileproperties.ImageProperties]
    music_properties: typing.Optional[winsdk.windows.storage.fileproperties.MusicProperties]
    thumbnail: typing.Optional[winsdk.windows.storage.fileproperties.StorageItemThumbnail]
    video_properties: typing.Optional[winsdk.windows.storage.fileproperties.VideoProperties]
    @staticmethod
    def _from(obj: _winrt.Object) -> IStorageItemInformation: ...
    def add_properties_updated(self, changed_handler: winsdk.windows.foundation.TypedEventHandler[IStorageItemInformation, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_properties_updated(self, event_cookie: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_thumbnail_updated(self, changed_handler: winsdk.windows.foundation.TypedEventHandler[IStorageItemInformation, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_thumbnail_updated(self, event_cookie: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

