# 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.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.graphics as windows_graphics
import winrt.windows.ui as windows_ui
import winui3.microsoft.ui as microsoft_ui
import winui3.microsoft.ui.dispatching as microsoft_ui_dispatching

from winui3.microsoft.ui.windowing import AppWindowPresenterKind, CompactOverlaySize, DisplayAreaFallback, DisplayAreaWatcherStatus, IconShowOptions, OverlappedPresenterState, TitleBarHeightOption, TitleBarTheme

Self = typing.TypeVar('Self')

@typing.final
class AppWindow_Static(winrt._winrt.IInspectable_Static):
    # Microsoft.UI.Windowing.AppWindow Microsoft.UI.Windowing.AppWindow::Create()
    def create(cls) -> AppWindow: ...
    # Microsoft.UI.Windowing.AppWindow Microsoft.UI.Windowing.AppWindow::Create(Microsoft.UI.Windowing.AppWindowPresenter,Microsoft.UI.WindowId,Microsoft.UI.Dispatching.DispatcherQueue)
    def create_with_dispatcher_queue(cls, app_window_presenter: AppWindowPresenter, owner_window_id: typing.Union[microsoft_ui.WindowId, typing.Tuple[winrt.system.UInt64]], dispatcher_queue: microsoft_ui_dispatching.DispatcherQueue, /) -> AppWindow: ...
    # Microsoft.UI.Windowing.AppWindow Microsoft.UI.Windowing.AppWindow::Create(Microsoft.UI.Windowing.AppWindowPresenter)
    def create_with_presenter(cls, app_window_presenter: AppWindowPresenter, /) -> AppWindow: ...
    # Microsoft.UI.Windowing.AppWindow Microsoft.UI.Windowing.AppWindow::Create(Microsoft.UI.Windowing.AppWindowPresenter,Microsoft.UI.WindowId)
    def create_with_presenter_and_owner(cls, app_window_presenter: AppWindowPresenter, owner_window_id: typing.Union[microsoft_ui.WindowId, typing.Tuple[winrt.system.UInt64]], /) -> AppWindow: ...
    # Microsoft.UI.Windowing.AppWindow Microsoft.UI.Windowing.AppWindow::GetFromWindowId(Microsoft.UI.WindowId)
    def get_from_window_id(cls, window_id: typing.Union[microsoft_ui.WindowId, typing.Tuple[winrt.system.UInt64]], /) -> AppWindow: ...

