# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.1.0

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property
from abc import abstractmethod

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):
    # System.UInt32 Windows.UI.Xaml.Hosting.DesignerAppExitedEventArgs::get_ExitCode()
    @_property
    def exit_code(self) -> winrt.system.UInt32: ...

@typing.final
class DesignerAppManager(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: ...
    def __new__(cls: typing.Type[Self], app_user_model_id: str) -> Self: ...
    # System.Void Windows.UI.Xaml.Hosting.DesignerAppManager::Close()
    def close(self) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.UI.Xaml.Hosting.DesignerAppView> Windows.UI.Xaml.Hosting.DesignerAppManager::CreateNewViewAsync(Windows.UI.Xaml.Hosting.DesignerAppViewState,Windows.Foundation.Size)
    def create_new_view_async(self, initial_view_state: DesignerAppViewState, initial_view_size: typing.Union[windows_foundation.Size, typing.Tuple[winrt.system.Single, winrt.system.Single]], /) -> windows_foundation.IAsyncOperation[DesignerAppView]: ...
    # Windows.Foundation.IAsyncAction Windows.UI.Xaml.Hosting.DesignerAppManager::LoadObjectIntoAppAsync(System.String,System.Guid,System.String)
    def load_object_into_app_async(self, dll_name: str, class_id: _uuid.UUID, initialization_data: str, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.EventRegistrationToken Windows.UI.Xaml.Hosting.DesignerAppManager::add_DesignerAppExited(Windows.Foundation.TypedEventHandler`2<Windows.UI.Xaml.Hosting.DesignerAppManager,Windows.UI.Xaml.Hosting.DesignerAppExitedEventArgs>)
    def add_designer_app_exited(self, handler: windows_foundation.TypedEventHandler[DesignerAppManager, DesignerAppExitedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.UI.Xaml.Hosting.DesignerAppManager::remove_DesignerAppExited(Windows.Foundation.EventRegistrationToken)
    def remove_designer_app_exited(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Windows.UI.Xaml.Hosting.DesignerAppManager::get_AppUserModelId()
    @_property
    def app_user_model_id(self) -> str: ...

@typing.final
class DesignerAppView(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.UI.Xaml.Hosting.DesignerAppView::Close()
    def close(self) -> None: ...
    # Windows.Foundation.IAsyncAction Windows.UI.Xaml.Hosting.DesignerAppView::UpdateViewAsync(Windows.UI.Xaml.Hosting.DesignerAppViewState,Windows.Foundation.Size)
    def update_view_async(self, view_state: DesignerAppViewState, view_size: typing.Union[windows_foundation.Size, typing.Tuple[winrt.system.Single, winrt.system.Single]], /) -> windows_foundation.IAsyncAction: ...
    # System.String Windows.UI.Xaml.Hosting.DesignerAppView::get_AppUserModelId()
    @_property
    def app_user_model_id(self) -> str: ...
    # System.Int32 Windows.UI.Xaml.Hosting.DesignerAppView::get_ApplicationViewId()
    @_property
    def application_view_id(self) -> winrt.system.Int32: ...
    # Windows.Foundation.Size Windows.UI.Xaml.Hosting.DesignerAppView::get_ViewSize()
    @_property
    def view_size(self) -> windows_foundation.Size: ...
    # Windows.UI.Xaml.Hosting.DesignerAppViewState Windows.UI.Xaml.Hosting.DesignerAppView::get_ViewState()
    @_property
    def view_state(self) -> DesignerAppViewState: ...

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 Windows.UI.Xaml.Hosting.DesktopWindowXamlSource::Close()
    def close(self) -> None: ...
    @typing.final
    # Windows.UI.Xaml.Hosting.XamlSourceFocusNavigationResult Windows.UI.Xaml.Hosting.DesktopWindowXamlSource::NavigateFocus(Windows.UI.Xaml.Hosting.XamlSourceFocusNavigationRequest)
    def navigate_focus(self, request: XamlSourceFocusNavigationRequest, /) -> XamlSourceFocusNavigationResult: ...
    @typing.final
    # Windows.Foundation.EventRegistrationToken Windows.UI.Xaml.Hosting.DesktopWindowXamlSource::add_GotFocus(Windows.Foundation.TypedEventHandler`2<Windows.UI.Xaml.Hosting.DesktopWindowXamlSource,Windows.UI.Xaml.Hosting.DesktopWindowXamlSourceGotFocusEventArgs>)
    def add_got_focus(self, handler: windows_foundation.TypedEventHandler[DesktopWindowXamlSource, DesktopWindowXamlSourceGotFocusEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    @typing.final
    # System.Void Windows.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 Windows.UI.Xaml.Hosting.DesktopWindowXamlSource::add_TakeFocusRequested(Windows.Foundation.TypedEventHandler`2<Windows.UI.Xaml.Hosting.DesktopWindowXamlSource,Windows.UI.Xaml.Hosting.DesktopWindowXamlSourceTakeFocusRequestedEventArgs>)
    def add_take_focus_requested(self, handler: windows_foundation.TypedEventHandler[DesktopWindowXamlSource, DesktopWindowXamlSourceTakeFocusRequestedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    @typing.final
    # System.Void Windows.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: ...
    # Windows.UI.Xaml.UIElement Windows.UI.Xaml.Hosting.DesktopWindowXamlSource::get_Content()
    @_property
    def content(self) -> windows_ui_xaml.UIElement: ...
    # System.Void Windows.UI.Xaml.Hosting.DesktopWindowXamlSource::put_Content(Windows.UI.Xaml.UIElement)
    @content.setter
    @typing.final
    def content(self, value: windows_ui_xaml.UIElement) -> None: ...
    # System.Boolean Windows.UI.Xaml.Hosting.DesktopWindowXamlSource::get_HasFocus()
    @_property
    @typing.final
    def has_focus(self) -> bool: ...

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

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

@typing.final
class ElementCompositionPreview_Static(winrt._winrt.IInspectable_Static):
    # Windows.UI.Xaml.UIElement Windows.UI.Xaml.Hosting.ElementCompositionPreview::GetAppWindowContent(Windows.UI.WindowManagement.AppWindow)
    def get_app_window_content(cls, app_window: windows_ui_windowmanagement.AppWindow, /) -> windows_ui_xaml.UIElement: ...
    # Windows.UI.Composition.Visual Windows.UI.Xaml.Hosting.ElementCompositionPreview::GetElementChildVisual(Windows.UI.Xaml.UIElement)
    def get_element_child_visual(cls, element: windows_ui_xaml.UIElement, /) -> windows_ui_composition.Visual: ...
    # Windows.UI.Composition.Visual Windows.UI.Xaml.Hosting.ElementCompositionPreview::GetElementVisual(Windows.UI.Xaml.UIElement)
    def get_element_visual(cls, element: windows_ui_xaml.UIElement, /) -> windows_ui_composition.Visual: ...
    # Windows.UI.Composition.CompositionPropertySet Windows.UI.Xaml.Hosting.ElementCompositionPreview::GetPointerPositionPropertySet(Windows.UI.Xaml.UIElement)
    def get_pointer_position_property_set(cls, target_element: windows_ui_xaml.UIElement, /) -> windows_ui_composition.CompositionPropertySet: ...
    # Windows.UI.Composition.CompositionPropertySet Windows.UI.Xaml.Hosting.ElementCompositionPreview::GetScrollViewerManipulationPropertySet(Windows.UI.Xaml.Controls.ScrollViewer)
    def get_scroll_viewer_manipulation_property_set(cls, scroll_viewer: windows_ui_xaml_controls.ScrollViewer, /) -> windows_ui_composition.CompositionPropertySet: ...
    # System.Void Windows.UI.Xaml.Hosting.ElementCompositionPreview::SetAppWindowContent(Windows.UI.WindowManagement.AppWindow,Windows.UI.Xaml.UIElement)
    def set_app_window_content(cls, app_window: windows_ui_windowmanagement.AppWindow, xaml_content: windows_ui_xaml.UIElement, /) -> None: ...
    # System.Void Windows.UI.Xaml.Hosting.ElementCompositionPreview::SetElementChildVisual(Windows.UI.Xaml.UIElement,Windows.UI.Composition.Visual)
    def set_element_child_visual(cls, element: windows_ui_xaml.UIElement, visual: windows_ui_composition.Visual, /) -> None: ...
    # System.Void Windows.UI.Xaml.Hosting.ElementCompositionPreview::SetImplicitHideAnimation(Windows.UI.Xaml.UIElement,Windows.UI.Composition.ICompositionAnimationBase)
    def set_implicit_hide_animation(cls, element: windows_ui_xaml.UIElement, animation: windows_ui_composition.ICompositionAnimationBase, /) -> None: ...
    # System.Void Windows.UI.Xaml.Hosting.ElementCompositionPreview::SetImplicitShowAnimation(Windows.UI.Xaml.UIElement,Windows.UI.Composition.ICompositionAnimationBase)
    def set_implicit_show_animation(cls, element: windows_ui_xaml.UIElement, animation: windows_ui_composition.ICompositionAnimationBase, /) -> None: ...
    # System.Void Windows.UI.Xaml.Hosting.ElementCompositionPreview::SetIsTranslationEnabled(Windows.UI.Xaml.UIElement,System.Boolean)
    def set_is_translation_enabled(cls, element: windows_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):
    # Windows.UI.Xaml.Hosting.WindowsXamlManager Windows.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 Windows.UI.Xaml.Hosting.WindowsXamlManager::Close()
    def close(self) -> None: ...

@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 Windows.UI.Xaml.Hosting.XamlSourceFocusNavigationRequest::get_CorrelationId()
    @_property
    def correlation_id(self) -> _uuid.UUID: ...
    # Windows.Foundation.Rect Windows.UI.Xaml.Hosting.XamlSourceFocusNavigationRequest::get_HintRect()
    @_property
    def hint_rect(self) -> windows_foundation.Rect: ...
    # Windows.UI.Xaml.Hosting.XamlSourceFocusNavigationReason Windows.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 Windows.UI.Xaml.Hosting.XamlSourceFocusNavigationResult::get_WasFocusMoved()
    @_property
    def was_focus_moved(self) -> bool: ...

@typing.final
class XamlUIPresenter_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.Rect Windows.UI.Xaml.Hosting.XamlUIPresenter::GetFlyoutPlacement(Windows.Foundation.Rect,Windows.Foundation.Size,Windows.Foundation.Size,Windows.Foundation.Rect,Windows.UI.Xaml.Controls.Primitives.FlyoutPlacementMode,System.Boolean,Windows.UI.Xaml.Controls.Primitives.FlyoutPlacementMode&)
    def get_flyout_placement(cls, placement_target_bounds: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]], control_size: typing.Union[windows_foundation.Size, typing.Tuple[winrt.system.Single, winrt.system.Single]], min_control_size: typing.Union[windows_foundation.Size, typing.Tuple[winrt.system.Single, winrt.system.Single]], container_rect: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]], target_preferred_placement: windows_ui_xaml_controls_primitives.FlyoutPlacementMode, allow_fallbacks: bool, /) -> typing.Tuple[windows_foundation.Rect, windows_ui_xaml_controls_primitives.FlyoutPlacementMode]: ...
    # Windows.Foundation.Rect Windows.UI.Xaml.Hosting.XamlUIPresenter::GetFlyoutPlacementTargetInfo(Windows.UI.Xaml.FrameworkElement,Windows.UI.Xaml.Controls.Primitives.FlyoutPlacementMode,Windows.UI.Xaml.Controls.Primitives.FlyoutPlacementMode&,System.Boolean&)
    def get_flyout_placement_target_info(cls, placement_target: windows_ui_xaml.FrameworkElement, preferred_placement: windows_ui_xaml_controls_primitives.FlyoutPlacementMode, /) -> typing.Tuple[windows_foundation.Rect, windows_ui_xaml_controls_primitives.FlyoutPlacementMode, bool]: ...
    # System.Void Windows.UI.Xaml.Hosting.XamlUIPresenter::NotifyWindowSizeChanged()
    def notify_window_size_changed(cls) -> None: ...
    # System.Void Windows.UI.Xaml.Hosting.XamlUIPresenter::SetHost(Windows.UI.Xaml.Hosting.IXamlUIPresenterHost)
    def set_host(cls, host: IXamlUIPresenterHost, /) -> None: ...
    # System.Boolean Windows.UI.Xaml.Hosting.XamlUIPresenter::get_CompleteTimelinesAutomatically()
    @_property
    def complete_timelines_automatically(cls) -> bool: ...
    # System.Void Windows.UI.Xaml.Hosting.XamlUIPresenter::put_CompleteTimelinesAutomatically(System.Boolean)
    @complete_timelines_automatically.setter
    def complete_timelines_automatically(cls, value: bool) -> None: ...

@typing.final
class XamlUIPresenter(winrt.system.Object, metaclass=XamlUIPresenter_Static):
    # System.Void Windows.UI.Xaml.Hosting.XamlUIPresenter::Present()
    def present(self) -> None: ...
    # System.Void Windows.UI.Xaml.Hosting.XamlUIPresenter::Render()
    def render(self) -> None: ...
    # System.Void Windows.UI.Xaml.Hosting.XamlUIPresenter::SetSize(System.Int32,System.Int32)
    def set_size(self, width: winrt.system.Int32, height: winrt.system.Int32, /) -> None: ...
    # System.String Windows.UI.Xaml.Hosting.XamlUIPresenter::get_ThemeResourcesXaml()
    @_property
    def theme_resources_xaml(self) -> str: ...
    # System.Void Windows.UI.Xaml.Hosting.XamlUIPresenter::put_ThemeResourcesXaml(System.String)
    @theme_resources_xaml.setter
    def theme_resources_xaml(self, value: str) -> None: ...
    # System.String Windows.UI.Xaml.Hosting.XamlUIPresenter::get_ThemeKey()
    @_property
    def theme_key(self) -> str: ...
    # System.Void Windows.UI.Xaml.Hosting.XamlUIPresenter::put_ThemeKey(System.String)
    @theme_key.setter
    def theme_key(self, value: str) -> None: ...
    # Windows.UI.Xaml.UIElement Windows.UI.Xaml.Hosting.XamlUIPresenter::get_RootElement()
    @_property
    def root_element(self) -> windows_ui_xaml.UIElement: ...
    # System.Void Windows.UI.Xaml.Hosting.XamlUIPresenter::put_RootElement(Windows.UI.Xaml.UIElement)
    @root_element.setter
    def root_element(self, value: windows_ui_xaml.UIElement) -> None: ...

@typing.final
class _IXamlUIPresenterHost: ...

class IXamlUIPresenterHost(winrt._winrt.IInspectable):
    # System.String Windows.UI.Xaml.Hosting.IXamlUIPresenterHost::ResolveFileResource(System.String)
    @abstractmethod
    def resolve_file_resource(self, path: str, /) -> str: ...

@typing.final
class _IXamlUIPresenterHost2: ...

class IXamlUIPresenterHost2(winrt._winrt.IInspectable):
    # System.String Windows.UI.Xaml.Hosting.IXamlUIPresenterHost2::GetGenericXamlFilePath()
    @abstractmethod
    def get_generic_xaml_file_path(self) -> str: ...

@typing.final
class _IXamlUIPresenterHost3: ...

class IXamlUIPresenterHost3(winrt._winrt.IInspectable):
    # System.Object Windows.UI.Xaml.Hosting.IXamlUIPresenterHost3::ResolveDictionaryResource(Windows.UI.Xaml.ResourceDictionary,System.Object,System.Object)
    @abstractmethod
    def resolve_dictionary_resource(self, dictionary: windows_ui_xaml.ResourceDictionary, dictionary_key: winrt.system.Object, suggested_value: winrt.system.Object, /) -> winrt.system.Object: ...

