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

import PyUtilModule.Decorators as Decorators
import PyFnAttribute as FnAttribute
import PyFnGeolib as FnGeolib
import UI4.FormMaster.GenericAssignParameterPolicy as GAPP_module
import PyUtilModule.Hints as Hints
import NodegraphAPI as NodegraphAPI
import Nodes3DAPI as Nodes3DAPI
import UI4.FormMaster.ParameterPolicy as ParameterPolicy
import PyFnAttribute
import PyFnGeolib
import PyQt5.QtCore
import PyQt5.QtCore as QtCore
import RenderingAPI as RenderingAPI
import UI4.FormMaster.ParameterPolicy
import Utils as Utils
import weakref
from UI4.FormMaster.ScalarParameterPolicy import ScalarParameterPolicy as ScalarParameterPolicy
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

renderer: str

class ClientIncomingValueSource(PyQt5.QtCore.QObject):
    _ClientIncomingValueSource__dummyAttr: ClassVar[PyFnAttribute.NullAttribute] = ...
    additionalUpdate: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    update: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, port: NodegraphAPI.Port, attrRoot) -> None: ...
    def _ClientIncomingValueSource__activate(self): ...
    def _ClientIncomingValueSource__computeActivationGraphState(self) -> NodegraphAPI.GraphState | None: ...
    def _ClientIncomingValueSource__deactivate(self): ...
    def _ClientIncomingValueSource__forceUpdate(self): ...
    def _ClientIncomingValueSource__getFallbackHints(self, attrPath): ...
    def _ClientIncomingValueSource__getFallbackValueAttr(self, attrPath): ...
    def _ClientIncomingValueSource__getSecondaryMergePorts(self, node: NodegraphAPI.Node): ...
    def _ClientIncomingValueSource__idle(self, *args, **kwds): ...
    def _ClientIncomingValueSource__initializeSecondaryMergeStateOps(self, txn: PyFnGeolib.GeolibRuntimeTransaction, hasSecondaryMerges: bool): ...
    def _ClientIncomingValueSource__secondaryPortsTerminalOpCallback(self, port: NodegraphAPI.Port, graphState: NodegraphAPI.GraphState, op: PyFnGeolib.GeolibRuntimeOp, txn: PyFnGeolib.GeolibRuntimeTransaction): ...
    def _ClientIncomingValueSource__terminalOpCallback(self, port: NodegraphAPI.Port, graphState: NodegraphAPI.GraphState, op, txn): ...
    def _appendToWrenchMenu(self, policy, attrPath, menu, pagePath: Incomplete | None = ...): ...
    def _closeButtonClicked(self, attrPath): ...
    def addListener(self): ...
    def delListener(self): ...
    def forceUpdate(self): ...
    def getAttrRoot(self): ...
    def getHints(self, attrPath): ...
    def getLocationAttrs(self): ...
    def getPageHints(self, attrPath, pagePath): ...
    def getPort(self) -> NodegraphAPI.Port: ...
    def getScope(self, attrPath): ...
    def getValueAttr(self, attrPath) -> PyFnAttribute.Attribute: ...
    def isCloseButtonEnabled(self, policy, attrPath): ...
    def shouldDisplayClose(self, policy, attrPath): ...
    def shouldDisplayWrench(self, policy, attrPath): ...
    def waitForReady(self): ...

class ConstraintEditPolicyDelegateGeolib3(Geolib3GenericAssignPolicyDelegate):
    def __init__(self, attrRoot, paramRoot: Incomplete | None = ...) -> None: ...
    def createPolicy(self, parentPolicy, param): ...

class Geolib3GenericAssignPolicyDelegate(UI4.FormMaster.ParameterPolicy.ParameterPolicyDelegate):
    _Geolib3GenericAssignPolicyDelegate__attrSourceCache: ClassVar[weakref.WeakValueDictionary] = ...
    def __init__(self, attrRoot, paramRoot: Incomplete | None = ...) -> None: ...
    def _setPolicyClass(self, policyClass): ...
    def createPolicy(self, parentPolicy, param, paths: type[NullValue] = ..., attributeValueSourceFactory: Incomplete | None = ...): ...
    @classmethod
    def getAttrSource(cls, port: NodegraphAPI.Port, attrRoot, attributeValueSourceFactory: Incomplete | None = ...): ...
    def getParamAttrPath(self, param): ...
    def getParamRoot(self): ...

class NullValue: ...

class OverrideGroupsPolicyDelegate(Geolib3GenericAssignPolicyDelegate):
    def createPolicy(self, parentPolicy, param): ...

class RenderOutputDefineOutputNameParameterPolicy(ScalarParameterPolicy):
    _RenderOutputDefineOutputNameParameterPolicy__help: ClassVar[str] = ...
    def __init__(self, param, parent, attrSource) -> None: ...
    def _RenderOutputDefineOutputNameParameterPolicy__sourceUpdate(self): ...
    def _freeze(self): ...
    def _thaw(self): ...
    def getWidgetHints(self): ...

class RenderOutputDefinePolicyDelegateGeolib3(Geolib3GenericAssignPolicyDelegate):
    def createPolicy(self, parentPolicy, param): ...

class RendererProceduralArgsPolicyDelegateGeolib3(Geolib3GenericAssignPolicyDelegate):
    def createPolicy(self, parentPolicy, param, paths: type[NullValue] = ...): ...
    def getParamAttrPath(self, param): ...

def _RegisterGenericAssignType(nodeTypeName, paramRoot, attrRoot): ...
