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

import PyFnAttribute as FnAttribute
import NodegraphAPI as NodegraphAPI
import PackageSuperToolAPI.Packages
import PackageSuperToolAPI.Policies as Policies
import PyQt5.QtCore
import QT4FormWidgets
import PyQt5.QtCore as QtCore
import Utils as Utils
from PackageSuperToolAPI.UIDelegate import UIDelegate as UIDelegate
from Utils.Decorators import deprecated as deprecated
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class EditUIDelegate(UIDelegate):
    def __init__(self, package: Incomplete | None = ..., locationPath: Incomplete | None = ...) -> None: ...
    def _EditUIDelegate__switchToParameterPolicy(self, potentialParameterProxyPolicy): ...
    def getLocationPath(self): ...
    def initPotentialParameterPolicy(self, parentPolicy: ValuePolicy, attrName: str): ...
    def isAdopted(self) -> bool: ...
    def setAdopted(self, package): ...
    def setNotAdopted(self, locationAttributes): ...
    def updateAttributes(self, locationAttributes): ...

class UIDelegate(PyQt5.QtCore.QObject):
    AddPackageActionHash: ClassVar[None] = ...
    DefaultShortcut: ClassVar[None] = ...
    def __init__(self, package: object) -> None: ...
    @classmethod
    def getKeyboardShortcuts(cls) -> None: ...
    def getMenuActions(self) -> list[tuple[str, str, bool]]: ...
    def getPackage(self) -> PackageSuperToolAPI.Packages.Package: ...
    def getPackageNode(self) -> NodegraphAPI.Node: ...
    def getReferencedNode(self, paramName: str) -> NodegraphAPI.Node | None: ...
    def getTabPolicy(self, tabName: str) -> QT4FormWidgets.AbstractValuePolicy | None: ...

def CreateUIDelegate(package: object) -> UIDelegate: ...
def GetDelegateClassForPackageClass(packageClass): ...
def GetUIDelegate(package): ...
def GetUIDelegateClassForPackageClass(packageClass: type) -> type: ...
def RegisterUIDelegate(packageClass, uiDelegateClass): ...
def RegisterUIDelegateClass(packageClass: type, uiDelegateClass: type): ...
