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

import NodegraphAPI.BypassParameterManager as BypassParameterManager
import DrawingModule as DrawingModule
import NodegraphAPI as NodegraphAPI
import Nodes2DAPI as Nodes2DAPI
import UI4.KatanaPrefs.PrefNames as PrefNames
import QT4GLLayerStack as QT4GLLayerStack
import QT4GLLayerStack.LayerStack
import QT4Widgets as QT4Widgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import UI4 as UI4
import Utils as Utils
from PyUtilModule.VirtualKatana import RenderManager as RenderManager
from UI4.KatanaPrefs.KatanaPrefsObject import KatanaPrefs as KatanaPrefs
from UI4.Tabs.NodeGraphTab.Layers.BandSelectionLayer import BandSelectionLayer as BandSelectionLayer
from UI4.Tabs.NodeGraphTab.Layers.BookmarkJumpMenuLayer import BookmarkJumpMenuLayer as BookmarkJumpMenuLayer
from UI4.Tabs.NodeGraphTab.Layers.CustomMenuLayer import CustomMenuLayer as CustomMenuLayer
from UI4.Tabs.NodeGraphTab.Layers.LinkConnectionLayer import LinkConnectionLayer as LinkConnectionLayer
from UI4.Tabs.NodeGraphTab.Layers.NodeCreationMenuLayer import NodeCreationMenuLayer as NodeCreationMenuLayer
from UI4.Widgets.NodePopupMenu import NodePopupMenu as NodePopupMenu
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

EDIT_VIEW_NODETYPE_EXCLUSIONS: list
RENAME_NODETYPE_EXCLUSIONS: list

class NodeInteractionLayer(QT4GLLayerStack.LayerStack.Layer):
    _NodeInteractionLayer__pixmaps: ClassVar[dict] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def _NodeInteractionLayer__buildNodeMenu(self, node: NodegraphAPI.Node, port: NodegraphAPI.Port, *args): ...
    def _NodeInteractionLayer__createDotNode(self) -> bool: ...
    def _NodeInteractionLayer__deleteNodes(self, nodeList): ...
    def _NodeInteractionLayer__getFocusedGroupNode(self): ...
    def _NodeInteractionLayer__isDisplayedAsDot(self, node: NodegraphAPI.Node) -> bool: ...
    def _NodeInteractionLayer__launchNodeCreationMenuLayer(self, replacedNode: Incomplete | None = ...): ...
    def _NodeInteractionLayer__nodeDeleteHandler(self, eventType, eventID, node: NodegraphAPI.Node, *args, **kwargs): ...
    def _NodeInteractionLayer__nodePickerLayerFinished(self, createdNodes, replacedNode: Incomplete | None = ...): ...
    def _NodeInteractionLayer__populateEntries(self): ...
    def _NodeInteractionLayer__processKeyPress(self, event): ...
    def _NodeInteractionLayer__processMouseButtonDblClick(self, event): ...
    def _NodeInteractionLayer__processMouseButtonPress(self, event): ...
    def _NodeInteractionLayer__processMouseButtonRelease(self, event): ...
    def _NodeInteractionLayer__processMouseMove(self, event): ...
    def _NodeInteractionLayer__renameNode(self, node: NodegraphAPI.Node) -> bool: ...
    def _NodeInteractionLayer__startNodeDrag(self, node: NodegraphAPI.Node): ...
    def _createBreakoutNode(self): ...
    def _on_nodegraph_registerType(self, eventType: str | None, eventID: object, type: str): ...
    def frameSelection(self, zoom: bool = ...): ...
    def processEvent(self, event): ...
    def showJumpToBookmark(self): ...
    def showLayeredMenu(self, menu): ...
    def startDrag(self): ...

def _GetTopMostBackdropNodeFromHitList(hitList): ...
