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

import DrawingModule as DrawingModule
import NodegraphAPI as NodegraphAPI
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 UI4 as UI4
import Utils as Utils
from UI4.KatanaPrefs.KatanaPrefsObject import KatanaPrefs as KatanaPrefs
from _typeshed import Incomplete
from typing import Set, Tuple

GRIDSIZEX: int
GRIDSIZEY: int

class FloatingNodeLayer(QT4GLLayerStack.LayerStack.Layer):
    def __init__(self, *args, **kwargs) -> None: ...
    def NodeDelete(self, node: NodegraphAPI.Node): ...
    def _FloatingNodeLayer__activeNodeHasDynamicInputs(self): ...
    def _FloatingNodeLayer__dropNodes(self): ...
    def _FloatingNodeLayer__findPhysicallyConnectedNodesForNode(self, node: NodegraphAPI.Node, inputPorts: bool = ..., maxDistance: int = ..., resultDict: Incomplete | None = ...): ...
    def _FloatingNodeLayer__getPortDistance(self, portA, portB): ...
    def _FloatingNodeLayer__hitTestPort(self, mousePoint): ...
    def _FloatingNodeLayer__nextActiveInputPort(self): ...
    def _FloatingNodeLayer__nextActiveOutputPort(self): ...
    def _FloatingNodeLayer__nodeFloatHandler(self, eventType, eventID, node: NodegraphAPI.Node, **kwargs): ...
    def _FloatingNodeLayer__node_delete_cb(self, eventType, eventID, node: NodegraphAPI.Node, *args, **kwargs): ...
    def _FloatingNodeLayer__processKeyPress(self, event): ...
    def _FloatingNodeLayer__processMouseButtonPress(self, event): ...
    def _FloatingNodeLayer__processMouseButtonRelease(self, event): ...
    def _FloatingNodeLayer__record_newNode_Undo(self, node: NodegraphAPI.Node): ...
    def paintGL(self): ...
    def processEvent(self, event): ...
    def setBasePosition(self, pos): ...

def IsNodeAutoConnectable(node: NodegraphAPI.Node): ...
def IsPortAutoConnectable(port: NodegraphAPI.Port): ...
