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

import NodegraphAPI as NodegraphAPI
import Nodes3DAPI as Nodes3DAPI
import UI4.FormMaster.ParameterPolicy as ParameterPolicy
import PyQt5.QtWidgets
import PyXmlIO as PyXmlIO
import QT4FormWidgets as QT4FormWidgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import Nodes3DAPI.ShadingNodeBase as ShadingNodeBase
import UI4 as UI4
import UI4.FormMaster.GenericAssignParameterPolicy_geolib3
import UI4.FormMaster.ParameterPolicy
from UI4.FormMaster.BaseParameterPolicy import BaseParameterPolicy as BaseParameterPolicy
from UI4.FormMaster.GenericAssignParameterPolicy import DataStoreAction as DataStoreAction, GenericAssignGroupParameterPolicy as GenericAssignGroupParameterPolicy, GenericAssignParameterPolicy as GenericAssignParameterPolicy
from UI4.FormMaster.GenericAssignParameterPolicy_geolib3 import Geolib3GenericAssignPolicyDelegate as Geolib3GenericAssignPolicyDelegate
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

g_labelClose: str
g_labelOpen: None
nodeType: str

class NetworkMaterialPolicyDelegate(UI4.FormMaster.ParameterPolicy.ParameterPolicyDelegate):
    def createPolicy(self, parentPolicy, param): ...

class NetworkMaterialPublicInterfacePolicy(BaseParameterPolicy):
    def __init__(self, param, parent, attrSource: Incomplete | None = ...) -> None: ...
    def _NetworkMaterialPublicInterfacePolicy__sourceUpdate(self): ...
    def _freeze(self): ...
    def _thaw(self): ...
    def getAttrSource(self): ...

class ParameterExposureDialog(PyQt5.QtWidgets.QDialog):
    _ParameterExposureDialog__pageNames: ClassVar[set] = ...
    def __init__(self, policy) -> None: ...
    def _ParameterExposureDialog__on_lineEdit_textChanged(self, text): ...
    @classmethod
    def addPageName(cls, pageName): ...
    def getRootPolicy(self): ...
    def showEvent(self, event): ...
    @classmethod
    def showForPolicy(cls, policy): ...

class ShadingNodePolicy(GenericAssignParameterPolicy):
    kDestinationHints: ClassVar[set] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def _ShadingNodePolicy__applyHintDifferences(self, hints, newHints, destHints): ...
    def _ShadingNodePolicy__createOrUpdateOrDeleteHintsParameter(self, oldHints, newHints): ...
    def _ShadingNodePolicy__editHelpText(self): ...
    def _ShadingNodePolicy__editWidgetOptions(self): ...
    def _ShadingNodePolicy__getDefaultInfoText(self, hints): ...
    def _ShadingNodePolicy__hintsValueChanged(self, event): ...
    def _ShadingNodePolicy__setCoPolicyDestinations(self, coPolicyPathDict, alteredCoPolicyPathDict, dstName, dstPage, dstLabel): ...
    def _ShadingNodePolicy__widgetTypeTriggered(self, action): ...
    def _appendToWrenchMenu(self, menu: PyQt5.QtWidgets.QMenu): ...
    def _customizeWrenchButton(self, wrenchButton: PyQt5.QtWidgets.QPushButton): ...
    def _getPublicHints(self) -> dict | None: ...
    def _getPublicHintsParam(self, create: bool = ...): ...
    def _handleTopologyChanged(self, args): ...
    def _isParameterExposed(self) -> bool: ...
    def _setDestinationNameAndPage(self, dstName, dstPage, adjustCoPolicies: bool = ..., dstLabel: Incomplete | None = ...): ...
    def getWidgetHints(self): ...
    def shouldDisplayWrench(self): ...

class ShadingNodePolicyDelegate(UI4.FormMaster.GenericAssignParameterPolicy_geolib3.Geolib3GenericAssignPolicyDelegate):
    def __init__(self, attrRoot: str = ..., paramRoot: Incomplete | None = ...) -> None: ...
    def getParamAttrPath(self, param): ...

def GetAppearanceInfoText(dstName: str, dstPage: str, dstLabel: str, defaultName: str) -> str: ...
def GetHighlightedText(text: str) -> str: ...
def GetLabelClose(): ...
def GetLabelOpen(): ...
