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

import NodeGraphView as NodeGraphView
import NodegraphAPI as NodegraphAPI
import QT4GLLayerStack as QT4GLLayerStack
import QT4GLLayerStack.LayerStack
import PyQt5.QtGui as QtGui
import UI4 as UI4
import Utils as Utils
from UI4.KatanaPrefs.KatanaPrefsObject import KatanaPrefs as KatanaPrefs
from typing import Set, Tuple

NODEGRAPH_DEFAULT_VIEWSTATE: str
NODEGRAPH_DIMNONCONTRIBUTINGNODES: str
NODEGRAPH_DIMUNCONNECTEDTOVIEWNODE: str
NODEGRAPH_GRIDSNAP: str
NODEGRAPH_NME_DIMDISCONNECTEDNODES: str
NODEGRAPH_NME_DIMEDITEDNODES: str
NODEGRAPH_NME_DIMNEWNODES: str
NODEGRAPH_NME_DIMUNCHANGEDNODES: str
NODEGRAPH_SHOWPAGESCONNECTEDONLY: str
NODEGRAPH_USE_COLOR_FROM_INPUT_PORT_FOR_CONNECTIONS: str
__NODE_TYPES_PARAM_CHANGE_UPDATES_DIM: tuple

class NodeGraphViewStateLayer(QT4GLLayerStack.LayerStack.Layer):
    def __init__(self, *args, **kwargs) -> None: ...
    def _NodeGraphViewStateLayer__node_cleanUpShapeAttrs_cb(self, eventType, eventID, node: NodegraphAPI.Node, **kwargs): ...
    def _NodeGraphViewStateLayer__node_create_cb(self, eventType, eventID, node: NodegraphAPI.Node, **kwargs): ...
    def _NodeGraphViewStateLayer__node_delete_cb(self, eventType, eventID, node: NodegraphAPI.Node, *args, **kwargs): ...
    def _NodeGraphViewStateLayer__node_setParent_cb(self, eventType, eventID, node: NodegraphAPI.Node, *args, **kwargs): ...
    def _NodeGraphViewStateLayer__node_setShapeAttributes_cb(self, eventType, eventID, node: NodegraphAPI.Node, **kwargs): ...
    def _NodeGraphViewStateLayer__node_setState_cb(self, eventType, eventID, node: NodegraphAPI.Node, **kwargs): ...
    def _NodeGraphViewStateLayer__node_setViewed_cb(self, eventType, eventID, node: NodegraphAPI.Node, **kwargs): ...
    def _NodeGraphViewStateLayer__node_shapeAttrsChanged_cb(self, eventType, eventID, nodeName, oldAttrs, newAttrs, **kwargs): ...
    def _NodeGraphViewStateLayer__onNetworkMaterialEditUpdated(self, eventData): ...
    def _NodeGraphViewStateLayer__on_event_idle(self, *args, **kwargs): ...
    def _NodeGraphViewStateLayer__on_node_setFloating(self, _eventType, _eventID, node: NodegraphAPI.Node): ...
    def _NodeGraphViewStateLayer__on_nodegraph_setCurrentTimeIntermediate(self, eventType: str | None, eventID: object, currentTime: float): ...
    def _NodeGraphViewStateLayer__parameter_finalizeValue_cb(self, args): ...
    def _NodeGraphViewStateLayer__port_setState_cb(self, eventType, eventID, **kwargs): ...
    def _NodeGraphViewStateLayer__registerDirtyCallbacks(self, enabled): ...
    def _NodeGraphViewStateLayer__updateNodeDimming(self): ...
    def idleUpdate(self): ...
    def setBasePosition(self, pos): ...
    def setEnabled(self, enabled): ...

def _nodeCanChangeGraphstate(node: Node3D) -> bool: ...
