# Minimal stubs for the optional ``desktop-notifier`` extra. # Only the surface ``plyngent.cli.notify`` uses is declared; the real package is # installed with ``pip install plyngent[notify]`` and is absent by default. from collections.abc import Sequence from enum import Enum from typing import Any class Capability(Enum): APP_NAME = ... TITLE = ... MESSAGE = ... URGENCY = ... ICON = ... BUTTONS = ... REPLY_FIELD = ... ATTACHMENT = ... ON_DISPATCHED = ... ON_CLICKED = ... ON_DISMISSED = ... SOUND = ... THREAD = ... TIMEOUT = ... class Urgency(Enum): Critical = ... Normal = ... Low = ... class Button: def __init__( self, title: str, on_pressed: Any = None, identifier: str | None = None, ) -> None: ... class ReplyField: def __init__( self, title: str = ..., button_title: str = ..., on_replied: Any = None, ) -> None: ... class DesktopNotifier: def __init__( self, app_name: str = ..., app_icon: Any = ..., notification_limit: int | None = None, ) -> None: ... async def get_capabilities(self) -> frozenset[Capability]: ... async def send( self, title: str, message: str, urgency: Urgency = ..., icon: Any = ..., buttons: Sequence[Button] = ..., reply_field: ReplyField | None = None, on_dispatched: Any = None, on_clicked: Any = None, on_dismissed: Any = None, attachment: Any = ..., sound: Any = ..., thread: str | None = None, timeout: int = -1, # noqa: ASYNC109 - the library's own parameter name ) -> str: ... async def clear(self, identifier: str) -> None: ... async def clear_all(self) -> None: ...