@typing.final
class AppWindow(winrt.system.Object, metaclass=AppWindow_Static):
    # System.Void Microsoft.UI.Windowing.AppWindow::AssociateWithDispatcherQueue(Microsoft.UI.Dispatching.DispatcherQueue)
    def associate_with_dispatcher_queue(self, dispatcher_queue: microsoft_ui_dispatching.DispatcherQueue, /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::Destroy()
    def destroy(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::Hide()
    def hide(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::Move(Windows.Graphics.PointInt32)
    def move(self, position: typing.Union[windows_graphics.PointInt32, typing.Tuple[winrt.system.Int32, winrt.system.Int32]], /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::MoveAndResize(Windows.Graphics.RectInt32)
    def move_and_resize(self, rect: typing.Union[windows_graphics.RectInt32, typing.Tuple[winrt.system.Int32, winrt.system.Int32, winrt.system.Int32, winrt.system.Int32]], /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::MoveAndResize(Windows.Graphics.RectInt32,Microsoft.UI.Windowing.DisplayArea)
    def move_and_resize_relative_to_display_area(self, rect: typing.Union[windows_graphics.RectInt32, typing.Tuple[winrt.system.Int32, winrt.system.Int32, winrt.system.Int32, winrt.system.Int32]], displayarea: DisplayArea, /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::MoveInZOrderAtBottom()
    def move_in_z_order_at_bottom(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::MoveInZOrderAtTop()
    def move_in_z_order_at_top(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::MoveInZOrderBelow(Microsoft.UI.WindowId)
    def move_in_z_order_below(self, window_id: typing.Union[microsoft_ui.WindowId, typing.Tuple[winrt.system.UInt64]], /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::Resize(Windows.Graphics.SizeInt32)
    def resize(self, size: typing.Union[windows_graphics.SizeInt32, typing.Tuple[winrt.system.Int32, winrt.system.Int32]], /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::ResizeClient(Windows.Graphics.SizeInt32)
    def resize_client(self, size: typing.Union[windows_graphics.SizeInt32, typing.Tuple[winrt.system.Int32, winrt.system.Int32]], /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::SetIcon(System.String)
    def set_icon(self, icon_path: str, /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::SetIcon(Microsoft.UI.IconId)
    def set_icon_with_icon_id(self, icon_id: typing.Union[microsoft_ui.IconId, typing.Tuple[winrt.system.UInt64]], /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::SetPresenter(Microsoft.UI.Windowing.AppWindowPresenter)
    def set_presenter(self, app_window_presenter: AppWindowPresenter, /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::SetPresenter(Microsoft.UI.Windowing.AppWindowPresenterKind)
    def set_presenter_by_kind(self, app_window_presenter_kind: AppWindowPresenterKind, /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::SetTaskbarIcon(System.String)
    def set_taskbar_icon(self, icon_path: str, /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::SetTaskbarIcon(Microsoft.UI.IconId)
    def set_taskbar_icon_with_icon_id(self, icon_id: typing.Union[microsoft_ui.IconId, typing.Tuple[winrt.system.UInt64]], /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::SetTitleBarIcon(System.String)
    def set_title_bar_icon(self, icon_path: str, /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::SetTitleBarIcon(Microsoft.UI.IconId)
    def set_title_bar_icon_with_icon_id(self, icon_id: typing.Union[microsoft_ui.IconId, typing.Tuple[winrt.system.UInt64]], /) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::Show()
    def show(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::ShowOnceWithRequestedStartupState()
    def show_once_with_requested_startup_state(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::Show(System.Boolean)
    def show_with_activation(self, activate_window: bool, /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Windowing.AppWindow::add_Changed(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Windowing.AppWindow,Microsoft.UI.Windowing.AppWindowChangedEventArgs>)
    def add_changed(self, handler: windows_foundation.TypedEventHandler[AppWindow, AppWindowChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::remove_Changed(Windows.Foundation.EventRegistrationToken)
    def remove_changed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Windowing.AppWindow::add_Closing(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Windowing.AppWindow,Microsoft.UI.Windowing.AppWindowClosingEventArgs>)
    def add_closing(self, handler: windows_foundation.TypedEventHandler[AppWindow, AppWindowClosingEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::remove_Closing(Windows.Foundation.EventRegistrationToken)
    def remove_closing(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Windowing.AppWindow::add_Destroying(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Windowing.AppWindow,System.Object>)
    def add_destroying(self, handler: windows_foundation.TypedEventHandler[AppWindow, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::remove_Destroying(Windows.Foundation.EventRegistrationToken)
    def remove_destroying(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.String Microsoft.UI.Windowing.AppWindow::get_Title()
    @_property
    def title(self) -> str: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::put_Title(System.String)
    @title.setter
    def title(self, value: str) -> None: ...
    # System.Boolean Microsoft.UI.Windowing.AppWindow::get_IsShownInSwitchers()
    @_property
    def is_shown_in_switchers(self) -> bool: ...
    # System.Void Microsoft.UI.Windowing.AppWindow::put_IsShownInSwitchers(System.Boolean)
    @is_shown_in_switchers.setter
    def is_shown_in_switchers(self, value: bool) -> None: ...
    # Microsoft.UI.WindowId Microsoft.UI.Windowing.AppWindow::get_Id()
    @_property
    def id(self) -> microsoft_ui.WindowId: ...
    # System.Boolean Microsoft.UI.Windowing.AppWindow::get_IsVisible()
    @_property
    def is_visible(self) -> bool: ...
    # Microsoft.UI.WindowId Microsoft.UI.Windowing.AppWindow::get_OwnerWindowId()
    @_property
    def owner_window_id(self) -> microsoft_ui.WindowId: ...
    # Windows.Graphics.PointInt32 Microsoft.UI.Windowing.AppWindow::get_Position()
    @_property
    def position(self) -> windows_graphics.PointInt32: ...
    # Microsoft.UI.Windowing.AppWindowPresenter Microsoft.UI.Windowing.AppWindow::get_Presenter()
    @_property
    def presenter(self) -> AppWindowPresenter: ...
    # Windows.Graphics.SizeInt32 Microsoft.UI.Windowing.AppWindow::get_Size()
    @_property
    def size(self) -> windows_graphics.SizeInt32: ...
    # Microsoft.UI.Windowing.AppWindowTitleBar Microsoft.UI.Windowing.AppWindow::get_TitleBar()
    @_property
    def title_bar(self) -> AppWindowTitleBar: ...
    # Windows.Graphics.SizeInt32 Microsoft.UI.Windowing.AppWindow::get_ClientSize()
    @_property
    def client_size(self) -> windows_graphics.SizeInt32: ...
    # Microsoft.UI.Dispatching.DispatcherQueue Microsoft.UI.Windowing.AppWindow::get_DispatcherQueue()
    @_property
    def dispatcher_queue(self) -> microsoft_ui_dispatching.DispatcherQueue: ...

@typing.final
class AppWindowChangedEventArgs(winrt.system.Object):
    # System.Boolean Microsoft.UI.Windowing.AppWindowChangedEventArgs::get_DidPositionChange()
    @_property
    def did_position_change(self) -> bool: ...
    # System.Boolean Microsoft.UI.Windowing.AppWindowChangedEventArgs::get_DidPresenterChange()
    @_property
    def did_presenter_change(self) -> bool: ...
    # System.Boolean Microsoft.UI.Windowing.AppWindowChangedEventArgs::get_DidSizeChange()
    @_property
    def did_size_change(self) -> bool: ...
    # System.Boolean Microsoft.UI.Windowing.AppWindowChangedEventArgs::get_DidVisibilityChange()
    @_property
    def did_visibility_change(self) -> bool: ...
    # System.Boolean Microsoft.UI.Windowing.AppWindowChangedEventArgs::get_DidZOrderChange()
    @_property
    def did_z_order_change(self) -> bool: ...
    # System.Boolean Microsoft.UI.Windowing.AppWindowChangedEventArgs::get_IsZOrderAtBottom()
    @_property
    def is_z_order_at_bottom(self) -> bool: ...
    # System.Boolean Microsoft.UI.Windowing.AppWindowChangedEventArgs::get_IsZOrderAtTop()
    @_property
    def is_z_order_at_top(self) -> bool: ...
    # Microsoft.UI.WindowId Microsoft.UI.Windowing.AppWindowChangedEventArgs::get_ZOrderBelowWindowId()
    @_property
    def z_order_below_window_id(self) -> microsoft_ui.WindowId: ...

@typing.final
class AppWindowClosingEventArgs(winrt.system.Object):
    # System.Boolean Microsoft.UI.Windowing.AppWindowClosingEventArgs::get_Cancel()
    @_property
    def cancel(self) -> bool: ...
    # System.Void Microsoft.UI.Windowing.AppWindowClosingEventArgs::put_Cancel(System.Boolean)
    @cancel.setter
    def cancel(self, value: bool) -> None: ...

class AppWindowPresenter_Static(winrt._winrt.IInspectable_Static):
    pass

class AppWindowPresenter(winrt.system.Object, metaclass=AppWindowPresenter_Static):
    # Microsoft.UI.Windowing.AppWindowPresenterKind Microsoft.UI.Windowing.AppWindowPresenter::get_Kind()
    @_property
    @typing.final
    def kind(self) -> AppWindowPresenterKind: ...

@typing.final
class AppWindowTitleBar_Static(winrt._winrt.IInspectable_Static):
    # System.Boolean Microsoft.UI.Windowing.AppWindowTitleBar::IsCustomizationSupported()
    def is_customization_supported(cls) -> bool: ...

@typing.final
class AppWindowTitleBar(winrt.system.Object, metaclass=AppWindowTitleBar_Static):
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::ResetToDefault()
    def reset_to_default(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::SetDragRectangles(Windows.Graphics.RectInt32[])
    # @deprecated("Use Microsoft.UI.Input.InputNonClientPointerSource.ConfigureRegion instead of SetDragRectangles.  For more info, see MSDN.")
    def set_drag_rectangles(self, value: typing.Union[winrt.system.Array[windows_graphics.RectInt32], winrt.system.ReadableBuffer], /) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_InactiveForegroundColor()
    @_property
    def inactive_foreground_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_InactiveForegroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @inactive_foreground_color.setter
    def inactive_foreground_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_InactiveBackgroundColor()
    @_property
    def inactive_background_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_InactiveBackgroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @inactive_background_color.setter
    def inactive_background_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Microsoft.UI.Windowing.IconShowOptions Microsoft.UI.Windowing.AppWindowTitleBar::get_IconShowOptions()
    @_property
    def icon_show_options(self) -> IconShowOptions: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_IconShowOptions(Microsoft.UI.Windowing.IconShowOptions)
    @icon_show_options.setter
    def icon_show_options(self, value: IconShowOptions) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_ForegroundColor()
    @_property
    def foreground_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ForegroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @foreground_color.setter
    def foreground_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # System.Boolean Microsoft.UI.Windowing.AppWindowTitleBar::get_ExtendsContentIntoTitleBar()
    @_property
    def extends_content_into_title_bar(self) -> bool: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ExtendsContentIntoTitleBar(System.Boolean)
    @extends_content_into_title_bar.setter
    def extends_content_into_title_bar(self, value: bool) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_ButtonPressedForegroundColor()
    @_property
    def button_pressed_foreground_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ButtonPressedForegroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @button_pressed_foreground_color.setter
    def button_pressed_foreground_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_ButtonPressedBackgroundColor()
    @_property
    def button_pressed_background_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ButtonPressedBackgroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @button_pressed_background_color.setter
    def button_pressed_background_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_ButtonInactiveForegroundColor()
    @_property
    def button_inactive_foreground_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ButtonInactiveForegroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @button_inactive_foreground_color.setter
    def button_inactive_foreground_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_ButtonInactiveBackgroundColor()
    @_property
    def button_inactive_background_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ButtonInactiveBackgroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @button_inactive_background_color.setter
    def button_inactive_background_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_ButtonHoverForegroundColor()
    @_property
    def button_hover_foreground_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ButtonHoverForegroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @button_hover_foreground_color.setter
    def button_hover_foreground_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_ButtonHoverBackgroundColor()
    @_property
    def button_hover_background_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ButtonHoverBackgroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @button_hover_background_color.setter
    def button_hover_background_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_ButtonForegroundColor()
    @_property
    def button_foreground_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ButtonForegroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @button_foreground_color.setter
    def button_foreground_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_ButtonBackgroundColor()
    @_property
    def button_background_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_ButtonBackgroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @button_background_color.setter
    def button_background_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # Windows.Foundation.IReference`1<Windows.UI.Color> Microsoft.UI.Windowing.AppWindowTitleBar::get_BackgroundColor()
    @_property
    def background_color(self) -> typing.Optional[windows_ui.Color]: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_BackgroundColor(Windows.Foundation.IReference`1<Windows.UI.Color>)
    @background_color.setter
    def background_color(self, value: typing.Optional[windows_ui.Color]) -> None: ...
    # System.Int32 Microsoft.UI.Windowing.AppWindowTitleBar::get_Height()
    @_property
    def height(self) -> winrt.system.Int32: ...
    # System.Int32 Microsoft.UI.Windowing.AppWindowTitleBar::get_LeftInset()
    @_property
    def left_inset(self) -> winrt.system.Int32: ...
    # System.Int32 Microsoft.UI.Windowing.AppWindowTitleBar::get_RightInset()
    @_property
    def right_inset(self) -> winrt.system.Int32: ...
    # Microsoft.UI.Windowing.TitleBarHeightOption Microsoft.UI.Windowing.AppWindowTitleBar::get_PreferredHeightOption()
    @_property
    def preferred_height_option(self) -> TitleBarHeightOption: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_PreferredHeightOption(Microsoft.UI.Windowing.TitleBarHeightOption)
    @preferred_height_option.setter
    def preferred_height_option(self, value: TitleBarHeightOption) -> None: ...
    # Microsoft.UI.Windowing.TitleBarTheme Microsoft.UI.Windowing.AppWindowTitleBar::get_PreferredTheme()
    @_property
    def preferred_theme(self) -> TitleBarTheme: ...
    # System.Void Microsoft.UI.Windowing.AppWindowTitleBar::put_PreferredTheme(Microsoft.UI.Windowing.TitleBarTheme)
    @preferred_theme.setter
    def preferred_theme(self, value: TitleBarTheme) -> None: ...

@typing.final
class CompactOverlayPresenter_Static(AppWindowPresenter_Static):
    # Microsoft.UI.Windowing.CompactOverlayPresenter Microsoft.UI.Windowing.CompactOverlayPresenter::Create()
    def create(cls) -> CompactOverlayPresenter: ...

@typing.final
class CompactOverlayPresenter(AppWindowPresenter, metaclass=CompactOverlayPresenter_Static):
    # Microsoft.UI.Windowing.CompactOverlaySize Microsoft.UI.Windowing.CompactOverlayPresenter::get_InitialSize()
    @_property
    def initial_size(self) -> CompactOverlaySize: ...
    # System.Void Microsoft.UI.Windowing.CompactOverlayPresenter::put_InitialSize(Microsoft.UI.Windowing.CompactOverlaySize)
    @initial_size.setter
    def initial_size(self, value: CompactOverlaySize) -> None: ...

@typing.final
class DisplayArea_Static(winrt._winrt.IInspectable_Static):
    # Microsoft.UI.Windowing.DisplayAreaWatcher Microsoft.UI.Windowing.DisplayArea::CreateWatcher()
    def create_watcher(cls) -> DisplayAreaWatcher: ...
    # Windows.Foundation.Collections.IVectorView`1<Microsoft.UI.Windowing.DisplayArea> Microsoft.UI.Windowing.DisplayArea::FindAll()
    def find_all(cls) -> typing.Sequence[DisplayArea]: ...
    # Microsoft.UI.Windowing.DisplayArea Microsoft.UI.Windowing.DisplayArea::GetFromDisplayId(Microsoft.UI.DisplayId)
    def get_from_display_id(cls, display_id: typing.Union[microsoft_ui.DisplayId, typing.Tuple[winrt.system.UInt64]], /) -> DisplayArea: ...
    # Microsoft.UI.Windowing.DisplayArea Microsoft.UI.Windowing.DisplayArea::GetFromPoint(Windows.Graphics.PointInt32,Microsoft.UI.Windowing.DisplayAreaFallback)
    def get_from_point(cls, point: typing.Union[windows_graphics.PointInt32, typing.Tuple[winrt.system.Int32, winrt.system.Int32]], display_area_fallback: DisplayAreaFallback, /) -> DisplayArea: ...
    # Microsoft.UI.Windowing.DisplayArea Microsoft.UI.Windowing.DisplayArea::GetFromRect(Windows.Graphics.RectInt32,Microsoft.UI.Windowing.DisplayAreaFallback)
    def get_from_rect(cls, rect: typing.Union[windows_graphics.RectInt32, typing.Tuple[winrt.system.Int32, winrt.system.Int32, winrt.system.Int32, winrt.system.Int32]], display_area_fallback: DisplayAreaFallback, /) -> DisplayArea: ...
    # Microsoft.UI.Windowing.DisplayArea Microsoft.UI.Windowing.DisplayArea::GetFromWindowId(Microsoft.UI.WindowId,Microsoft.UI.Windowing.DisplayAreaFallback)
    def get_from_window_id(cls, window_id: typing.Union[microsoft_ui.WindowId, typing.Tuple[winrt.system.UInt64]], display_area_fallback: DisplayAreaFallback, /) -> DisplayArea: ...
    # Microsoft.UI.Windowing.DisplayArea Microsoft.UI.Windowing.DisplayArea::get_Primary()
    @_property
    def primary(cls) -> DisplayArea: ...

@typing.final
class DisplayArea(winrt.system.Object, metaclass=DisplayArea_Static):
    # Microsoft.UI.DisplayId Microsoft.UI.Windowing.DisplayArea::get_DisplayId()
    @_property
    def display_id(self) -> microsoft_ui.DisplayId: ...
    # System.Boolean Microsoft.UI.Windowing.DisplayArea::get_IsPrimary()
    @_property
    def is_primary(self) -> bool: ...
    # Windows.Graphics.RectInt32 Microsoft.UI.Windowing.DisplayArea::get_OuterBounds()
    @_property
    def outer_bounds(self) -> windows_graphics.RectInt32: ...
    # Windows.Graphics.RectInt32 Microsoft.UI.Windowing.DisplayArea::get_WorkArea()
    @_property
    def work_area(self) -> windows_graphics.RectInt32: ...

@typing.final
class DisplayAreaWatcher(winrt.system.Object):
    # System.Void Microsoft.UI.Windowing.DisplayAreaWatcher::Start()
    def start(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.DisplayAreaWatcher::Stop()
    def stop(self) -> None: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Windowing.DisplayAreaWatcher::add_Added(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Windowing.DisplayAreaWatcher,Microsoft.UI.Windowing.DisplayArea>)
    def add_added(self, handler: windows_foundation.TypedEventHandler[DisplayAreaWatcher, DisplayArea], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.UI.Windowing.DisplayAreaWatcher::remove_Added(Windows.Foundation.EventRegistrationToken)
    def remove_added(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Windowing.DisplayAreaWatcher::add_EnumerationCompleted(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Windowing.DisplayAreaWatcher,System.Object>)
    def add_enumeration_completed(self, handler: windows_foundation.TypedEventHandler[DisplayAreaWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.UI.Windowing.DisplayAreaWatcher::remove_EnumerationCompleted(Windows.Foundation.EventRegistrationToken)
    def remove_enumeration_completed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Windowing.DisplayAreaWatcher::add_Removed(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Windowing.DisplayAreaWatcher,Microsoft.UI.Windowing.DisplayArea>)
    def add_removed(self, handler: windows_foundation.TypedEventHandler[DisplayAreaWatcher, DisplayArea], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.UI.Windowing.DisplayAreaWatcher::remove_Removed(Windows.Foundation.EventRegistrationToken)
    def remove_removed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Windowing.DisplayAreaWatcher::add_Stopped(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Windowing.DisplayAreaWatcher,System.Object>)
    def add_stopped(self, handler: windows_foundation.TypedEventHandler[DisplayAreaWatcher, winrt.system.Object], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.UI.Windowing.DisplayAreaWatcher::remove_Stopped(Windows.Foundation.EventRegistrationToken)
    def remove_stopped(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.UI.Windowing.DisplayAreaWatcher::add_Updated(Windows.Foundation.TypedEventHandler`2<Microsoft.UI.Windowing.DisplayAreaWatcher,Microsoft.UI.Windowing.DisplayArea>)
    def add_updated(self, handler: windows_foundation.TypedEventHandler[DisplayAreaWatcher, DisplayArea], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.UI.Windowing.DisplayAreaWatcher::remove_Updated(Windows.Foundation.EventRegistrationToken)
    def remove_updated(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Microsoft.UI.Windowing.DisplayAreaWatcherStatus Microsoft.UI.Windowing.DisplayAreaWatcher::get_Status()
    @_property
    def status(self) -> DisplayAreaWatcherStatus: ...

@typing.final
class FullScreenPresenter_Static(AppWindowPresenter_Static):
    # Microsoft.UI.Windowing.FullScreenPresenter Microsoft.UI.Windowing.FullScreenPresenter::Create()
    def create(cls) -> FullScreenPresenter: ...

@typing.final
class FullScreenPresenter(AppWindowPresenter, metaclass=FullScreenPresenter_Static):
    pass

@typing.final
class OverlappedPresenter_Static(AppWindowPresenter_Static):
    # Microsoft.UI.Windowing.OverlappedPresenter Microsoft.UI.Windowing.OverlappedPresenter::Create()
    def create(cls) -> OverlappedPresenter: ...
    # Microsoft.UI.Windowing.OverlappedPresenter Microsoft.UI.Windowing.OverlappedPresenter::CreateForContextMenu()
    def create_for_context_menu(cls) -> OverlappedPresenter: ...
    # Microsoft.UI.Windowing.OverlappedPresenter Microsoft.UI.Windowing.OverlappedPresenter::CreateForDialog()
    def create_for_dialog(cls) -> OverlappedPresenter: ...
    # Microsoft.UI.Windowing.OverlappedPresenter Microsoft.UI.Windowing.OverlappedPresenter::CreateForToolWindow()
    def create_for_tool_window(cls) -> OverlappedPresenter: ...
    # Microsoft.UI.Windowing.OverlappedPresenterState Microsoft.UI.Windowing.OverlappedPresenter::get_RequestedStartupState()
    @_property
    def requested_startup_state(cls) -> OverlappedPresenterState: ...

@typing.final
class OverlappedPresenter(AppWindowPresenter, metaclass=OverlappedPresenter_Static):
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::Maximize()
    def maximize(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::Minimize()
    def minimize(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::Minimize(System.Boolean)
    def minimize_with_activation(self, activate_window: bool, /) -> None: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::Restore()
    def restore(self) -> None: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::Restore(System.Boolean)
    def restore_with_activation(self, activate_window: bool, /) -> None: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::SetBorderAndTitleBar(System.Boolean,System.Boolean)
    def set_border_and_title_bar(self, has_border: bool, has_title_bar: bool, /) -> None: ...
    # System.Boolean Microsoft.UI.Windowing.OverlappedPresenter::get_IsResizable()
    @_property
    def is_resizable(self) -> bool: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::put_IsResizable(System.Boolean)
    @is_resizable.setter
    def is_resizable(self, value: bool) -> None: ...
    # System.Boolean Microsoft.UI.Windowing.OverlappedPresenter::get_IsModal()
    @_property
    def is_modal(self) -> bool: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::put_IsModal(System.Boolean)
    @is_modal.setter
    def is_modal(self, value: bool) -> None: ...
    # System.Boolean Microsoft.UI.Windowing.OverlappedPresenter::get_IsMinimizable()
    @_property
    def is_minimizable(self) -> bool: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::put_IsMinimizable(System.Boolean)
    @is_minimizable.setter
    def is_minimizable(self, value: bool) -> None: ...
    # System.Boolean Microsoft.UI.Windowing.OverlappedPresenter::get_IsMaximizable()
    @_property
    def is_maximizable(self) -> bool: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::put_IsMaximizable(System.Boolean)
    @is_maximizable.setter
    def is_maximizable(self, value: bool) -> None: ...
    # System.Boolean Microsoft.UI.Windowing.OverlappedPresenter::get_IsAlwaysOnTop()
    @_property
    def is_always_on_top(self) -> bool: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::put_IsAlwaysOnTop(System.Boolean)
    @is_always_on_top.setter
    def is_always_on_top(self, value: bool) -> None: ...
    # System.Boolean Microsoft.UI.Windowing.OverlappedPresenter::get_HasBorder()
    @_property
    def has_border(self) -> bool: ...
    # System.Boolean Microsoft.UI.Windowing.OverlappedPresenter::get_HasTitleBar()
    @_property
    def has_title_bar(self) -> bool: ...
    # Microsoft.UI.Windowing.OverlappedPresenterState Microsoft.UI.Windowing.OverlappedPresenter::get_State()
    @_property
    def state(self) -> OverlappedPresenterState: ...
    # Windows.Foundation.IReference`1<System.Int32> Microsoft.UI.Windowing.OverlappedPresenter::get_PreferredMinimumWidth()
    @_property
    def preferred_minimum_width(self) -> typing.Optional[winrt.system.Int32]: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::put_PreferredMinimumWidth(Windows.Foundation.IReference`1<System.Int32>)
    @preferred_minimum_width.setter
    def preferred_minimum_width(self, value: typing.Optional[winrt.system.Int32]) -> None: ...
    # Windows.Foundation.IReference`1<System.Int32> Microsoft.UI.Windowing.OverlappedPresenter::get_PreferredMinimumHeight()
    @_property
    def preferred_minimum_height(self) -> typing.Optional[winrt.system.Int32]: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::put_PreferredMinimumHeight(Windows.Foundation.IReference`1<System.Int32>)
    @preferred_minimum_height.setter
    def preferred_minimum_height(self, value: typing.Optional[winrt.system.Int32]) -> None: ...
    # Windows.Foundation.IReference`1<System.Int32> Microsoft.UI.Windowing.OverlappedPresenter::get_PreferredMaximumWidth()
    @_property
    def preferred_maximum_width(self) -> typing.Optional[winrt.system.Int32]: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::put_PreferredMaximumWidth(Windows.Foundation.IReference`1<System.Int32>)
    @preferred_maximum_width.setter
    def preferred_maximum_width(self, value: typing.Optional[winrt.system.Int32]) -> None: ...
    # Windows.Foundation.IReference`1<System.Int32> Microsoft.UI.Windowing.OverlappedPresenter::get_PreferredMaximumHeight()
    @_property
    def preferred_maximum_height(self) -> typing.Optional[winrt.system.Int32]: ...
    # System.Void Microsoft.UI.Windowing.OverlappedPresenter::put_PreferredMaximumHeight(Windows.Foundation.IReference`1<System.Int32>)
    @preferred_maximum_height.setter
    def preferred_maximum_height(self, value: typing.Optional[winrt.system.Int32]) -> None: ...

