# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.7

import enum
import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
import winsdk.windows.applicationmodel.search
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.storage.streams

class SearchSuggestionKind(enum.IntEnum):
    QUERY = 0
    RESULT = 1
    SEPARATOR = 2

Self = typing.TypeVar('Self')

class RequestingFocusOnKeyboardInputEventArgs(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> RequestingFocusOnKeyboardInputEventArgs: ...

class SearchSuggestion(_winrt.Object):
    detail_text: str
    image: typing.Optional[winsdk.windows.storage.streams.IRandomAccessStreamReference]
    image_alternate_text: str
    kind: SearchSuggestionKind
    tag: str
    text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> SearchSuggestion: ...

class SearchSuggestionManager(_winrt.Object):
    search_history_enabled: _winrt.Boolean
    search_history_context: str
    suggestions: typing.Optional[winsdk.windows.foundation.collections.IObservableVector[SearchSuggestion]]
    @staticmethod
    def _from(obj: _winrt.Object) -> SearchSuggestionManager: ...
    def __new__(cls: typing.Type[SearchSuggestionManager]) -> SearchSuggestionManager:...
    @typing.overload
    def add_to_history(self, query_text: str) -> None: ...
    @typing.overload
    def add_to_history(self, query_text: str, language: str) -> None: ...
    def clear_history(self) -> None: ...
    def set_local_content_suggestion_settings(self, settings: typing.Optional[winsdk.windows.applicationmodel.search.LocalContentSuggestionSettings]) -> None: ...
    @typing.overload
    def set_query(self, query_text: str) -> None: ...
    @typing.overload
    def set_query(self, query_text: str, language: str) -> None: ...
    @typing.overload
    def set_query(self, query_text: str, language: str, linguistic_details: typing.Optional[winsdk.windows.applicationmodel.search.SearchQueryLinguisticDetails]) -> None: ...
    def add_requesting_focus_on_keyboard_input(self, handler: winsdk.windows.foundation.TypedEventHandler[SearchSuggestionManager, RequestingFocusOnKeyboardInputEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_requesting_focus_on_keyboard_input(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_suggestions_requested(self, handler: winsdk.windows.foundation.TypedEventHandler[SearchSuggestionManager, SearchSuggestionsRequestedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_suggestions_requested(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class SearchSuggestionsRequestedEventArgs(_winrt.Object):
    language: str
    linguistic_details: typing.Optional[winsdk.windows.applicationmodel.search.SearchQueryLinguisticDetails]
    query_text: str
    request: typing.Optional[winsdk.windows.applicationmodel.search.SearchSuggestionsRequest]
    @staticmethod
    def _from(obj: _winrt.Object) -> SearchSuggestionsRequestedEventArgs: ...

