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

import AssetAPI as AssetAPI
import PyUtilModule.Documentation as Documentation
import UI4.FormMaster.HintsDelegate as HintsDelegate
import UI4.FormMaster.NodeActionDelegate as NodeActionDelegate
import NodegraphAPI as NodegraphAPI
import UI4.KatanaPrefs.PrefNames as PrefNames
import PyFCurve as PyFCurve
import PyQt5.QtCore
import QT4FormWidgets as QT4FormWidgets
import QT4FormWidgets.ValuePolicy
import UI4.FormMaster.States as States
import PyUtilModule.UserNodes as UserNodes
import Utils as Utils
from UI4.KatanaPrefs.KatanaPrefsObject import Prefs as Prefs
from typing import Set, Tuple

class BaseParameterPolicy(QT4FormWidgets.ValuePolicy.AbstractValuePolicy):
    def __init__(self, param, parent) -> None: ...
    def _BaseParameterPolicy__applyToGroups(self, param, action): ...
    def _BaseParameterPolicy__getExtensionForNode(self, node: NodegraphAPI.Node): ...
    def _BaseParameterPolicy__getUserParametersEditState(self): ...
    def _BaseParameterPolicy__parameter_showKeys_callback(self, args): ...
    def _BaseParameterPolicy__removeHint(self, param): ...
    def _BaseParameterPolicy__resetParameters(self): ...
    def _BaseParameterPolicy__saveAndPublishMacro(self, node: NodegraphAPI.Node, filePathOrAssetId, extraOptions: dict = ...): ...
    def _BaseParameterPolicy__saveAsMacro(self): ...
    def _BaseParameterPolicy__setHint(self, param): ...
    def _BaseParameterPolicy__setUpEventHandlers(self, enable): ...
    def _BaseParameterPolicy__toggleNodeInputConnectionVisibility(self): ...
    def _BaseParameterPolicy__toggleShowHiddenParams(self): ...
    def _BaseParameterPolicy__toggleUserParameterState(self): ...
    def _BaseParameterPolicy__writeMacroFile(self, node: NodegraphAPI.Node, filename, createFoldersRecursively: bool = ...): ...
    def _appendToWrenchMenu(self, menu): ...
    def _cleanUpExpression(self, rawExpr): ...
    def _freeze(self): ...
    def _hintsChanged(self): ...
    def _thaw(self): ...
    def canHaveExpression(self): ...
    def getCurveXml(self): ...
    def getExpression(self): ...
    def getExpressionError(self): ...
    def getExpressionNamespace(self): ...
    def getExpressionReference(self): ...
    def getMimeData(self) -> PyQt5.QtCore.QMimeData: ...
    def getName(self): ...
    def getNode(self) -> NodegraphAPI.Node: ...
    def getNumChildren(self): ...
    def getParameter(self): ...
    def getSceneGraphLocationPath(self) -> str | None: ...
    def getStateAppearance(self, state): ...
    def getTooltip(self): ...
    def getType(self): ...
    def getWidgetHints(self): ...
    def isExpressionEnabled(self): ...
    def isGroupParameterBeingEdited(self): ...
    def isLocked(self): ...
    def isValid(self) -> bool: ...
    def setCurveXml(self, xml): ...
    def setExpression(self, expr): ...
    def setExpressionEnabled(self, flag): ...
    def setMimeData(self, mimeData, dropAction): ...
    def shouldDisplayWrench(self): ...
