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

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.foundation.collections as windows_foundation_collections

from winrt.windows.ui.popups import MessageDialogOptions, Placement
from winrt.windows.ui.popups import UICommandInvokedHandler

Self = typing.TypeVar('Self')

@typing.final
class MessageDialog(winrt.system.Object):
    @typing.overload
    def __new__(cls: typing.Type[Self], content: str) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], content: str, title: str) -> Self: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.UI.Popups.IUICommand> Windows.UI.Popups.MessageDialog::ShowAsync()
    def show_async(self) -> windows_foundation.IAsyncOperation[IUICommand]: ...
    # System.String Windows.UI.Popups.MessageDialog::get_Title()
    @_property
    def title(self) -> str: ...
    # System.Void Windows.UI.Popups.MessageDialog::put_Title(System.String)
    @title.setter
    def title(self, value: str) -> None: ...
    # Windows.UI.Popups.MessageDialogOptions Windows.UI.Popups.MessageDialog::get_Options()
    @_property
    def options(self) -> MessageDialogOptions: ...
    # System.Void Windows.UI.Popups.MessageDialog::put_Options(Windows.UI.Popups.MessageDialogOptions)
    @options.setter
    def options(self, value: MessageDialogOptions) -> None: ...
    # System.UInt32 Windows.UI.Popups.MessageDialog::get_DefaultCommandIndex()
    @_property
    def default_command_index(self) -> winrt.system.UInt32: ...
    # System.Void Windows.UI.Popups.MessageDialog::put_DefaultCommandIndex(System.UInt32)
    @default_command_index.setter
    def default_command_index(self, value: winrt.system.UInt32) -> None: ...
    # System.String Windows.UI.Popups.MessageDialog::get_Content()
    @_property
    def content(self) -> str: ...
    # System.Void Windows.UI.Popups.MessageDialog::put_Content(System.String)
    @content.setter
    def content(self, value: str) -> None: ...
    # System.UInt32 Windows.UI.Popups.MessageDialog::get_CancelCommandIndex()
    @_property
    def cancel_command_index(self) -> winrt.system.UInt32: ...
    # System.Void Windows.UI.Popups.MessageDialog::put_CancelCommandIndex(System.UInt32)
    @cancel_command_index.setter
    def cancel_command_index(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.UI.Popups.IUICommand> Windows.UI.Popups.MessageDialog::get_Commands()
    @_property
    def commands(self) -> typing.MutableSequence[IUICommand]: ...

@typing.final
class PopupMenu(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.UI.Popups.IUICommand> Windows.UI.Popups.PopupMenu::ShowAsync(Windows.Foundation.Point)
    def show_async(self, invocation_point: typing.Union[windows_foundation.Point, typing.Tuple[winrt.system.Single, winrt.system.Single]], /) -> windows_foundation.IAsyncOperation[IUICommand]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.UI.Popups.IUICommand> Windows.UI.Popups.PopupMenu::ShowForSelectionAsync(Windows.Foundation.Rect)
    def show_async_with_rect(self, selection: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]], /) -> windows_foundation.IAsyncOperation[IUICommand]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.UI.Popups.IUICommand> Windows.UI.Popups.PopupMenu::ShowForSelectionAsync(Windows.Foundation.Rect,Windows.UI.Popups.Placement)
    def show_async_with_rect_and_placement(self, selection: typing.Union[windows_foundation.Rect, typing.Tuple[winrt.system.Single, winrt.system.Single, winrt.system.Single, winrt.system.Single]], preferred_placement: Placement, /) -> windows_foundation.IAsyncOperation[IUICommand]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.UI.Popups.IUICommand> Windows.UI.Popups.PopupMenu::get_Commands()
    @_property
    def commands(self) -> typing.MutableSequence[IUICommand]: ...

@typing.final
class UICommand(winrt.system.Object, IUICommand):
    @typing.overload
    def __new__(cls: typing.Type[Self], label: str) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], label: str, action: UICommandInvokedHandler) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self], label: str, action: UICommandInvokedHandler, command_id: winrt.system.Object) -> Self: ...
    @typing.overload
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.UI.Popups.UICommand::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.UI.Popups.UICommand::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # Windows.UI.Popups.UICommandInvokedHandler Windows.UI.Popups.UICommand::get_Invoked()
    @_property
    def invoked(self) -> UICommandInvokedHandler: ...
    # System.Void Windows.UI.Popups.UICommand::put_Invoked(Windows.UI.Popups.UICommandInvokedHandler)
    @invoked.setter
    def invoked(self, value: UICommandInvokedHandler) -> None: ...
    # System.Object Windows.UI.Popups.UICommand::get_Id()
    @_property
    def id(self) -> winrt.system.Object: ...
    # System.Void Windows.UI.Popups.UICommand::put_Id(System.Object)
    @id.setter
    def id(self, value: winrt.system.Object) -> None: ...

@typing.final
class UICommandSeparator(winrt.system.Object, IUICommand):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.UI.Popups.UICommandSeparator::get_Label()
    @_property
    def label(self) -> str: ...
    # System.Void Windows.UI.Popups.UICommandSeparator::put_Label(System.String)
    @label.setter
    def label(self, value: str) -> None: ...
    # Windows.UI.Popups.UICommandInvokedHandler Windows.UI.Popups.UICommandSeparator::get_Invoked()
    @_property
    def invoked(self) -> UICommandInvokedHandler: ...
    # System.Void Windows.UI.Popups.UICommandSeparator::put_Invoked(Windows.UI.Popups.UICommandInvokedHandler)
    @invoked.setter
    def invoked(self, value: UICommandInvokedHandler) -> None: ...
    # System.Object Windows.UI.Popups.UICommandSeparator::get_Id()
    @_property
    def id(self) -> winrt.system.Object: ...
    # System.Void Windows.UI.Popups.UICommandSeparator::put_Id(System.Object)
    @id.setter
    def id(self, value: winrt.system.Object) -> None: ...

@typing.final
class _IUICommand: ...

class IUICommand(winrt._winrt.IInspectable):
    # System.Object Windows.UI.Popups.IUICommand::get_Id()
    @_property
    @abstractmethod
    def id(self) -> winrt.system.Object: ...
    # System.Void Windows.UI.Popups.IUICommand::put_Id(System.Object)
    @id.setter
    @abstractmethod
    def id(self, value: winrt.system.Object) -> None: ...
    # Windows.UI.Popups.UICommandInvokedHandler Windows.UI.Popups.IUICommand::get_Invoked()
    @_property
    @abstractmethod
    def invoked(self) -> UICommandInvokedHandler: ...
    # System.Void Windows.UI.Popups.IUICommand::put_Invoked(Windows.UI.Popups.UICommandInvokedHandler)
    @invoked.setter
    @abstractmethod
    def invoked(self, value: UICommandInvokedHandler) -> None: ...
    # System.String Windows.UI.Popups.IUICommand::get_Label()
    @_property
    @abstractmethod
    def label(self) -> str: ...
    # System.Void Windows.UI.Popups.IUICommand::put_Label(System.String)
    @label.setter
    @abstractmethod
    def label(self, value: str) -> None: ...

