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

import enum
import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.ui

class CoreInputViewKind(enum.IntEnum):
    DEFAULT = 0
    KEYBOARD = 1
    HANDWRITING = 2
    EMOJI = 3
    SYMBOLS = 4
    CLIPBOARD = 5
    DICTATION = 6

class CoreInputViewOcclusionKind(enum.IntEnum):
    DOCKED = 0
    FLOATING = 1
    OVERLAY = 2

class CoreInputViewXYFocusTransferDirection(enum.IntEnum):
    UP = 0
    RIGHT = 1
    DOWN = 2
    LEFT = 3

Self = typing.TypeVar('Self')

class CoreFrameworkInputView(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreFrameworkInputView: ...
    @staticmethod
    def get_for_current_view() -> typing.Optional[CoreFrameworkInputView]: ...
    @staticmethod
    def get_for_u_i_context(context: typing.Optional[winsdk.windows.ui.UIContext]) -> typing.Optional[CoreFrameworkInputView]: ...
    def add_occlusions_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[CoreFrameworkInputView, CoreFrameworkInputViewOcclusionsChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_occlusions_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_primary_view_animation_starting(self, handler: winsdk.windows.foundation.TypedEventHandler[CoreFrameworkInputView, CoreFrameworkInputViewAnimationStartingEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_primary_view_animation_starting(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class CoreFrameworkInputViewAnimationStartingEventArgs(winsdk.system.Object):
    animation_duration: datetime.timedelta
    framework_animation_recommended: winsdk.system.Boolean
    occlusions: typing.Optional[winsdk.windows.foundation.collections.IVectorView[CoreInputViewOcclusion]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreFrameworkInputViewAnimationStartingEventArgs: ...

class CoreFrameworkInputViewOcclusionsChangedEventArgs(winsdk.system.Object):
    handled: winsdk.system.Boolean
    occlusions: typing.Optional[winsdk.windows.foundation.collections.IVectorView[CoreInputViewOcclusion]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreFrameworkInputViewOcclusionsChangedEventArgs: ...

class CoreInputView(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreInputView: ...
    def get_core_input_view_occlusions(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[CoreInputViewOcclusion]]: ...
    @staticmethod
    def get_for_current_view() -> typing.Optional[CoreInputView]: ...
    @staticmethod
    def get_for_u_i_context(context: typing.Optional[winsdk.windows.ui.UIContext]) -> typing.Optional[CoreInputView]: ...
    def is_kind_supported(self, type: CoreInputViewKind) -> winsdk.system.Boolean: ...
    def try_hide(self) -> winsdk.system.Boolean: ...
    def try_hide_primary_view(self) -> winsdk.system.Boolean: ...
    @typing.overload
    def try_show(self) -> winsdk.system.Boolean: ...
    @typing.overload
    def try_show(self, type: CoreInputViewKind) -> winsdk.system.Boolean: ...
    def try_show_primary_view(self) -> winsdk.system.Boolean: ...
    def try_transfer_x_y_focus_to_primary_view(self, origin: winsdk.windows.foundation.Rect, direction: CoreInputViewXYFocusTransferDirection) -> winsdk.system.Boolean: ...
    def add_occlusions_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[CoreInputView, CoreInputViewOcclusionsChangedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_occlusions_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_x_y_focus_transferred_to_primary_view(self, handler: winsdk.windows.foundation.TypedEventHandler[CoreInputView, winsdk.system.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_x_y_focus_transferred_to_primary_view(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_x_y_focus_transferring_from_primary_view(self, handler: winsdk.windows.foundation.TypedEventHandler[CoreInputView, CoreInputViewTransferringXYFocusEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_x_y_focus_transferring_from_primary_view(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_primary_view_hiding(self, handler: winsdk.windows.foundation.TypedEventHandler[CoreInputView, CoreInputViewHidingEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_primary_view_hiding(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_primary_view_showing(self, handler: winsdk.windows.foundation.TypedEventHandler[CoreInputView, CoreInputViewShowingEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_primary_view_showing(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_primary_view_animation_starting(self, handler: winsdk.windows.foundation.TypedEventHandler[CoreInputView, CoreInputViewAnimationStartingEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_primary_view_animation_starting(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    def add_supported_kinds_changed(self, handler: winsdk.windows.foundation.TypedEventHandler[CoreInputView, winsdk.system.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_supported_kinds_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class CoreInputViewAnimationStartingEventArgs(winsdk.system.Object):
    handled: winsdk.system.Boolean
    animation_duration: datetime.timedelta
    occlusions: typing.Optional[winsdk.windows.foundation.collections.IVectorView[CoreInputViewOcclusion]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreInputViewAnimationStartingEventArgs: ...

class CoreInputViewHidingEventArgs(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreInputViewHidingEventArgs: ...
    def try_cancel(self) -> winsdk.system.Boolean: ...

class CoreInputViewOcclusion(winsdk.system.Object):
    occluding_rect: winsdk.windows.foundation.Rect
    occlusion_kind: CoreInputViewOcclusionKind
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreInputViewOcclusion: ...

class CoreInputViewOcclusionsChangedEventArgs(winsdk.system.Object):
    handled: winsdk.system.Boolean
    occlusions: typing.Optional[winsdk.windows.foundation.collections.IVectorView[CoreInputViewOcclusion]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreInputViewOcclusionsChangedEventArgs: ...

class CoreInputViewShowingEventArgs(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreInputViewShowingEventArgs: ...
    def try_cancel(self) -> winsdk.system.Boolean: ...

class CoreInputViewTransferringXYFocusEventArgs(winsdk.system.Object):
    transfer_handled: winsdk.system.Boolean
    keep_primary_view_visible: winsdk.system.Boolean
    direction: CoreInputViewXYFocusTransferDirection
    origin: winsdk.windows.foundation.Rect
    @staticmethod
    def _from(obj: winsdk.system.Object) -> CoreInputViewTransferringXYFocusEventArgs: ...

class UISettingsController(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object) -> UISettingsController: ...
    @staticmethod
    def request_default_async() -> winsdk.windows.foundation.IAsyncOperation[UISettingsController]: ...
    def set_advanced_effects_enabled(self, value: winsdk.system.Boolean) -> None: ...
    def set_animations_enabled(self, value: winsdk.system.Boolean) -> None: ...
    def set_auto_hide_scroll_bars(self, value: winsdk.system.Boolean) -> None: ...
    def set_message_duration(self, value: winsdk.system.UInt32) -> None: ...
    def set_text_scale_factor(self, value: winsdk.system.Double) -> None: ...

