# mypy: disable-error-code="misc, override, attr-defined, no-redef, assignment"

import UI4.Util.IconManager as IconManager
import UI4.Util.NotificationManager as NotificationManager
import PyQt5.QtCore
import PyQt5.QtWidgets
import QT4FormWidgets as QT4FormWidgets
import QT4Widgets as QT4Widgets
import QT4Widgets.SortableTreeWidget
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
import Utils as Utils
import QT4Widgets.WidgetUtils as WidgetUtils
from QT4Widgets.SortableTreeWidget import SortableTreeWidget
from UI4.Widgets.ToolbarButton import ToolbarButton as ToolbarButton
from typing import ClassVar, Set, Tuple

class NotificationPopupWindow(PyQt5.QtWidgets.QFrame):
    hideSignal: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    showSignal: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self) -> None: ...
    def _NotificationPopupWindow__actionMenuAboutToShow(self): ...
    def _NotificationPopupWindow__contextMenuClick(self, pos): ...
    def _NotificationPopupWindow__fillActionMenu(self, menu): ...
    def hideEvent(self, e): ...
    def notificationAdded(self, record): ...
    def notificationDeleted(self, record): ...
    def setGeometry(self, x, y, w, h): ...
    def showEvent(self, e): ...
    def updateRecords(self, records): ...

class NotificationToolbarButton(ToolbarButton):
    def __init__(self, parent) -> None: ...
    def _NotificationToolbarButton__blinkWithPriorityState(self): ...
    def _NotificationToolbarButton__deleteRecordCallback(self, eventType, eventId, record): ...
    def _NotificationToolbarButton__mousePressCallback(self, event): ...
    def _NotificationToolbarButton__newRecordCallback(self, eventType, eventId, record): ...
    def _NotificationToolbarButton__popupHidden(self): ...
    def _NotificationToolbarButton__popupShow(self): ...
    def _NotificationToolbarButton__recordPriorityChangedCallback(self, eventType, eventId, record): ...
    def _NotificationToolbarButton__recordTitleChangedCallback(self, eventType, eventId, record): ...
    def _NotificationToolbarButton__setBlinkState(self, state): ...
    def _NotificationToolbarButton__timerCallback(self): ...
    def _NotificationToolbarButton__updatePriorityState(self): ...

class NotificationTreeWidget(SortableTreeWidget):
    ACTIONS_COLUMN: ClassVar[int] = ...
    DATE_COLUMN: ClassVar[int] = ...
    NAME_COLUMN: ClassVar[int] = ...
    PRIORITY_COLUMN: ClassVar[int] = ...
    contextMenuClick: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, parent) -> None: ...
    def _NotificationTreeWidget__keyPressCallback(self, event): ...
    def _NotificationTreeWidget__mousePressCallback(self, event): ...
    def adjustWidth(self, width): ...
    def deleteNotifications(self): ...
    def ignoreNotifications(self): ...
    def notificationAdded(self, record): ...
    def notificationDeleted(self, record): ...
    def notificationPriorityChanged(self, record): ...
    def notificationTitleChanged(self, record): ...
    def unignoreNotifications(self): ...
    def updateRecords(self, records): ...

class NotificationTreeWidgetItem(QT4Widgets.SortableTreeWidget.SortableTreeWidgetItem):
    def __init__(self, parent, record, icon) -> None: ...
    def updatePriority(self): ...
    def __lt__(self, other) -> bool: ...
