# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.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.ai.actions as windows_ai_actions
import winrt.windows.foundation as windows_foundation
import winrt.windows.ui as windows_ui

Self = typing.TypeVar('Self')

@typing.final
class ActionCatalog(winrt.system.Object, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.AI.Actions.Hosting.ActionCatalog::Close()
    def close(self) -> None: ...
    # Windows.AI.Actions.Hosting.ActionInstance[] Windows.AI.Actions.Hosting.ActionCatalog::GetActionsForInputs(Windows.AI.Actions.ActionEntity[])
    def get_actions_for_inputs(self, input_entities: typing.Union[winrt.system.Array[windows_ai_actions.ActionEntity], winrt.system.ReadableBuffer], /) -> winrt.system.Array[ActionInstance]: ...
    # Windows.AI.Actions.Hosting.ActionInstance[] Windows.AI.Actions.Hosting.ActionCatalog::GetActionsForInputs(Windows.AI.Actions.ActionEntity[],Windows.UI.WindowId)
    def get_actions_for_inputs2(self, input_entities: typing.Union[winrt.system.Array[windows_ai_actions.ActionEntity], winrt.system.ReadableBuffer], invoker_window_id: typing.Union[windows_ui.WindowId, typing.Tuple[winrt.system.UInt64]], /) -> winrt.system.Array[ActionInstance]: ...
    # Windows.AI.Actions.Hosting.ActionDefinition[] Windows.AI.Actions.Hosting.ActionCatalog::GetAllActions()
    def get_all_actions(self) -> winrt.system.Array[ActionDefinition]: ...
    # Windows.Foundation.EventRegistrationToken Windows.AI.Actions.Hosting.ActionCatalog::add_Changed(Windows.Foundation.TypedEventHandler`2<Windows.AI.Actions.Hosting.ActionCatalog,System.Object>)
    def add_changed(self, handler: windows_foundation.TypedEventHandler[ActionCatalog, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.AI.Actions.Hosting.ActionCatalog::remove_Changed(Windows.Foundation.EventRegistrationToken)
    def remove_changed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class ActionDefinition(winrt.system.Object, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.AI.Actions.Hosting.ActionDefinition::Close()
    def close(self) -> None: ...
    # Windows.AI.Actions.Hosting.ActionEntityRegistrationInfo[] Windows.AI.Actions.Hosting.ActionDefinition::GetInputs()
    def get_inputs(self) -> winrt.system.Array[ActionEntityRegistrationInfo]: ...
    # Windows.AI.Actions.Hosting.ActionEntityRegistrationInfo[] Windows.AI.Actions.Hosting.ActionDefinition::GetOutputs()
    def get_outputs(self) -> winrt.system.Array[ActionEntityRegistrationInfo]: ...
    # Windows.AI.Actions.Hosting.ActionOverload[] Windows.AI.Actions.Hosting.ActionDefinition::GetOverloads()
    def get_overloads(self) -> winrt.system.Array[ActionOverload]: ...
    # System.String Windows.AI.Actions.Hosting.ActionDefinition::get_Description()
    @_property
    def description(self) -> str: ...
    # System.String Windows.AI.Actions.Hosting.ActionDefinition::get_IconFullPath()
    @_property
    def icon_full_path(self) -> str: ...
    # System.String Windows.AI.Actions.Hosting.ActionDefinition::get_Id()
    @_property
    def id(self) -> str: ...
    # System.String Windows.AI.Actions.Hosting.ActionDefinition::get_PackageFamilyName()
    @_property
    def package_family_name(self) -> str: ...
    # System.Boolean Windows.AI.Actions.Hosting.ActionDefinition::get_DisplaysUI()
    @_property
    def displays_ui(self) -> bool: ...
    # System.UInt32 Windows.AI.Actions.Hosting.ActionDefinition::get_SchemaVersion()
    @_property
    def schema_version(self) -> winrt.system.UInt32: ...
    # System.Boolean Windows.AI.Actions.Hosting.ActionDefinition::get_UsesGenerativeAI()
    @_property
    def uses_generative_a_i(self) -> bool: ...
    # System.String Windows.AI.Actions.Hosting.ActionDefinition::get_PackageRelativeApplicationId()
    @_property
    def package_relative_application_id(self) -> str: ...

@typing.final
class ActionEntityRegistrationInfo(winrt.system.Object, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.AI.Actions.Hosting.ActionEntityRegistrationInfo::Close()
    def close(self) -> None: ...
    # System.String Windows.AI.Actions.Hosting.ActionEntityRegistrationInfo::get_Name()
    @_property
    def name(self) -> str: ...
    # System.Void Windows.AI.Actions.Hosting.ActionEntityRegistrationInfo::put_Name(System.String)
    @name.setter
    def name(self, value: str) -> None: ...
    # Windows.AI.Actions.ActionEntityKind Windows.AI.Actions.Hosting.ActionEntityRegistrationInfo::get_Kind()
    @_property
    def kind(self) -> windows_ai_actions.ActionEntityKind: ...
    # System.Void Windows.AI.Actions.Hosting.ActionEntityRegistrationInfo::put_Kind(Windows.AI.Actions.ActionEntityKind)
    @kind.setter
    def kind(self, value: windows_ai_actions.ActionEntityKind) -> None: ...

@typing.final
class ActionInstance(winrt.system.Object):
    # Windows.Foundation.IAsyncAction Windows.AI.Actions.Hosting.ActionInstance::InvokeAsync()
    def invoke_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.AI.Actions.ActionInvocationContext Windows.AI.Actions.Hosting.ActionInstance::get_Context()
    @_property
    def context(self) -> windows_ai_actions.ActionInvocationContext: ...
    # Windows.AI.Actions.Hosting.ActionDefinition Windows.AI.Actions.Hosting.ActionInstance::get_Definition()
    @_property
    def definition(self) -> ActionDefinition: ...
    # Windows.AI.Actions.Hosting.ActionInstanceDisplayInfo Windows.AI.Actions.Hosting.ActionInstance::get_DisplayInfo()
    @_property
    def display_info(self) -> ActionInstanceDisplayInfo: ...

@typing.final
class ActionInstanceDisplayInfo(winrt.system.Object):
    # System.String Windows.AI.Actions.Hosting.ActionInstanceDisplayInfo::get_Description()
    @_property
    def description(self) -> str: ...

@typing.final
class ActionOverload(winrt.system.Object, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.AI.Actions.Hosting.ActionOverload::Close()
    def close(self) -> None: ...
    # Windows.AI.Actions.Hosting.ActionEntityRegistrationInfo[] Windows.AI.Actions.Hosting.ActionOverload::GetInputs()
    def get_inputs(self) -> winrt.system.Array[ActionEntityRegistrationInfo]: ...
    # System.Boolean Windows.AI.Actions.Hosting.ActionOverload::GetSupportsFeedback()
    def get_supports_feedback(self) -> bool: ...
    # Windows.Foundation.IAsyncAction Windows.AI.Actions.Hosting.ActionOverload::InvokeAsync(Windows.AI.Actions.ActionInvocationContext)
    def invoke_async(self, context: windows_ai_actions.ActionInvocationContext, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.AI.Actions.Hosting.ActionOverload::InvokeFeedbackAsync(Windows.AI.Actions.ActionInvocationContext,Windows.AI.Actions.ActionFeedback)
    def invoke_feedback_async(self, context: windows_ai_actions.ActionInvocationContext, feedback: windows_ai_actions.ActionFeedback, /) -> windows_foundation.IAsyncAction: ...
    # System.String Windows.AI.Actions.Hosting.ActionOverload::get_DescriptionTemplate()
    @_property
    def description_template(self) -> str: ...

