# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.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

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):
    @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) -> 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[windows_foundation_collections.IVector[IUICommand]]: ...

@typing.final
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: windows_foundation.Point, /) -> windows_foundation.IAsyncOperation[IUICommand]: ...
    @typing.overload
    def show_for_selection_async(self, selection: windows_foundation.Rect, /) -> windows_foundation.IAsyncOperation[IUICommand]: ...
    @typing.overload
    def show_for_selection_async(self, selection: windows_foundation.Rect, preferred_placement: Placement, /) -> windows_foundation.IAsyncOperation[IUICommand]: ...
    @_property
    def commands(self) -> typing.Optional[windows_foundation_collections.IVector[IUICommand]]: ...

@typing.final
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: ...

@typing.final
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: ...

@typing.final
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: ...

