# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.0-beta.1

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
import winrt.windows.foundation.collections

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

Self = typing.TypeVar('Self')

class MessageDialog(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> MessageDialog: ...
    @typing.overload
    def __new__(cls: typing.Type[MessageDialog], content: str) -> MessageDialog:...
    @typing.overload
    def __new__(cls: typing.Type[MessageDialog], content: str, title: str) -> MessageDialog:...
    def show_async(self) -> winrt.windows.foundation.IAsyncOperation[IUICommand]: ...
    @_property
    def title(self) -> str: ...
    @title.setter
    def title(self, value: str) -> None: ...
    @_property
    def options(self) -> MessageDialogOptions: ...
    @options.setter
    def options(self, value: MessageDialogOptions) -> None: ...
    @_property
    def default_command_index(self) -> winrt.system.UInt32: ...
    @default_command_index.setter
    def default_command_index(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def content(self) -> str: ...
    @content.setter
    def content(self, value: str) -> None: ...
    @_property
    def cancel_command_index(self) -> winrt.system.UInt32: ...
    @cancel_command_index.setter
    def cancel_command_index(self, value: winrt.system.UInt32) -> None: ...
    @_property
    def commands(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[IUICommand]]: ...

class PopupMenu(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> PopupMenu: ...
    def __new__(cls: typing.Type[PopupMenu]) -> PopupMenu:...
    def show_async(self, invocation_point: winrt.windows.foundation.Point, /) -> winrt.windows.foundation.IAsyncOperation[IUICommand]: ...
    @typing.overload
    def show_for_selection_async(self, selection: winrt.windows.foundation.Rect, /) -> winrt.windows.foundation.IAsyncOperation[IUICommand]: ...
    @typing.overload
    def show_for_selection_async(self, selection: winrt.windows.foundation.Rect, preferred_placement: Placement, /) -> winrt.windows.foundation.IAsyncOperation[IUICommand]: ...
    @_property
    def commands(self) -> typing.Optional[winrt.windows.foundation.collections.IVector[IUICommand]]: ...

class UICommand(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> UICommand: ...
    @typing.overload
    def __new__(cls: typing.Type[UICommand], label: str) -> UICommand:...
    @typing.overload
    def __new__(cls: typing.Type[UICommand], label: str, action: typing.Optional[UICommandInvokedHandler]) -> UICommand:...
    @typing.overload
    def __new__(cls: typing.Type[UICommand], label: str, action: typing.Optional[UICommandInvokedHandler], command_id: typing.Optional[winrt.system.Object]) -> UICommand:...
    @typing.overload
    def __new__(cls: typing.Type[UICommand]) -> UICommand:...
    @_property
    def label(self) -> str: ...
    @label.setter
    def label(self, value: str) -> None: ...
    @_property
    def invoked(self) -> typing.Optional[UICommandInvokedHandler]: ...
    @invoked.setter
    def invoked(self, value: typing.Optional[UICommandInvokedHandler]) -> None: ...
    @_property
    def id(self) -> typing.Optional[winrt.system.Object]: ...
    @id.setter
    def id(self, value: typing.Optional[winrt.system.Object]) -> None: ...

class UICommandSeparator(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> UICommandSeparator: ...
    def __new__(cls: typing.Type[UICommandSeparator]) -> UICommandSeparator:...
    @_property
    def label(self) -> str: ...
    @label.setter
    def label(self, value: str) -> None: ...
    @_property
    def invoked(self) -> typing.Optional[UICommandInvokedHandler]: ...
    @invoked.setter
    def invoked(self, value: typing.Optional[UICommandInvokedHandler]) -> None: ...
    @_property
    def id(self) -> typing.Optional[winrt.system.Object]: ...
    @id.setter
    def id(self, value: typing.Optional[winrt.system.Object]) -> None: ...

class IUICommand(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> IUICommand: ...
    @_property
    def id(self) -> typing.Optional[winrt.system.Object]: ...
    @id.setter
    def id(self, value: typing.Optional[winrt.system.Object]) -> None: ...
    @_property
    def invoked(self) -> typing.Optional[UICommandInvokedHandler]: ...
    @invoked.setter
    def invoked(self, value: typing.Optional[UICommandInvokedHandler]) -> None: ...
    @_property
    def label(self) -> str: ...
    @label.setter
    def label(self, value: str) -> None: ...

