# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.3.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 winrt.windows.storage.pickers import PickerLocationId, PickerViewMode

Self = typing.TypeVar('Self')

@typing.final
class FileExtensionVector(winrt.system.Object, winrt._winrt.MutableSequence[str]):
    def __len__(self) -> int: ...
    def __iter__(self) -> windows_foundation_collections.IIterator[str]: ...
    @typing.overload
    def __getitem__(self, index: typing.SupportsIndex) -> str: ...
    @typing.overload
    def __getitem__(self, index: slice) -> winrt.system.Array[str]: ...
    @typing.overload
    def __delitem__(self, index: typing.SupportsIndex) -> None: ...
    @typing.overload
    def __delitem__(self, index: slice) -> None: ...
    @typing.overload
    def __setitem__(self, index: typing.SupportsIndex, value: str) -> None: ...
    @typing.overload
    def __setitem__(self, index: slice, value: typing.Iterable[str]) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FileExtensionVector: ...
    def append(self, value: str, /) -> None: ...
    def clear(self) -> None: ...
    def first(self) -> typing.Optional[windows_foundation_collections.IIterator[str]]: ...
    def get_at(self, index: winrt.system.UInt32, /) -> str: ...
    def get_many(self, start_index: winrt.system.UInt32, items: typing.Union[winrt.system.Array[str], winrt.system.WriteableBuffer], /) -> winrt.system.UInt32: ...
    def get_view(self) -> typing.Optional[windows_foundation_collections.IVectorView[str]]: ...
    def index_of(self, value: str, /) -> typing.Tuple[bool, winrt.system.UInt32]: ...
    def insert_at(self, index: winrt.system.UInt32, value: str, /) -> None: ...
    def remove_at(self, index: winrt.system.UInt32, /) -> None: ...
    def remove_at_end(self) -> None: ...
    def replace_all(self, items: typing.Union[winrt.system.Array[str], winrt.system.ReadableBuffer], /) -> None: ...
    def set_at(self, index: winrt.system.UInt32, value: str, /) -> None: ...
    @_property
    def size(self) -> winrt.system.UInt32: ...

@typing.final
class FileOpenPicker_Static(type):
    def create_for_user(cls, user: typing.Optional[windows_system.User], /) -> typing.Optional[FileOpenPicker]: ...
    def resume_pick_single_file_async(cls) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...

