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

import PyFnAttribute as FnAttribute
import NodegraphAPI as NodegraphAPI
import PackageSuperToolAPI.Packages
import PyFnAttribute
import PyXmlIO
import QT4FormWidgets as QT4FormWidgets
import QT4FormWidgets.ValuePolicy
import Utils as Utils
import typing
from PyUtilModule.VirtualKatana import FormMaster as FormMaster
from _typeshed import Incomplete
from typing import Any, Callable, Set, Tuple

class DeferredNodeBypassPolicy(QT4FormWidgets.ValuePolicy.AbstractValuePolicy):
    def __init__(self, parent: QT4FormWidgets.AbstractValuePolicy, nodeType: str, policyName: str, checkboxText: str, policyTitle: str, package: PackageSuperToolAPI.Packages.Package, parameterNames: list[str], parameterPolicyConstructor: Callable = ..., newPolicyCreatedCallback: typing.Optional[typing.Callable] = ...) -> None: ...
    def _DeferredNodeBypassPolicy__on_node_create(self, eventType: str | None, eventID: object, node: NodegraphAPI.Node, nodeType: str, nodeName: str): ...
    def _DeferredNodeBypassPolicy__on_node_delete(self, eventType: str | None, eventID: object, node: NodegraphAPI.Node, oldName: str): ...
    def _DeferredNodeBypassPolicy__on_node_setBypassed(self, eventType: str | None, eventID: object, node: NodegraphAPI.Node, **kwargs): ...
    def _DeferredNodeBypassPolicy__setNode(self, node: NodegraphAPI.Node | None): ...
    def _DeferredNodeBypassPolicy__setValue(self, value: bool, final: bool = ...): ...
    def _DeferredNodeBypassPolicy__updateParameterPolicy(self): ...
    def addChildPolicy(self, policy: QT4FormWidgets.AbstractValuePolicy): ...
    def getChildByName(self, name) -> QT4FormWidgets.AbstractValuePolicy | None: ...
    def getChildren(self) -> list[QT4FormWidgets.AbstractValuePolicy]: ...
    def getName(self) -> str: ...
    def getNumChildren(self) -> int: ...
    def getType(self) -> str: ...
    def getValue(self) -> float: ...
    def getWidgetHints(self) -> dict[str, Any]: ...
    def isLocked(self) -> bool: ...
    def setValue(self, value: float, final: bool = ...) -> bool: ...

class DeferredParameterCreatePolicy(QT4FormWidgets.ValuePolicy.AbstractValuePolicy):
    def __init__(self, parent: QT4FormWidgets.AbstractValuePolicy, node: NodegraphAPI.Node, checkboxText: str, package: PackageSuperToolAPI.Packages.Package, getterCallback: typing.Callable, setterCallback: typing.Callable, exposedParameterName: str, monitoredParameterNames: Incomplete | None = ...) -> None: ...
    def _DeferredParameterCreatePolicy__createParameterPolicy(self): ...
    def _DeferredParameterCreatePolicy__on_parameter_createChild(self, eventType: str | None, eventID: object, param: NodegraphAPI.Parameter, paramName: str, node: NodegraphAPI.Node, childParam: NodegraphAPI.Parameter, element: PyXmlIO.Element, index: int): ...
    def _DeferredParameterCreatePolicy__on_parameter_deleteChild(self, eventType: str | None, eventID: object, param: NodegraphAPI.Parameter, paramName: str, node: NodegraphAPI.Node, childParam: NodegraphAPI.Parameter, element: PyXmlIO.Element, childName, index: int): ...
    def _DeferredParameterCreatePolicy__updateValue(self, value: Incomplete | None = ..., final: bool = ...): ...
    def addChildPolicy(self, policy: QT4FormWidgets.AbstractValuePolicy): ...
    def getChildByName(self, name) -> QT4FormWidgets.AbstractValuePolicy | None: ...
    def getChildren(self) -> list[QT4FormWidgets.AbstractValuePolicy]: ...
    def getName(self) -> str: ...
    def getNumChildren(self) -> int: ...
    def getType(self) -> str: ...
    def getValue(self) -> float: ...
    def getWidgetHints(self) -> dict[str, Any]: ...
    def isLocked(self) -> bool: ...
    def removeChildPolicy(self, policy: QT4FormWidgets.AbstractValuePolicy): ...
    def setValue(self, value: float, final: bool = ...) -> bool: ...

class ParentProxyValuePolicy(QT4FormWidgets.ValuePolicy.AbstractValuePolicy):
    def __init__(self, parent: QT4FormWidgets.AbstractValuePolicy, name: str) -> None: ...
    def getName(self) -> str: ...
    def getType(self) -> str: ...
    def getValue(self) -> Any: ...
    def getWidgetHints(self) -> dict[str, Any]: ...
    def isLocked(self) -> bool: ...
    def setValue(self, value: float, final: bool = ...) -> bool: ...

class PotentialParameterProxyPolicy(QT4FormWidgets.ValuePolicy.ValuePolicyProxy):
    def __init__(self, parent: ValuePolicy, attrName: str) -> None: ...
    def _PotentialParameterProxyPolicy__getMetadataDict(self, locationAttributes: PyFnAttribute.GroupAttribute) -> dict: ...
    def getAttrName(self) -> str: ...
    def getName(self) -> str: ...
    def getParent(self) -> ValuePolicy: ...
    def switchToAttributePolicy(self, locationAttributes: PyFnAttribute.GroupAttribute): ...
    def switchToParameterPolicy(self, parameter: NodegraphAPI.Node3D): ...
    def updateAttribute(self, locationAttributes: PyFnAttribute.GroupAttribute): ...

def DefaultParameterPolicyConstructor(package: PackageSuperToolAPI.Packages.Package, parentPolicy: QT4FormWidgets.ParameterPolicy, name: str, parameter: NodegraphAPI.Parameter) -> QT4FormWidgets.ParameterPolicy: ...
