"""Autogenerated file: DO NOT EDIT!"""
import typing  # noqa: F401
from dazzler.system import Component, Aspect, UNDEFINED  # noqa: F401


class Notice(Component):
    """
    Browser notifications with permissions handling.
    """
    _aspect_keys = []
    _children = []
    permission = Aspect(docstring="Permission granted by the user (READONLY) (Possible values: 'denied', 'granted', 'default', 'unsupported')")  # noqa: E501
    title = Aspect(required=True)
    lang = Aspect(docstring="The notification's language, as specified using a DOMString representing a BCP 47 language tag.")  # noqa: E501
    body = Aspect(docstring="A DOMString representing the body text of the notification, which will be displayed below the title.")  # noqa: E501
    badge = Aspect(docstring="A USVString containing the URL of the image used to represent the notification when there is not enough space to display the notification itself.")  # noqa: E501
    tag = Aspect(docstring="A DOMString representing an identifying tag for the notification.")  # noqa: E501
    icon = Aspect(docstring="A USVString containing the URL of an icon to be displayed in the notification.")  # noqa: E501
    image = Aspect(docstring="a USVString containing the URL of an image to be displayed in the notification.")  # noqa: E501
    vibrate = Aspect(docstring="A vibration pattern for the device's vibration hardware to emit when the notification fires.")  # noqa: E501
    require_interaction = Aspect(default=False, docstring="Indicates that a notification should remain active until the user clicks or dismisses it, rather than closing automatically. The default value is false. (default=False)")  # noqa: E501
    displayed = Aspect(docstring="Set to true to display the notification.")
    clicks = Aspect(default=0, docstring="(default=0)")
    clicks_timestamp = Aspect(default=-1, docstring="(default=-1)")
    closes = Aspect(default=0, docstring="Number of times the notification was closed. (default=0)")  # noqa: E501
    closes_timestamp = Aspect(default=-1, docstring="(default=-1)")

    def __init__(
            self,
            title: str,
            permission: typing.Optional[typing.Any] = UNDEFINED,
            lang: typing.Optional[str] = UNDEFINED,
            body: typing.Optional[str] = UNDEFINED,
            badge: typing.Optional[str] = UNDEFINED,
            tag: typing.Optional[str] = UNDEFINED,
            icon: typing.Optional[str] = UNDEFINED,
            image: typing.Optional[str] = UNDEFINED,
            vibrate: typing.Optional[typing.Union[typing.Union[float, int], typing.List[typing.Union[float, int]]]] = UNDEFINED,  # noqa: E501
            require_interaction: typing.Optional[bool] = False,
            displayed: typing.Optional[bool] = UNDEFINED,
            clicks: typing.Optional[typing.Union[float, int]] = 0,
            clicks_timestamp: typing.Optional[typing.Union[float, int]] = -1,
            closes: typing.Optional[typing.Union[float, int]] = 0,
            closes_timestamp: typing.Optional[typing.Union[float, int]] = -1,
            identity: str = None
    ):
        """
        :param permission: Permission granted by the user (READONLY)
            (Possible values: 'denied', 'granted', 'default', 'unsupported')
        :param title:
        :param lang: The notification's language, as specified using a
            DOMString representing a BCP 47 language tag.
        :param body: A DOMString representing the body text of the
            notification, which will be displayed below the title.
        :param badge: A USVString containing the URL of the image used to
            represent the notification when there is not enough space to
            display the notification itself.
        :param tag: A DOMString representing an identifying tag for the
            notification.
        :param icon: A USVString containing the URL of an icon to be
            displayed in the notification.
        :param image: a USVString containing the URL of an image to be
            displayed in the notification.
        :param vibrate: A vibration pattern for the device's vibration
            hardware to emit when the notification fires.
        :param require_interaction: Indicates that a notification should
            remain active until the user clicks or dismisses it, rather than
            closing automatically. The default value is false. (default=False)
        :param displayed: Set to true to display the notification.
        :param clicks: (default=0)
        :param clicks_timestamp: (default=-1)
        :param closes: Number of times the notification was closed.
            (default=0)
        :param closes_timestamp: (default=-1)
        """
        Component.__init__(self, locals(), identity)