@typing.final
class FileOpenPicker(winrt.system.Object, metaclass=FileOpenPicker_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FileOpenPicker: ...
    def __new__(cls: typing.Type[FileOpenPicker]) -> FileOpenPicker: ...
    def pick_multiple_files_and_continue(self) -> None: ...
    def pick_multiple_files_async(self) -> windows_foundation.IAsyncOperation[windows_foundation_collections.IVectorView[windows_storage.StorageFile]]: ...
    def pick_single_file_and_continue(self) -> None: ...
    @typing.overload
    def pick_single_file_async(self) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...
    @typing.overload
    def pick_single_file_async(self, picker_operation_id: str, /) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...
    @_property
    def view_mode(self) -> PickerViewMode: ...
    @view_mode.setter
    def view_mode(self, value: PickerViewMode) -> None: ...
    @_property
    def suggested_start_location(self) -> PickerLocationId: ...
    @suggested_start_location.setter
    def suggested_start_location(self, value: PickerLocationId) -> None: ...
    @_property
    def settings_identifier(self) -> str: ...
    @settings_identifier.setter
    def settings_identifier(self, value: str) -> None: ...
    @_property
    def commit_button_text(self) -> str: ...
    @commit_button_text.setter
    def commit_button_text(self, value: str) -> None: ...
    @_property
    def file_type_filter(self) -> typing.Optional[windows_foundation_collections.IVector[str]]: ...
    @_property
    def continuation_data(self) -> typing.Optional[windows_foundation_collections.ValueSet]: ...
    @_property
    def user(self) -> typing.Optional[windows_system.User]: ...

@typing.final
class FilePickerFileTypesOrderedMap(winrt.system.Object, winrt._winrt.MutableMapping[str, windows_foundation_collections.IVector[str]]):
    def __len__(self) -> int: ...
    def __iter__(self) -> typing.Iterator[str]: ...
    def __contains__(self, key: object) -> bool: ...
    def __getitem__(self, key: str) -> windows_foundation_collections.IVector[str]: ...
    def __setitem__(self, key: str, value: windows_foundation_collections.IVector[str]) -> None: ...
    def __delitem__(self, key: str) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FilePickerFileTypesOrderedMap: ...
    def clear(self) -> None: ...
    def first(self) -> typing.Optional[windows_foundation_collections.IIterator[windows_foundation_collections.IKeyValuePair[str, windows_foundation_collections.IVector[str]]]]: ...
    def get_view(self) -> typing.Optional[windows_foundation_collections.IMapView[str, windows_foundation_collections.IVector[str]]]: ...
    def has_key(self, key: str, /) -> bool: ...
    def insert(self, key: str, value: windows_foundation_collections.IVector[str], /) -> bool: ...
    def lookup(self, key: str, /) -> typing.Optional[windows_foundation_collections.IVector[str]]: ...
    def remove(self, key: str, /) -> None: ...
    @_property
    def size(self) -> winrt.system.UInt32: ...

@typing.final
class FilePickerSelectedFilesArray(winrt.system.Object, winrt._winrt.Sequence[windows_storage.StorageFile]):
    def __len__(self) -> int: ...
    def __iter__(self) -> windows_foundation_collections.IIterator[windows_storage.StorageFile]: ...
    @typing.overload
    def __getitem__(self, index: typing.SupportsIndex) -> windows_storage.StorageFile: ...
    @typing.overload
    def __getitem__(self, index: slice) -> winrt.system.Array[windows_storage.StorageFile]: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FilePickerSelectedFilesArray: ...
    def first(self) -> typing.Optional[windows_foundation_collections.IIterator[windows_storage.StorageFile]]: ...
    def get_at(self, index: winrt.system.UInt32, /) -> typing.Optional[windows_storage.StorageFile]: ...
    def get_many(self, start_index: winrt.system.UInt32, items: typing.Union[winrt.system.Array[windows_storage.StorageFile], winrt.system.WriteableBuffer], /) -> winrt.system.UInt32: ...
    def index_of(self, value: typing.Optional[windows_storage.StorageFile], /) -> typing.Tuple[bool, winrt.system.UInt32]: ...
    @_property
    def size(self) -> winrt.system.UInt32: ...

@typing.final
class FileSavePicker_Static(type):
    def create_for_user(cls, user: typing.Optional[windows_system.User], /) -> typing.Optional[FileSavePicker]: ...

@typing.final
class FileSavePicker(winrt.system.Object, metaclass=FileSavePicker_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FileSavePicker: ...
    def __new__(cls: typing.Type[FileSavePicker]) -> FileSavePicker: ...
    def pick_save_file_and_continue(self) -> None: ...
    def pick_save_file_async(self) -> windows_foundation.IAsyncOperation[windows_storage.StorageFile]: ...
    @_property
    def suggested_start_location(self) -> PickerLocationId: ...
    @suggested_start_location.setter
    def suggested_start_location(self, value: PickerLocationId) -> None: ...
    @_property
    def suggested_save_file(self) -> typing.Optional[windows_storage.StorageFile]: ...
    @suggested_save_file.setter
    def suggested_save_file(self, value: typing.Optional[windows_storage.StorageFile]) -> None: ...
    @_property
    def suggested_file_name(self) -> str: ...
    @suggested_file_name.setter
    def suggested_file_name(self, value: str) -> None: ...
    @_property
    def settings_identifier(self) -> str: ...
    @settings_identifier.setter
    def settings_identifier(self, value: str) -> None: ...
    @_property
    def default_file_extension(self) -> str: ...
    @default_file_extension.setter
    def default_file_extension(self, value: str) -> None: ...
    @_property
    def commit_button_text(self) -> str: ...
    @commit_button_text.setter
    def commit_button_text(self, value: str) -> None: ...
    @_property
    def file_type_choices(self) -> typing.Optional[windows_foundation_collections.IMap[str, windows_foundation_collections.IVector[str]]]: ...
    @_property
    def continuation_data(self) -> typing.Optional[windows_foundation_collections.ValueSet]: ...
    @_property
    def enterprise_id(self) -> str: ...
    @enterprise_id.setter
    def enterprise_id(self, value: str) -> None: ...
    @_property
    def user(self) -> typing.Optional[windows_system.User]: ...

@typing.final
class FolderPicker_Static(type):
    def create_for_user(cls, user: typing.Optional[windows_system.User], /) -> typing.Optional[FolderPicker]: ...

@typing.final
class FolderPicker(winrt.system.Object, metaclass=FolderPicker_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> FolderPicker: ...
    def __new__(cls: typing.Type[FolderPicker]) -> FolderPicker: ...
    def pick_folder_and_continue(self) -> None: ...
    def pick_single_folder_async(self) -> windows_foundation.IAsyncOperation[windows_storage.StorageFolder]: ...
    @_property
    def view_mode(self) -> PickerViewMode: ...
    @view_mode.setter
    def view_mode(self, value: PickerViewMode) -> None: ...
    @_property
    def suggested_start_location(self) -> PickerLocationId: ...
    @suggested_start_location.setter
    def suggested_start_location(self, value: PickerLocationId) -> None: ...
    @_property
    def settings_identifier(self) -> str: ...
    @settings_identifier.setter
    def settings_identifier(self, value: str) -> None: ...
    @_property
    def commit_button_text(self) -> str: ...
    @commit_button_text.setter
    def commit_button_text(self, value: str) -> None: ...
    @_property
    def file_type_filter(self) -> typing.Optional[windows_foundation_collections.IVector[str]]: ...
    @_property
    def continuation_data(self) -> typing.Optional[windows_foundation_collections.ValueSet]: ...
    @_property
    def user(self) -> typing.Optional[windows_system.User]: ...

