# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.1.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 winrt.windows.ui.composition as windows_ui_composition
import winrt.windows.ui.windowmanagement as windows_ui_windowmanagement
import winrt.windows.ui.xaml as windows_ui_xaml
import winrt.windows.ui.xaml.controls as windows_ui_xaml_controls
import winrt.windows.ui.xaml.controls.primitives as windows_ui_xaml_controls_primitives

from winrt.windows.ui.xaml.hosting import DesignerAppViewState, XamlSourceFocusNavigationReason

Self = typing.TypeVar('Self')

@typing.final
class DesignerAppExitedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DesignerAppExitedEventArgs: ...
    @_property
    def exit_code(self) -> winrt.system.UInt32: ...

@typing.final
class DesignerAppManager(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DesignerAppManager: ...
    def __new__(cls: typing.Type[DesignerAppManager], app_user_model_id: str) -> DesignerAppManager: ...
    def close(self) -> None: ...
    def create_new_view_async(self, initial_view_state: DesignerAppViewState, initial_view_size: windows_foundation.Size, /) -> windows_foundation.IAsyncOperation[DesignerAppView]: ...
    def load_object_into_app_async(self, dll_name: str, class_id: _uuid.UUID, initialization_data: str, /) -> windows_foundation.IAsyncAction: ...
    def add_designer_app_exited(self, handler: windows_foundation.TypedEventHandler[DesignerAppManager, DesignerAppExitedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_designer_app_exited(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def app_user_model_id(self) -> str: ...

@typing.final
class DesignerAppView(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DesignerAppView: ...
    def close(self) -> None: ...
    def update_view_async(self, view_state: DesignerAppViewState, view_size: windows_foundation.Size, /) -> windows_foundation.IAsyncAction: ...
    @_property
    def app_user_model_id(self) -> str: ...
    @_property
    def application_view_id(self) -> winrt.system.Int32: ...
    @_property
    def view_size(self) -> windows_foundation.Size: ...
    @_property
    def view_state(self) -> DesignerAppViewState: ...

@typing.final
class DesktopWindowXamlSource(winrt.system.Object):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DesktopWindowXamlSource: ...
    def __new__(cls: typing.Type[DesktopWindowXamlSource]) -> DesktopWindowXamlSource: ...
    def close(self) -> None: ...
    def navigate_focus(self, request: typing.Optional[XamlSourceFocusNavigationRequest], /) -> typing.Optional[XamlSourceFocusNavigationResult]: ...
    def add_got_focus(self, handler: windows_foundation.TypedEventHandler[DesktopWindowXamlSource, DesktopWindowXamlSourceGotFocusEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_got_focus(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    def add_take_focus_requested(self, handler: windows_foundation.TypedEventHandler[DesktopWindowXamlSource, DesktopWindowXamlSourceTakeFocusRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_take_focus_requested(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def content(self) -> typing.Optional[windows_ui_xaml.UIElement]: ...
    @content.setter
    def content(self, value: typing.Optional[windows_ui_xaml.UIElement]) -> None: ...
    @_property
    def has_focus(self) -> bool: ...

@typing.final
class DesktopWindowXamlSourceGotFocusEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DesktopWindowXamlSourceGotFocusEventArgs: ...
    @_property
    def request(self) -> typing.Optional[XamlSourceFocusNavigationRequest]: ...

@typing.final
class DesktopWindowXamlSourceTakeFocusRequestedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> DesktopWindowXamlSourceTakeFocusRequestedEventArgs: ...
    @_property
    def request(self) -> typing.Optional[XamlSourceFocusNavigationRequest]: ...

@typing.final
class ElementCompositionPreview_Static(type):
    def get_app_window_content(cls, app_window: typing.Optional[windows_ui_windowmanagement.AppWindow], /) -> typing.Optional[windows_ui_xaml.UIElement]: ...
    def get_element_child_visual(cls, element: typing.Optional[windows_ui_xaml.UIElement], /) -> typing.Optional[windows_ui_composition.Visual]: ...
    def get_element_visual(cls, element: typing.Optional[windows_ui_xaml.UIElement], /) -> typing.Optional[windows_ui_composition.Visual]: ...
    def get_pointer_position_property_set(cls, target_element: typing.Optional[windows_ui_xaml.UIElement], /) -> typing.Optional[windows_ui_composition.CompositionPropertySet]: ...
    def get_scroll_viewer_manipulation_property_set(cls, scroll_viewer: typing.Optional[windows_ui_xaml_controls.ScrollViewer], /) -> typing.Optional[windows_ui_composition.CompositionPropertySet]: ...
    def set_app_window_content(cls, app_window: typing.Optional[windows_ui_windowmanagement.AppWindow], xaml_content: typing.Optional[windows_ui_xaml.UIElement], /) -> None: ...
    def set_element_child_visual(cls, element: typing.Optional[windows_ui_xaml.UIElement], visual: typing.Optional[windows_ui_composition.Visual], /) -> None: ...
    def set_implicit_hide_animation(cls, element: typing.Optional[windows_ui_xaml.UIElement], animation: typing.Optional[windows_ui_composition.ICompositionAnimationBase], /) -> None: ...
    def set_implicit_show_animation(cls, element: typing.Optional[windows_ui_xaml.UIElement], animation: typing.Optional[windows_ui_composition.ICompositionAnimationBase], /) -> None: ...
    def set_is_translation_enabled(cls, element: typing.Optional[windows_ui_xaml.UIElement], value: bool, /) -> None: ...

@typing.final
class ElementCompositionPreview(winrt.system.Object, metaclass=ElementCompositionPreview_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ElementCompositionPreview: ...

@typing.final
class WindowsXamlManager_Static(type):
    def initialize_for_current_thread(cls) -> typing.Optional[WindowsXamlManager]: ...

@typing.final
class WindowsXamlManager(winrt.system.Object, metaclass=WindowsXamlManager_Static):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, *args) -> None: ...
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> WindowsXamlManager: ...
    def close(self) -> None: ...

@typing.final
class XamlSourceFocusNavigationRequest(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> XamlSourceFocusNavigationRequest: ...
    @typing.overload
    def __new__(cls: typing.Type[XamlSourceFocusNavigationRequest], reason: XamlSourceFocusNavigationReason) -> XamlSourceFocusNavigationRequest: ...
    @typing.overload
    def __new__(cls: typing.Type[XamlSourceFocusNavigationRequest], reason: XamlSourceFocusNavigationReason, hint_rect: windows_foundation.Rect) -> XamlSourceFocusNavigationRequest: ...
    @typing.overload
    def __new__(cls: typing.Type[XamlSourceFocusNavigationRequest], reason: XamlSourceFocusNavigationReason, hint_rect: windows_foundation.Rect, correlation_id: _uuid.UUID) -> XamlSourceFocusNavigationRequest: ...
    @_property
    def correlation_id(self) -> _uuid.UUID: ...
    @_property
    def hint_rect(self) -> windows_foundation.Rect: ...
    @_property
    def reason(self) -> XamlSourceFocusNavigationReason: ...

@typing.final
class XamlSourceFocusNavigationResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> XamlSourceFocusNavigationResult: ...
    def __new__(cls: typing.Type[XamlSourceFocusNavigationResult], focus_moved: bool) -> XamlSourceFocusNavigationResult: ...
    @_property
    def was_focus_moved(self) -> bool: ...

@typing.final
class XamlUIPresenter_Static(type):
    def get_flyout_placement(cls, placement_target_bounds: windows_foundation.Rect, control_size: windows_foundation.Size, min_control_size: windows_foundation.Size, container_rect: windows_foundation.Rect, target_preferred_placement: windows_ui_xaml_controls_primitives.FlyoutPlacementMode, allow_fallbacks: bool, /) -> typing.Tuple[windows_foundation.Rect, windows_ui_xaml_controls_primitives.FlyoutPlacementMode]: ...
    def get_flyout_placement_target_info(cls, placement_target: typing.Optional[windows_ui_xaml.FrameworkElement], preferred_placement: windows_ui_xaml_controls_primitives.FlyoutPlacementMode, /) -> typing.Tuple[windows_foundation.Rect, windows_ui_xaml_controls_primitives.FlyoutPlacementMode, bool]: ...
    def notify_window_size_changed(cls) -> None: ...
    def set_host(cls, host: typing.Optional[IXamlUIPresenterHost], /) -> None: ...
    @_property
    def complete_timelines_automatically(cls) -> bool: ...
    @complete_timelines_automatically.setter
    def complete_timelines_automatically(cls, value: bool) -> None: ...

@typing.final
class XamlUIPresenter(winrt.system.Object, metaclass=XamlUIPresenter_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> XamlUIPresenter: ...
    def present(self) -> None: ...
    def render(self) -> None: ...
    def set_size(self, width: winrt.system.Int32, height: winrt.system.Int32, /) -> None: ...
    @_property
    def theme_resources_xaml(self) -> str: ...
    @theme_resources_xaml.setter
    def theme_resources_xaml(self, value: str) -> None: ...
    @_property
    def theme_key(self) -> str: ...
    @theme_key.setter
    def theme_key(self, value: str) -> None: ...
    @_property
    def root_element(self) -> typing.Optional[windows_ui_xaml.UIElement]: ...
    @root_element.setter
    def root_element(self, value: typing.Optional[windows_ui_xaml.UIElement]) -> None: ...

@typing.final
class IXamlUIPresenterHost(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IXamlUIPresenterHost: ...
    def resolve_file_resource(self, path: str, /) -> str: ...

@typing.final
class IXamlUIPresenterHost2(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IXamlUIPresenterHost2: ...
    def get_generic_xaml_file_path(self) -> str: ...

@typing.final
class IXamlUIPresenterHost3(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IXamlUIPresenterHost3: ...
    def resolve_dictionary_resource(self, dictionary: typing.Optional[windows_ui_xaml.ResourceDictionary], dictionary_key: typing.Optional[winrt.system.Object], suggested_value: typing.Optional[winrt.system.Object], /) -> typing.Optional[winrt.system.Object]: ...

