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

import ConfigurationAPI_cmodule as Configuration
import DrawingModule as DrawingModule
import KatanaResources as KatanaResources
import UI4.App.KeyboardShortcutManager as KeyboardShortcutManager
import NodegraphAPI as NodegraphAPI
import Nodes2DAPI as Nodes2DAPI
import UI4.KatanaPrefs.PrefNames as PrefNames
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 RenderingAPI as RenderingAPI
import UI4 as UI4
import Utils as Utils
import typing
from PyQt5.QtCore import Qt as Qt
from PyUtilModule.VirtualKatana import KatanaFile as KatanaFile, LayeredMenuAPI as LayeredMenuAPI, Widgets as Widgets
from UI4.KatanaPrefs.KatanaPrefsObject import KatanaPrefs as KatanaPrefs
from UI4.Tabs.BaseTab import BaseTab as BaseTab
from UI4.Tabs.NodeGraphTab.Layers.NodeGraphViewInteractionLayer import RegisterNodeGraphViewKeyboardShortcuts as RegisterNodeGraphViewKeyboardShortcuts
from UI4.Tabs.NodeGraphTab.NodeBreadcrumbsFrame import NodeBreadcrumbsFrame as NodeBreadcrumbsFrame
from UI4.Tabs.NodeGraphTab.NodeFindPopupButton import NodeFindPopupButton as NodeFindPopupButton
from UI4.Tabs.NodeGraphTab.NodeGoUpButton import NodeGoUpButton as NodeGoUpButton
from UI4.Tabs.NodeGraphTab.NodeStateFilterFrame import NodeStateFilterFrame as NodeStateFilterFrame
from UI4.Tabs.NodeGraphTab.NodegraphWidget import NodegraphWidget as NodegraphWidget
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

UNSUPPORTED_MENU_ACTIONS_IN_NETWORK_MATERIAL: dict

