# 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

import winrt._winrt
import winrt.system
import winrt.windows.foundation as windows_foundation
import winui3.microsoft.ui as microsoft_ui
import winui3.microsoft.ui.composition as microsoft_ui_composition
import winui3.microsoft.ui.content as microsoft_ui_content
import winui3.microsoft.ui.xaml as microsoft_ui_xaml
import winui3.microsoft.ui.xaml.controls as microsoft_ui_xaml_controls
import winui3.microsoft.ui.xaml.media as microsoft_ui_xaml_media

from winui3.microsoft.ui.xaml.hosting import XamlSourceFocusNavigationReason

Self = typing.TypeVar('Self')

class DesktopWindowXamlSource_Static(winrt._winrt.IInspectable_Static):
    pass

class DesktopWindowXamlSource(winrt.system.Object, windows_foundation.IClosable, metaclass=DesktopWindowXamlSource_Static):
    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: ...
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Void Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::Close()
    def close(self) -> None: ...
    @typing.final
    # System.Void Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::Initialize(Microsoft.UI.WindowId)
    def initialize(self, parent_window_id: typing.Union[microsoft_ui.WindowId, typing.Tuple[winrt.system.UInt64]], /) -> None: ...
    @typing.final
    # Microsoft.UI.Xaml.Hosting.XamlSourceFocusNavigationResult Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::NavigateFocus(Microsoft.UI.Xaml.Hosting.XamlSourceFocusNavigationRequest)
    def navigate_focus(self, request: XamlSourceFocusNavigationRequest, /) -> XamlSourceFocusNavigationResult: ...
    @typing.final
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::add_GotFocus(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource,Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSourceGotFocusEventArgs>)
    def add_got_focus(self, handler: windows_foundation.TypedEventHandler[DesktopWindowXamlSource, DesktopWindowXamlSourceGotFocusEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    @typing.final
    # System.Void Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::remove_GotFocus(Windows.Foundation.EventRegistrationToken)
    def remove_got_focus(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    @typing.final
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::add_TakeFocusRequested(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource,Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSourceTakeFocusRequestedEventArgs>)
    def add_take_focus_requested(self, handler: windows_foundation.TypedEventHandler[DesktopWindowXamlSource, DesktopWindowXamlSourceTakeFocusRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    @typing.final
    # System.Void Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::remove_TakeFocusRequested(Windows.Foundation.EventRegistrationToken)
    def remove_take_focus_requested(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Microsoft.UI.Xaml.Media.SystemBackdrop Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::get_SystemBackdrop()
    @_property
    def system_backdrop(self) -> microsoft_ui_xaml_media.SystemBackdrop: ...
    # System.Void Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::put_SystemBackdrop(Microsoft.UI.Xaml.Media.SystemBackdrop)
    @system_backdrop.setter
    @typing.final
    def system_backdrop(self, value: microsoft_ui_xaml_media.SystemBackdrop) -> None: ...
    # Microsoft.UI.Xaml.UIElement Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::get_Content()
    @_property
    def content(self) -> microsoft_ui_xaml.UIElement: ...
    # System.Void Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::put_Content(Microsoft.UI.Xaml.UIElement)
    @content.setter
    @typing.final
    def content(self, value: microsoft_ui_xaml.UIElement) -> None: ...
    # System.Boolean Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::get_HasFocus()
    @_property
    @typing.final
    def has_focus(self) -> bool: ...
    # Microsoft.UI.Content.DesktopChildSiteBridge Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::get_SiteBridge()
    @_property
    @typing.final
    def site_bridge(self) -> microsoft_ui_content.DesktopChildSiteBridge: ...
    # System.Boolean Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::get_ShouldConstrainPopupsToWorkArea()
    @_property
    def should_constrain_popups_to_work_area(self) -> bool: ...
    # System.Void Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSource::put_ShouldConstrainPopupsToWorkArea(System.Boolean)
    @should_constrain_popups_to_work_area.setter
    @typing.final
    def should_constrain_popups_to_work_area(self, value: bool) -> None: ...

@typing.final
class DesktopWindowXamlSourceGotFocusEventArgs(winrt.system.Object):
    # Microsoft.UI.Xaml.Hosting.XamlSourceFocusNavigationRequest Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSourceGotFocusEventArgs::get_Request()
    @_property
    def request(self) -> XamlSourceFocusNavigationRequest: ...

@typing.final
class DesktopWindowXamlSourceTakeFocusRequestedEventArgs(winrt.system.Object):
    # Microsoft.UI.Xaml.Hosting.XamlSourceFocusNavigationRequest Microsoft.UI.Xaml.Hosting.DesktopWindowXamlSourceTakeFocusRequestedEventArgs::get_Request()
    @_property
    def request(self) -> XamlSourceFocusNavigationRequest: ...

@typing.final
class ElementCompositionPreview_Static(winrt._winrt.IInspectable_Static):
    # Microsoft.UI.Composition.Visual Microsoft.UI.Xaml.Hosting.ElementCompositionPreview::GetElementChildVisual(Microsoft.UI.Xaml.UIElement)
    def get_element_child_visual(cls, element: microsoft_ui_xaml.UIElement, /) -> microsoft_ui_composition.Visual: ...
    # Microsoft.UI.Composition.Visual Microsoft.UI.Xaml.Hosting.ElementCompositionPreview::GetElementVisual(Microsoft.UI.Xaml.UIElement)
    def get_element_visual(cls, element: microsoft_ui_xaml.UIElement, /) -> microsoft_ui_composition.Visual: ...
    # Microsoft.UI.Composition.CompositionPropertySet Microsoft.UI.Xaml.Hosting.ElementCompositionPreview::GetPointerPositionPropertySet(Microsoft.UI.Xaml.UIElement)
    def get_pointer_position_property_set(cls, target_element: microsoft_ui_xaml.UIElement, /) -> microsoft_ui_composition.CompositionPropertySet: ...
    # Microsoft.UI.Composition.CompositionPropertySet Microsoft.UI.Xaml.Hosting.ElementCompositionPreview::GetScrollViewerManipulationPropertySet(Microsoft.UI.Xaml.Controls.ScrollViewer)
    def get_scroll_viewer_manipulation_property_set(cls, scroll_viewer: microsoft_ui_xaml_controls.ScrollViewer, /) -> microsoft_ui_composition.CompositionPropertySet: ...
    # System.Void Microsoft.UI.Xaml.Hosting.ElementCompositionPreview::SetElementChildVisual(Microsoft.UI.Xaml.UIElement,Microsoft.UI.Composition.Visual)
    def set_element_child_visual(cls, element: microsoft_ui_xaml.UIElement, visual: microsoft_ui_composition.Visual, /) -> None: ...
    # System.Void Microsoft.UI.Xaml.Hosting.ElementCompositionPreview::SetImplicitHideAnimation(Microsoft.UI.Xaml.UIElement,Microsoft.UI.Composition.ICompositionAnimationBase)
    def set_implicit_hide_animation(cls, element: microsoft_ui_xaml.UIElement, animation: microsoft_ui_composition.ICompositionAnimationBase, /) -> None: ...
    # System.Void Microsoft.UI.Xaml.Hosting.ElementCompositionPreview::SetImplicitShowAnimation(Microsoft.UI.Xaml.UIElement,Microsoft.UI.Composition.ICompositionAnimationBase)
    def set_implicit_show_animation(cls, element: microsoft_ui_xaml.UIElement, animation: microsoft_ui_composition.ICompositionAnimationBase, /) -> None: ...
    # System.Void Microsoft.UI.Xaml.Hosting.ElementCompositionPreview::SetIsTranslationEnabled(Microsoft.UI.Xaml.UIElement,System.Boolean)
    def set_is_translation_enabled(cls, element: microsoft_ui_xaml.UIElement, value: bool, /) -> None: ...

@typing.final
class ElementCompositionPreview(winrt.system.Object, metaclass=ElementCompositionPreview_Static):
    pass

@typing.final
class WindowsXamlManager_Static(winrt._winrt.IInspectable_Static):
    # Microsoft.UI.Xaml.Hosting.WindowsXamlManager Microsoft.UI.Xaml.Hosting.WindowsXamlManager::GetForCurrentThread()
    def get_for_current_thread(cls) -> WindowsXamlManager: ...
    # Microsoft.UI.Xaml.Hosting.WindowsXamlManager Microsoft.UI.Xaml.Hosting.WindowsXamlManager::InitializeForCurrentThread()
    def initialize_for_current_thread(cls) -> WindowsXamlManager: ...

@typing.final
class WindowsXamlManager(winrt.system.Object, windows_foundation.IClosable, metaclass=WindowsXamlManager_Static):
    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 Microsoft.UI.Xaml.Hosting.WindowsXamlManager::Close()
    def close(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Xaml.Hosting.WindowsXamlManager::add_XamlShutdownCompletedOnThread(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Xaml.Hosting.WindowsXamlManager,Microsoft.UI.Xaml.Hosting.XamlShutdownCompletedOnThreadEventArgs>)
    def add_xaml_shutdown_completed_on_thread(self, handler: windows_foundation.TypedEventHandler[WindowsXamlManager, XamlShutdownCompletedOnThreadEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.UI.Xaml.Hosting.WindowsXamlManager::remove_XamlShutdownCompletedOnThread(Windows.Foundation.EventRegistrationToken)
    def remove_xaml_shutdown_completed_on_thread(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

@typing.final
class XamlShutdownCompletedOnThreadEventArgs(winrt.system.Object):
    # Windows.Foundation.Deferral Microsoft.UI.Xaml.Hosting.XamlShutdownCompletedOnThreadEventArgs::GetDispatcherQueueDeferral()
    def get_dispatcher_queue_deferral(self) -> windows_foundation.Deferral: ...

@typing.final
class XamlSourceFocusNavigationRequest(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self], reason: XamlSourceFocusNavigationReason) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], reason: XamlSourceFocusNavigationReason, hint_rect: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]]) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], reason: XamlSourceFocusNavigationReason, hint_rect: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]], correlation_id: _uuid.UUID) -> Self: ...
    # System.Guid Microsoft.UI.Xaml.Hosting.XamlSourceFocusNavigationRequest::get_CorrelationId()
    @_property
    def correlation_id(self) -> _uuid.UUID: ...
    # Windows.Foundation.Rect Microsoft.UI.Xaml.Hosting.XamlSourceFocusNavigationRequest::get_HintRect()
    @_property
    def hint_rect(self) -> windows_foundation.Rect: ...
    # Microsoft.UI.Xaml.Hosting.XamlSourceFocusNavigationReason Microsoft.UI.Xaml.Hosting.XamlSourceFocusNavigationRequest::get_Reason()
    @_property
    def reason(self) -> XamlSourceFocusNavigationReason: ...

@typing.final
class XamlSourceFocusNavigationResult(winrt.system.Object):
    def __new__(cls: typing.Type[Self], focus_moved: bool) -> Self: ...
    # System.Boolean Microsoft.UI.Xaml.Hosting.XamlSourceFocusNavigationResult::get_WasFocusMoved()
    @_property
    def was_focus_moved(self) -> bool: ...

