# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.0.0

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property
from abc import abstractmethod

import winrt._winrt
import winrt.system
import winrt.windows.data.text as windows_data_text
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.streams as windows_storage_streams

from winrt.windows.storage.search import CommonFileQuery, CommonFolderQuery, DateStackOption, FolderDepth, IndexedState, IndexerOption

Self = typing.TypeVar('Self')

@typing.final
class SortEntry:
    @_property
    def property_name(self) -> str: ...
    @_property
    def ascending_order(self) -> bool: ...
    def __new__(cls, property_name: str = "", ascending_order: bool = False) -> SortEntry: ...
    def __replace__(self, /, **changes: typing.Any) -> SortEntry: ...
    def unpack(self) -> typing.Tuple[str, bool]: ...

@typing.final
class ContentIndexer_Static(winrt._winrt.IInspectable_Static):
    # Windows.Storage.Search.ContentIndexer Windows.Storage.Search.ContentIndexer::GetIndexer()
    def get_indexer(cls) -> ContentIndexer: ...
    # Windows.Storage.Search.ContentIndexer Windows.Storage.Search.ContentIndexer::GetIndexer(System.String)
    def get_indexer_with_name(cls, index_name: str, /) -> ContentIndexer: ...

@typing.final
class ContentIndexer(winrt.system.Object, metaclass=ContentIndexer_Static):
    # Windows.Foundation.IAsyncAction Windows.Storage.Search.ContentIndexer::AddAsync(Windows.Storage.Search.IIndexableContent)
    def add_async(self, indexable_content: IIndexableContent, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Storage.Search.ContentIndexerQuery Windows.Storage.Search.ContentIndexer::CreateQuery(System.String,Windows.Foundation.Collections.IIterable`1<System.String>)
    def create_query(self, search_filter: str, properties_to_retrieve: typing.Iterable[str], /) -> ContentIndexerQuery: ...
    # Windows.Storage.Search.ContentIndexerQuery Windows.Storage.Search.ContentIndexer::CreateQuery(System.String,Windows.Foundation.Collections.IIterable`1<System.String>,Windows.Foundation.Collections.IIterable`1<Windows.Storage.Search.SortEntry>)
    def create_query_with_sort_order(self, search_filter: str, properties_to_retrieve: typing.Iterable[str], sort_order: typing.Iterable[SortEntry], /) -> ContentIndexerQuery: ...
    # Windows.Storage.Search.ContentIndexerQuery Windows.Storage.Search.ContentIndexer::CreateQuery(System.String,Windows.Foundation.Collections.IIterable`1<System.String>,Windows.Foundation.Collections.IIterable`1<Windows.Storage.Search.SortEntry>,System.String)
    def create_query_with_sort_order_and_language(self, search_filter: str, properties_to_retrieve: typing.Iterable[str], sort_order: typing.Iterable[SortEntry], search_filter_language: str, /) -> ContentIndexerQuery: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.Search.ContentIndexer::DeleteAllAsync()
    def delete_all_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.Search.ContentIndexer::DeleteAsync(System.String)
    def delete_async(self, content_id: str, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.Search.ContentIndexer::DeleteMultipleAsync(Windows.Foundation.Collections.IIterable`1<System.String>)
    def delete_multiple_async(self, content_ids: typing.Iterable[str], /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IMapView`2<System.String,System.Object>> Windows.Storage.Search.ContentIndexer::RetrievePropertiesAsync(System.String,Windows.Foundation.Collections.IIterable`1<System.String>)
    def retrieve_properties_async(self, content_id: str, properties_to_retrieve: typing.Iterable[str], /) -> windows_foundation.IAsyncOperation[typing.Mapping[str, winrt.system.Object]]: ...
    # Windows.Foundation.IAsyncAction Windows.Storage.Search.ContentIndexer::UpdateAsync(Windows.Storage.Search.IIndexableContent)
    def update_async(self, indexable_content: IIndexableContent, /) -> windows_foundation.IAsyncAction: ...
    # System.UInt64 Windows.Storage.Search.ContentIndexer::get_Revision()
    @_property
    def revision(self) -> winrt.system.UInt64: ...

@typing.final
class ContentIndexerQuery(winrt.system.Object):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.Search.IIndexableContent>> Windows.Storage.Search.ContentIndexerQuery::GetAsync()
    def get_async(self) -> windows_foundation.IAsyncOperation[typing.Sequence[IIndexableContent]]: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Storage.Search.ContentIndexerQuery::GetCountAsync()
    def get_count_async(self) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Foundation.Collections.IMapView`2<System.String,System.Object>>> Windows.Storage.Search.ContentIndexerQuery::GetPropertiesAsync()
    def get_properties_async(self) -> windows_foundation.IAsyncOperation[typing.Sequence[typing.Mapping[str, winrt.system.Object]]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Foundation.Collections.IMapView`2<System.String,System.Object>>> Windows.Storage.Search.ContentIndexerQuery::GetPropertiesAsync(System.UInt32,System.UInt32)
    def get_properties_range_async(self, start_index: winrt.system.UInt32, max_items: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[typing.Sequence[typing.Mapping[str, winrt.system.Object]]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.Search.IIndexableContent>> Windows.Storage.Search.ContentIndexerQuery::GetAsync(System.UInt32,System.UInt32)
    def get_range_async(self, start_index: winrt.system.UInt32, max_items: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[typing.Sequence[IIndexableContent]]: ...
    # Windows.Storage.StorageFolder Windows.Storage.Search.ContentIndexerQuery::get_QueryFolder()
    @_property
    def query_folder(self) -> windows_storage.StorageFolder: ...

@typing.final
class IndexableContent(winrt.system.Object, IIndexableContent):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Storage.Search.IndexableContent::get_StreamContentType()
    @_property
    def stream_content_type(self) -> str: ...
    # System.Void Windows.Storage.Search.IndexableContent::put_StreamContentType(System.String)
    @stream_content_type.setter
    def stream_content_type(self, value: str) -> None: ...
    # Windows.Storage.Streams.IRandomAccessStream Windows.Storage.Search.IndexableContent::get_Stream()
    @_property
    def stream(self) -> windows_storage_streams.IRandomAccessStream: ...
    # System.Void Windows.Storage.Search.IndexableContent::put_Stream(Windows.Storage.Streams.IRandomAccessStream)
    @stream.setter
    def stream(self, value: windows_storage_streams.IRandomAccessStream) -> None: ...
    # System.String Windows.Storage.Search.IndexableContent::get_Id()
    @_property
    def id(self) -> str: ...
    # System.Void Windows.Storage.Search.IndexableContent::put_Id(System.String)
    @id.setter
    def id(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IMap`2<System.String,System.Object> Windows.Storage.Search.IndexableContent::get_Properties()
    @_property
    def properties(self) -> typing.MutableMapping[str, winrt.system.Object]: ...

@typing.final
class QueryOptions(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self], query: CommonFileQuery, file_type_filter: typing.Iterable[str]) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], query: CommonFolderQuery) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Void Windows.Storage.Search.QueryOptions::LoadFromString(System.String)
    def load_from_string(self, value: str, /) -> None: ...
    # System.String Windows.Storage.Search.QueryOptions::SaveToString()
    def save_to_string(self) -> str: ...
    # System.Void Windows.Storage.Search.QueryOptions::SetPropertyPrefetch(Windows.Storage.FileProperties.PropertyPrefetchOptions,Windows.Foundation.Collections.IIterable`1<System.String>)
    def set_property_prefetch(self, options: windows_storage_fileproperties.PropertyPrefetchOptions, properties_to_retrieve: typing.Iterable[str], /) -> None: ...
    # System.Void Windows.Storage.Search.QueryOptions::SetThumbnailPrefetch(Windows.Storage.FileProperties.ThumbnailMode,System.UInt32,Windows.Storage.FileProperties.ThumbnailOptions)
    def set_thumbnail_prefetch(self, mode: windows_storage_fileproperties.ThumbnailMode, requested_size: winrt.system.UInt32, options: windows_storage_fileproperties.ThumbnailOptions, /) -> None: ...
    # System.String Windows.Storage.Search.QueryOptions::get_UserSearchFilter()
    @_property
    def user_search_filter(self) -> str: ...
    # System.Void Windows.Storage.Search.QueryOptions::put_UserSearchFilter(System.String)
    @user_search_filter.setter
    def user_search_filter(self, value: str) -> None: ...
    # System.String Windows.Storage.Search.QueryOptions::get_Language()
    @_property
    def language(self) -> str: ...
    # System.Void Windows.Storage.Search.QueryOptions::put_Language(System.String)
    @language.setter
    def language(self, value: str) -> None: ...
    # Windows.Storage.Search.IndexerOption Windows.Storage.Search.QueryOptions::get_IndexerOption()
    @_property
    def indexer_option(self) -> IndexerOption: ...
    # System.Void Windows.Storage.Search.QueryOptions::put_IndexerOption(Windows.Storage.Search.IndexerOption)
    @indexer_option.setter
    def indexer_option(self, value: IndexerOption) -> None: ...
    # Windows.Storage.Search.FolderDepth Windows.Storage.Search.QueryOptions::get_FolderDepth()
    @_property
    def folder_depth(self) -> FolderDepth: ...
    # System.Void Windows.Storage.Search.QueryOptions::put_FolderDepth(Windows.Storage.Search.FolderDepth)
    @folder_depth.setter
    def folder_depth(self, value: FolderDepth) -> None: ...
    # System.String Windows.Storage.Search.QueryOptions::get_ApplicationSearchFilter()
    @_property
    def application_search_filter(self) -> str: ...
    # System.Void Windows.Storage.Search.QueryOptions::put_ApplicationSearchFilter(System.String)
    @application_search_filter.setter
    def application_search_filter(self, value: str) -> None: ...
    # Windows.Storage.Search.DateStackOption Windows.Storage.Search.QueryOptions::get_DateStackOption()
    @_property
    def date_stack_option(self) -> DateStackOption: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.Search.QueryOptions::get_FileTypeFilter()
    @_property
    def file_type_filter(self) -> typing.MutableSequence[str]: ...
    # System.String Windows.Storage.Search.QueryOptions::get_GroupPropertyName()
    @_property
    def group_property_name(self) -> str: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Storage.Search.SortEntry> Windows.Storage.Search.QueryOptions::get_SortOrder()
    @_property
    def sort_order(self) -> typing.MutableSequence[SortEntry]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Storage.Search.QueryOptions::get_StorageProviderIdFilter()
    @_property
    def storage_provider_id_filter(self) -> typing.MutableSequence[str]: ...

@typing.final
class SortEntryVector(winrt.system.Object, winrt._winrt.MutableSequence[SortEntry]):
    def __len__(self) -> int: ...
    def __iter__(self) -> typing.Iterator[SortEntry]: ...
    @typing.overload
    def __getitem__(self, index: typing.SupportsIndex) -> SortEntry: ...
    @typing.overload
    def __getitem__(self, index: slice) -> winrt.system.Array[SortEntry]: ...
    @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: typing.Union[SortEntry, typing.Tuple[str, bool]]) -> None: ...
    @typing.overload
    def __setitem__(self, index: slice, value: typing.Iterable[typing.Union[SortEntry, typing.Tuple[str, bool]]]) -> None: ...
    # System.Void Windows.Storage.Search.SortEntryVector::Append(Windows.Storage.Search.SortEntry)
    def append(self, value: typing.Union[SortEntry, typing.Tuple[str, bool]], /) -> None: ...
    # System.Void Windows.Storage.Search.SortEntryVector::Clear()
    def clear(self) -> None: ...
    # Windows.Foundation.Collections.IIterator`1<Windows.Storage.Search.SortEntry> Windows.Storage.Search.SortEntryVector::First()
    def first(self) -> windows_foundation_collections.IIterator[SortEntry]: ...
    # Windows.Storage.Search.SortEntry Windows.Storage.Search.SortEntryVector::GetAt(System.UInt32)
    def get_at(self, index: winrt.system.UInt32, /) -> SortEntry: ...
    # System.UInt32 Windows.Storage.Search.SortEntryVector::GetMany(System.UInt32,Windows.Storage.Search.SortEntry[])
    def get_many(self, start_index: winrt.system.UInt32, items: typing.Union[winrt.system.Array[SortEntry], winrt.system.WriteableBuffer], /) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Storage.Search.SortEntry> Windows.Storage.Search.SortEntryVector::GetView()
    def get_view(self) -> typing.Sequence[SortEntry]: ...
    # System.Boolean Windows.Storage.Search.SortEntryVector::IndexOf(Windows.Storage.Search.SortEntry,System.UInt32&)
    def index_of(self, value: typing.Union[SortEntry, typing.Tuple[str, bool]], /) -> typing.Tuple[bool, winrt.system.UInt32]: ...
    # System.Void Windows.Storage.Search.SortEntryVector::InsertAt(System.UInt32,Windows.Storage.Search.SortEntry)
    def insert_at(self, index: winrt.system.UInt32, value: typing.Union[SortEntry, typing.Tuple[str, bool]], /) -> None: ...
    # System.Void Windows.Storage.Search.SortEntryVector::RemoveAt(System.UInt32)
    def remove_at(self, index: winrt.system.UInt32, /) -> None: ...
    # System.Void Windows.Storage.Search.SortEntryVector::RemoveAtEnd()
    def remove_at_end(self) -> None: ...
    # System.Void Windows.Storage.Search.SortEntryVector::ReplaceAll(Windows.Storage.Search.SortEntry[])
    def replace_all(self, items: typing.Union[winrt.system.Array[SortEntry], winrt.system.ReadableBuffer], /) -> None: ...
    # System.Void Windows.Storage.Search.SortEntryVector::SetAt(System.UInt32,Windows.Storage.Search.SortEntry)
    def set_at(self, index: winrt.system.UInt32, value: typing.Union[SortEntry, typing.Tuple[str, bool]], /) -> None: ...
    # System.UInt32 Windows.Storage.Search.SortEntryVector::get_Size()
    @_property
    def size(self) -> winrt.system.UInt32: ...

@typing.final
class StorageFileQueryResult(winrt.system.Object, IStorageQueryResultBase):
    # System.Void Windows.Storage.Search.StorageFileQueryResult::ApplyNewQueryOptions(Windows.Storage.Search.QueryOptions)
    def apply_new_query_options(self, new_query_options: QueryOptions, /) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Storage.Search.StorageFileQueryResult::FindStartIndexAsync(System.Object)
    def find_start_index_async(self, value: winrt.system.Object, /) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Storage.Search.QueryOptions Windows.Storage.Search.StorageFileQueryResult::GetCurrentQueryOptions()
    def get_current_query_options(self) -> QueryOptions: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.StorageFile>> Windows.Storage.Search.StorageFileQueryResult::GetFilesAsync(System.UInt32,System.UInt32)
    def get_files_async(self, start_index: winrt.system.UInt32, max_number_of_items: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.StorageFile]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.StorageFile>> Windows.Storage.Search.StorageFileQueryResult::GetFilesAsync()
    def get_files_async_default_start_and_count(self) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.StorageFile]]: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Storage.Search.StorageFileQueryResult::GetItemCountAsync()
    def get_item_count_async(self) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Foundation.Collections.IMap`2<System.String,Windows.Foundation.Collections.IVectorView`1<Windows.Data.Text.TextSegment>> Windows.Storage.Search.StorageFileQueryResult::GetMatchingPropertiesWithRanges(Windows.Storage.StorageFile)
    def get_matching_properties_with_ranges(self, file: windows_storage.StorageFile, /) -> typing.MutableMapping[str, typing.Sequence[windows_data_text.TextSegment]]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Storage.Search.StorageFileQueryResult::add_ContentsChanged(Windows.Foundation.TypedEventHandler`2<Windows.Storage.Search.IStorageQueryResultBase,System.Object>)
    def add_contents_changed(self, handler: windows_foundation.TypedEventHandler[IStorageQueryResultBase, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Storage.Search.StorageFileQueryResult::remove_ContentsChanged(Windows.Foundation.EventRegistrationToken)
    def remove_contents_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Storage.Search.StorageFileQueryResult::add_OptionsChanged(Windows.Foundation.TypedEventHandler`2<Windows.Storage.Search.IStorageQueryResultBase,System.Object>)
    def add_options_changed(self, changed_handler: windows_foundation.TypedEventHandler[IStorageQueryResultBase, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Storage.Search.StorageFileQueryResult::remove_OptionsChanged(Windows.Foundation.EventRegistrationToken)
    def remove_options_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Storage.StorageFolder Windows.Storage.Search.StorageFileQueryResult::get_Folder()
    @_property
    def folder(self) -> windows_storage.StorageFolder: ...

@typing.final
class StorageFolderQueryResult(winrt.system.Object, IStorageQueryResultBase):
    # System.Void Windows.Storage.Search.StorageFolderQueryResult::ApplyNewQueryOptions(Windows.Storage.Search.QueryOptions)
    def apply_new_query_options(self, new_query_options: QueryOptions, /) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Storage.Search.StorageFolderQueryResult::FindStartIndexAsync(System.Object)
    def find_start_index_async(self, value: winrt.system.Object, /) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Storage.Search.QueryOptions Windows.Storage.Search.StorageFolderQueryResult::GetCurrentQueryOptions()
    def get_current_query_options(self) -> QueryOptions: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.StorageFolder>> Windows.Storage.Search.StorageFolderQueryResult::GetFoldersAsync(System.UInt32,System.UInt32)
    def get_folders_async(self, start_index: winrt.system.UInt32, max_number_of_items: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.StorageFolder]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.StorageFolder>> Windows.Storage.Search.StorageFolderQueryResult::GetFoldersAsync()
    def get_folders_async_default_start_and_count(self) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.StorageFolder]]: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Storage.Search.StorageFolderQueryResult::GetItemCountAsync()
    def get_item_count_async(self) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Storage.Search.StorageFolderQueryResult::add_ContentsChanged(Windows.Foundation.TypedEventHandler`2<Windows.Storage.Search.IStorageQueryResultBase,System.Object>)
    def add_contents_changed(self, handler: windows_foundation.TypedEventHandler[IStorageQueryResultBase, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Storage.Search.StorageFolderQueryResult::remove_ContentsChanged(Windows.Foundation.EventRegistrationToken)
    def remove_contents_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Storage.Search.StorageFolderQueryResult::add_OptionsChanged(Windows.Foundation.TypedEventHandler`2<Windows.Storage.Search.IStorageQueryResultBase,System.Object>)
    def add_options_changed(self, changed_handler: windows_foundation.TypedEventHandler[IStorageQueryResultBase, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Storage.Search.StorageFolderQueryResult::remove_OptionsChanged(Windows.Foundation.EventRegistrationToken)
    def remove_options_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Storage.StorageFolder Windows.Storage.Search.StorageFolderQueryResult::get_Folder()
    @_property
    def folder(self) -> windows_storage.StorageFolder: ...

@typing.final
class StorageItemQueryResult(winrt.system.Object, IStorageQueryResultBase):
    # System.Void Windows.Storage.Search.StorageItemQueryResult::ApplyNewQueryOptions(Windows.Storage.Search.QueryOptions)
    def apply_new_query_options(self, new_query_options: QueryOptions, /) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Storage.Search.StorageItemQueryResult::FindStartIndexAsync(System.Object)
    def find_start_index_async(self, value: winrt.system.Object, /) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Storage.Search.QueryOptions Windows.Storage.Search.StorageItemQueryResult::GetCurrentQueryOptions()
    def get_current_query_options(self) -> QueryOptions: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Storage.Search.StorageItemQueryResult::GetItemCountAsync()
    def get_item_count_async(self) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.IStorageItem>> Windows.Storage.Search.StorageItemQueryResult::GetItemsAsync(System.UInt32,System.UInt32)
    def get_items_async(self, start_index: winrt.system.UInt32, max_number_of_items: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.IStorageItem]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.IStorageItem>> Windows.Storage.Search.StorageItemQueryResult::GetItemsAsync()
    def get_items_async_default_start_and_count(self) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.IStorageItem]]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Storage.Search.StorageItemQueryResult::add_ContentsChanged(Windows.Foundation.TypedEventHandler`2<Windows.Storage.Search.IStorageQueryResultBase,System.Object>)
    def add_contents_changed(self, handler: windows_foundation.TypedEventHandler[IStorageQueryResultBase, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Storage.Search.StorageItemQueryResult::remove_ContentsChanged(Windows.Foundation.EventRegistrationToken)
    def remove_contents_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Storage.Search.StorageItemQueryResult::add_OptionsChanged(Windows.Foundation.TypedEventHandler`2<Windows.Storage.Search.IStorageQueryResultBase,System.Object>)
    def add_options_changed(self, changed_handler: windows_foundation.TypedEventHandler[IStorageQueryResultBase, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Storage.Search.StorageItemQueryResult::remove_OptionsChanged(Windows.Foundation.EventRegistrationToken)
    def remove_options_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Storage.StorageFolder Windows.Storage.Search.StorageItemQueryResult::get_Folder()
    @_property
    def folder(self) -> windows_storage.StorageFolder: ...

@typing.final
class StorageLibraryChangeTrackerTriggerDetails(winrt.system.Object):
    # Windows.Storage.StorageLibraryChangeTracker Windows.Storage.Search.StorageLibraryChangeTrackerTriggerDetails::get_ChangeTracker()
    @_property
    def change_tracker(self) -> windows_storage.StorageLibraryChangeTracker: ...
    # Windows.Storage.StorageFolder Windows.Storage.Search.StorageLibraryChangeTrackerTriggerDetails::get_Folder()
    @_property
    def folder(self) -> windows_storage.StorageFolder: ...

@typing.final
class StorageLibraryContentChangedTriggerDetails(winrt.system.Object):
    # Windows.Storage.Search.StorageItemQueryResult Windows.Storage.Search.StorageLibraryContentChangedTriggerDetails::CreateModifiedSinceQuery(Windows.Foundation.DateTime)
    def create_modified_since_query(self, last_query_time: datetime.datetime, /) -> StorageItemQueryResult: ...
    # Windows.Storage.StorageFolder Windows.Storage.Search.StorageLibraryContentChangedTriggerDetails::get_Folder()
    @_property
    def folder(self) -> windows_storage.StorageFolder: ...

@typing.final
class ValueAndLanguage(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Object Windows.Storage.Search.ValueAndLanguage::get_Value()
    @_property
    def value(self) -> winrt.system.Object: ...
    # System.Void Windows.Storage.Search.ValueAndLanguage::put_Value(System.Object)
    @value.setter
    def value(self, value: winrt.system.Object) -> None: ...
    # System.String Windows.Storage.Search.ValueAndLanguage::get_Language()
    @_property
    def language(self) -> str: ...
    # System.Void Windows.Storage.Search.ValueAndLanguage::put_Language(System.String)
    @language.setter
    def language(self, value: str) -> None: ...

@typing.final
class _IIndexableContent: ...

class IIndexableContent(winrt._winrt.IInspectable):
    # System.String Windows.Storage.Search.IIndexableContent::get_Id()
    @_property
    @abstractmethod
    def id(self) -> str: ...
    # System.Void Windows.Storage.Search.IIndexableContent::put_Id(System.String)
    @id.setter
    @abstractmethod
    def id(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IMap`2<System.String,System.Object> Windows.Storage.Search.IIndexableContent::get_Properties()
    @_property
    @abstractmethod
    def properties(self) -> typing.MutableMapping[str, winrt.system.Object]: ...
    # Windows.Storage.Streams.IRandomAccessStream Windows.Storage.Search.IIndexableContent::get_Stream()
    @_property
    @abstractmethod
    def stream(self) -> windows_storage_streams.IRandomAccessStream: ...
    # System.Void Windows.Storage.Search.IIndexableContent::put_Stream(Windows.Storage.Streams.IRandomAccessStream)
    @stream.setter
    @abstractmethod
    def stream(self, value: windows_storage_streams.IRandomAccessStream) -> None: ...
    # System.String Windows.Storage.Search.IIndexableContent::get_StreamContentType()
    @_property
    @abstractmethod
    def stream_content_type(self) -> str: ...
    # System.Void Windows.Storage.Search.IIndexableContent::put_StreamContentType(System.String)
    @stream_content_type.setter
    @abstractmethod
    def stream_content_type(self, value: str) -> None: ...

@typing.final
class _IStorageFolderQueryOperations: ...

class IStorageFolderQueryOperations(winrt._winrt.IInspectable):
    # System.Boolean Windows.Storage.Search.IStorageFolderQueryOperations::AreQueryOptionsSupported(Windows.Storage.Search.QueryOptions)
    @abstractmethod
    def are_query_options_supported(self, query_options: QueryOptions, /) -> bool: ...
    # Windows.Storage.Search.StorageFileQueryResult Windows.Storage.Search.IStorageFolderQueryOperations::CreateFileQuery(Windows.Storage.Search.CommonFileQuery)
    @abstractmethod
    def create_file_query(self, query: CommonFileQuery, /) -> StorageFileQueryResult: ...
    # Windows.Storage.Search.StorageFileQueryResult Windows.Storage.Search.IStorageFolderQueryOperations::CreateFileQuery()
    @abstractmethod
    def create_file_query_overload_default(self) -> StorageFileQueryResult: ...
    # Windows.Storage.Search.StorageFileQueryResult Windows.Storage.Search.IStorageFolderQueryOperations::CreateFileQueryWithOptions(Windows.Storage.Search.QueryOptions)
    @abstractmethod
    def create_file_query_with_options(self, query_options: QueryOptions, /) -> StorageFileQueryResult: ...
    # Windows.Storage.Search.StorageFolderQueryResult Windows.Storage.Search.IStorageFolderQueryOperations::CreateFolderQuery(Windows.Storage.Search.CommonFolderQuery)
    @abstractmethod
    def create_folder_query(self, query: CommonFolderQuery, /) -> StorageFolderQueryResult: ...
    # Windows.Storage.Search.StorageFolderQueryResult Windows.Storage.Search.IStorageFolderQueryOperations::CreateFolderQuery()
    @abstractmethod
    def create_folder_query_overload_default(self) -> StorageFolderQueryResult: ...
    # Windows.Storage.Search.StorageFolderQueryResult Windows.Storage.Search.IStorageFolderQueryOperations::CreateFolderQueryWithOptions(Windows.Storage.Search.QueryOptions)
    @abstractmethod
    def create_folder_query_with_options(self, query_options: QueryOptions, /) -> StorageFolderQueryResult: ...
    # Windows.Storage.Search.StorageItemQueryResult Windows.Storage.Search.IStorageFolderQueryOperations::CreateItemQuery()
    @abstractmethod
    def create_item_query(self) -> StorageItemQueryResult: ...
    # Windows.Storage.Search.StorageItemQueryResult Windows.Storage.Search.IStorageFolderQueryOperations::CreateItemQueryWithOptions(Windows.Storage.Search.QueryOptions)
    @abstractmethod
    def create_item_query_with_options(self, query_options: QueryOptions, /) -> StorageItemQueryResult: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.StorageFile>> Windows.Storage.Search.IStorageFolderQueryOperations::GetFilesAsync(Windows.Storage.Search.CommonFileQuery,System.UInt32,System.UInt32)
    @abstractmethod
    def get_files_async(self, query: CommonFileQuery, start_index: winrt.system.UInt32, max_items_to_retrieve: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.StorageFile]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.StorageFile>> Windows.Storage.Search.IStorageFolderQueryOperations::GetFilesAsync(Windows.Storage.Search.CommonFileQuery)
    @abstractmethod
    def get_files_async_overload_default_start_and_count(self, query: CommonFileQuery, /) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.StorageFile]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.StorageFolder>> Windows.Storage.Search.IStorageFolderQueryOperations::GetFoldersAsync(Windows.Storage.Search.CommonFolderQuery,System.UInt32,System.UInt32)
    @abstractmethod
    def get_folders_async(self, query: CommonFolderQuery, start_index: winrt.system.UInt32, max_items_to_retrieve: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.StorageFolder]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.StorageFolder>> Windows.Storage.Search.IStorageFolderQueryOperations::GetFoldersAsync(Windows.Storage.Search.CommonFolderQuery)
    @abstractmethod
    def get_folders_async_overload_default_start_and_count(self, query: CommonFolderQuery, /) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.StorageFolder]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.Search.IndexedState> Windows.Storage.Search.IStorageFolderQueryOperations::GetIndexedStateAsync()
    @abstractmethod
    def get_indexed_state_async(self) -> windows_foundation.IAsyncOperation[IndexedState]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Storage.IStorageItem>> Windows.Storage.Search.IStorageFolderQueryOperations::GetItemsAsync(System.UInt32,System.UInt32)
    @abstractmethod
    def get_items_async(self, start_index: winrt.system.UInt32, max_items_to_retrieve: winrt.system.UInt32, /) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_storage.IStorageItem]]: ...
    # System.Boolean Windows.Storage.Search.IStorageFolderQueryOperations::IsCommonFileQuerySupported(Windows.Storage.Search.CommonFileQuery)
    @abstractmethod
    def is_common_file_query_supported(self, query: CommonFileQuery, /) -> bool: ...
    # System.Boolean Windows.Storage.Search.IStorageFolderQueryOperations::IsCommonFolderQuerySupported(Windows.Storage.Search.CommonFolderQuery)
    @abstractmethod
    def is_common_folder_query_supported(self, query: CommonFolderQuery, /) -> bool: ...

@typing.final
class _IStorageQueryResultBase: ...

class IStorageQueryResultBase(winrt._winrt.IInspectable):
    # System.Void Windows.Storage.Search.IStorageQueryResultBase::ApplyNewQueryOptions(Windows.Storage.Search.QueryOptions)
    @abstractmethod
    def apply_new_query_options(self, new_query_options: QueryOptions, /) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Storage.Search.IStorageQueryResultBase::FindStartIndexAsync(System.Object)
    @abstractmethod
    def find_start_index_async(self, value: winrt.system.Object, /) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Storage.Search.QueryOptions Windows.Storage.Search.IStorageQueryResultBase::GetCurrentQueryOptions()
    @abstractmethod
    def get_current_query_options(self) -> QueryOptions: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Storage.Search.IStorageQueryResultBase::GetItemCountAsync()
    @abstractmethod
    def get_item_count_async(self) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Storage.Search.IStorageQueryResultBase::add_ContentsChanged(Windows.Foundation.TypedEventHandler`2<Windows.Storage.Search.IStorageQueryResultBase,System.Object>)
    @abstractmethod
    def add_contents_changed(self, handler: windows_foundation.TypedEventHandler[IStorageQueryResultBase, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Storage.Search.IStorageQueryResultBase::remove_ContentsChanged(Windows.Foundation.EventRegistrationToken)
    @abstractmethod
    def remove_contents_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Windows.Storage.Search.IStorageQueryResultBase::add_OptionsChanged(Windows.Foundation.TypedEventHandler`2<Windows.Storage.Search.IStorageQueryResultBase,System.Object>)
    @abstractmethod
    def add_options_changed(self, changed_handler: windows_foundation.TypedEventHandler[IStorageQueryResultBase, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Storage.Search.IStorageQueryResultBase::remove_OptionsChanged(Windows.Foundation.EventRegistrationToken)
    @abstractmethod
    def remove_options_changed(self, event_cookie: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Storage.StorageFolder Windows.Storage.Search.IStorageQueryResultBase::get_Folder()
    @_property
    @abstractmethod
    def folder(self) -> windows_storage.StorageFolder: ...

