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

import UI4.Util.IconManager as IconManager
import PyQt5.QtCore
import PyQt5.QtGui
import PyQt5.QtWidgets
import QT4Widgets as QT4Widgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import QT4Widgets.WidgetUtils as WidgetUtils
from UI4.Util.LogRecord import LogRecord as LogRecord
from UI4.Widgets.LogRecordTreeView import LogRecordTreeView as LogRecordTreeView
from UI4.Widgets.ToolbarButton import ToolbarButton as ToolbarButton
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class MessagesPopupWindow(PyQt5.QtWidgets.QFrame):
    activeLevelsChanged: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    hideSignal: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    showSignal: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, parent: Incomplete | None = ...) -> None: ...
    def getHighestRecordLevel(self) -> int: ...
    def getTreeView(self): ...
    def hideEvent(self, event: PyQt5.QtGui.QHideEvent): ...
    def on_treeView_activeLevelsChanged(self, activeLevels): ...
    def showEvent(self, event: PyQt5.QtGui.QShowEvent): ...

class MessagesToolbarButton(ToolbarButton):
    class _RecordChanged:
        kAdded: ClassVar[int] = ...
        kNoChange: ClassVar[int] = ...
        kRemoved: ClassVar[int] = ...
    def __init__(self, parent: PyQt5.QtWidgets.QWidget | None) -> None: ...
    def _MessagesToolbarButton__changeIconToHighestPossibleLevel(self, changed: int = ...): ...
    def _MessagesToolbarButton__changeIconToLevel(self, level, changed): ...
    def _MessagesToolbarButton__markActiveLevelsAsRead(self): ...
    def _MessagesToolbarButton__setBlinkState(self, state: bool): ...
    def _MessagesToolbarButton__updateIcon(self): ...
    def on_blinkTimer_timeout(self): ...
    def on_logRecordItemModel_recordAdded(self, level: int): ...
    def on_logRecordItemModel_recordsRemoved(self): ...
    def on_mousePressEvent(self, event: PyQt5.QtGui.QMouseEvent): ...
    def on_popupWindow_activeLevelsChanged(self, activeLevels: set[int]): ...
    def on_popupWindow_hide(self): ...
    def on_popupWindow_show(self): ...