class NodegraphPanel(BaseTab):
    _NodegraphPanel__clipboardMimeType: ClassVar[str] = ...
    _NodegraphPanel__kDuplicateShortcutID: ClassVar[str] = ...
    _NodegraphPanel__kDuplicateWithConnectionsShortcutID: ClassVar[str] = ...
    _NodegraphPanel__kToggleInputConnectionVisibleID: ClassVar[str] = ...
    _NodegraphPanel__kUnsupportedMenuActionsInLegacy: ClassVar[dict] = ...
    _NodegraphPanel__maxClipboardSize: ClassVar[int] = ...
    _NodegraphPanel__pixmaps: ClassVar[None] = ...
    currentNodeViewChanged: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, *args) -> None: ...
    @staticmethod
    def _NodegraphPanel__addLayeredMenus(): ...
    def _NodegraphPanel__alignSelected(self): ...
    def _NodegraphPanel__buildMenuBar(self): ...
    def _NodegraphPanel__clone(self): ...
    def _NodegraphPanel__collapseSelected(self): ...
    def _NodegraphPanel__collapseSelectedToStack(self): ...
    def _NodegraphPanel__copy(self, progressDialogTitle: str = ...) -> bool: ...
    def _NodegraphPanel__cut(self): ...
    def _NodegraphPanel__deleteNonContributors(self): ...
    def _NodegraphPanel__disableActions(self, actions: dict, names: Iterable): ...
    def _NodegraphPanel__duplicateSelectedNodes(self): ...
    def _NodegraphPanel__duplicateSelectedNodesWithConnections(self): ...
    def _NodegraphPanel__editSelected(self): ...
    def _NodegraphPanel__enableActions(self, actions: dict): ...
    def _NodegraphPanel__enterSelected(self): ...
    def _NodegraphPanel__esc(self): ...
    def _NodegraphPanel__explodeSelected(self): ...
    def _NodegraphPanel__extractSelected(self): ...
    def _NodegraphPanel__findNodesActionCallback(self): ...
    def _NodegraphPanel__fitBackdropNode(self): ...
    def _NodegraphPanel__getSelectedNodesBehaviours(self): ...
    def _NodegraphPanel__getTotalNumberOfNodes(self, nodes: list[NodegraphAPI.Node]) -> int: ...
    def _NodegraphPanel__goToRoot(self): ...
    def _NodegraphPanel__goUp(self): ...
    def _NodegraphPanel__isolateSelected(self): ...
    def _NodegraphPanel__loadResources(self): ...
    def _NodegraphPanel__lockBackdropNodes(self): ...
    def _NodegraphPanel__mergeSelectedNodes(self): ...
    def _NodegraphPanel__navigationToolbarCallback(self, nodeName: str, isBack: bool): ...
    def _NodegraphPanel__nodeDeleteHandler(self, eventType, eventID, node: NodegraphAPI.Node, *args, **kwargs): ...
    def _NodegraphPanel__node_setLocked_CB(self, args): ...
    def _NodegraphPanel__node_setViewed_CB(self, args): ...
    def _NodegraphPanel__on_colorsMenu_aboutToShow(self): ...
    def _NodegraphPanel__on_editMenu_aboutToShow(self): ...
    def _NodegraphPanel__on_goMenu_aboutToShow(self): ...
    def _NodegraphPanel__on_newMenu_aboutToShow(self): ...
    def _NodegraphPanel__on_viewMenu_aboutToShow(self): ...
    def _NodegraphPanel__paste(self): ...
    def _NodegraphPanel__preferencesCallback(self): ...
    def _NodegraphPanel__processUnfocusedKeyEvent(self, event): ...
    def _NodegraphPanel__setNodeViewHandler(self, _eventType, eventID, node: typing.Optional[NodegraphAPI.Node] = ...): ...
    def _NodegraphPanel__setPreferredViewOptions(self): ...
    def _NodegraphPanel__setRootNodeHandler(self, eventType, eventID, **kwargs): ...
    def _NodegraphPanel__stateLabelHandler(self, _eventType, eventID, text): ...
    def _NodegraphPanel__toggleAutoConnect(self): ...
    def _NodegraphPanel__toggleBypassOfSelected(self): ...
    def _NodegraphPanel__toggleDimNonContributing(self): ...
    def _NodegraphPanel__toggleDimUnconnected(self): ...
    def _NodegraphPanel__toggleErrorsFileIn(self): ...
    def _NodegraphPanel__toggleExpressionLinks(self): ...
    def _NodegraphPanel__toggleLowContrast(self): ...
    def _NodegraphPanel__toggleSelectedNodesInputConnectionVisibility(self): ...
    def _NodegraphPanel__toggleShowPagesConnectedOnly(self): ...
    def _NodegraphPanel__toggleSnapToGrid(self): ...
    def _NodegraphPanel__toggleTeleports(self): ...
    def _NodegraphPanel__toggleThumbnailOfSelected(self): ...
    def _NodegraphPanel__toggleUseColorFromInputPortForConnections(self): ...
    def _NodegraphPanel__toggleViewMasks(self): ...
    def _NodegraphPanel__unlockBackdropNodes(self): ...
    def _NodegraphPanel__updateLockStateMessage(self, node: NodegraphAPI.Node): ...
    def _NodegraphPanel__updateStatusDisplay(self): ...
    def _NodegraphPanel__viewSelected(self): ...
    def aboutToQuit(self): ...
    def closeEvent(self, event: PyQt5.QtGui.QCloseEvent): ...
    def copyPanel(self): ...
    def enableFloatingLayer(self): ...
    def event(self, event): ...
    def floatNodes(self, nodelist): ...
    def frameAll(self): ...
    def frameSelection(self, *args, **kwds): ...
    def getEnteredGroupNode(self) -> NodegraphAPI.GroupNode: ...
    def getMenuBar(self) -> PyQt5.QtWidgets.QMenuBar | None: ...
    def getNodeGraphWidget(self) -> NodegraphWidget: ...
    def getStateOverlayLabel(self): ...
    def goToNode(self, node: NodegraphAPI.Node): ...
    def prepareFloatingLayerWithPasteBounds(self, nodeList): ...
    @classmethod
    def registerKeyboardShortcuts(cls): ...
    def setCurrentNodeView(self, node: NodegraphAPI.Node): ...
    def update(self): ...

class _NodeStateOverlayLabel(PyQt5.QtWidgets.QLabel):
    def __init__(self, parent) -> None: ...

def CopyNodeColorToLinkColor(): ...
