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

import NodegraphAPI.BypassParameterManager as BypassParameterManager
import DrawingModule as DrawingModule
import UI4.Util.IconManager as IconManager
import KatanaResources as KatanaResources
import UI4.Util.NodeDialogs as NodeDialogs
import UI4.FormMaster.NodeMimeData as NodeMimeData
import NodegraphAPI as NodegraphAPI
import PyQt5.QtGui
import QT4Widgets as QT4Widgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import Utils as Utils
from NodegraphAPI.LiveGroup import LiveGroupMixin as LiveGroupMixin
from UI4.App.KeyboardShortcutManager.KeyboardShortcutManagerMixin import KeyboardShortcutManagerMixin as KeyboardShortcutManagerMixin, KeyboardShortcutManagerMixinMetaclass as KeyboardShortcutManagerMixinMetaclass
from UI4.Widgets.NodePopupMenu import NodePopupMenu as NodePopupMenu
from UI4.Widgets.ToolbarButton import ToolbarButton as ToolbarButton
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

__liveGroupPixmapNames: dict
__nodePixmaps: dict
eventType: str

class NodeButton(ToolbarButton, KeyboardShortcutManagerMixin):
    BypassPixmap: ClassVar[None] = ...
    EditPixmap: ClassVar[None] = ...
    MinimumIndicatorSize: ClassVar[int] = ...
    Padding: ClassVar[int] = ...
    ViewPixmap: ClassVar[None] = ...
    _NodeButton__HasRegisteredKeyboardShortcuts: ClassVar[bool] = ...
    _NodeButtons: ClassVar[list] = ...
    def __init__(self, node: NodegraphAPI.Node | None, defaultTooltip: str = ..., parent: Incomplete | None = ...) -> None: ...
    def _NodeButton__buildIcon(self, hover: bool = ...): ...
    def _NodeButton__getTooltip(self, node: NodegraphAPI.Node | None, defaultTooltip: str) -> str: ...
    def _NodeButton__setEditFlag(self): ...
    def _NodeButton__setViewFlag(self): ...
    def _NodeButton__startNodeDrag(self): ...
    def _NodeButton__toggleBypassedState(self): ...
    def _NodeButton__toggleEditFlag(self): ...
    def _NodeButton__toggleViewFlag(self): ...
    def _updateIcon(self): ...
    def _updateStyleSheet(self, forceHoverColor: bool = ...): ...
    def changeEvent(self, event): ...
    def customEvent(self, event): ...
    def editNodeName(self): ...
    def getNode(self) -> NodegraphAPI.Node | None: ...
    def mousePressEvent(self, event: PyQt5.QtGui.QMouseEvent): ...
    @classmethod
    def registerKeyboardShortcuts(cls): ...
    def setBold(self, bold: bool): ...
    def setNode(self, node: NodegraphAPI.Node): ...
    def showContextMenu(self, pos): ...
    def updateAppearance(self): ...

def _GetNodePixmap(node: NodegraphAPI.Node) -> PyQt5.QtGui.QPixmap: ...
def _InitNodePixmaps(): ...
def __on_node_updated(args: list[tuple[str, object, dict]]): ...
