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

import QT4FormWidgets as FW
import PyFnAttribute as FnAttribute
import PyUtilModule.Hints as Hints
import Naming as Naming
import PyFnAttribute
import PyFnGeolib
import PyQt5.QtCore
import PyQt5.QtWidgets
import QT4FormWidgets.ValuePolicy
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import UI4 as UI4
import Utils as Utils
from UI4.Widgets.AttributeHistoryWidgets import AddAttributeHistoryActionsToMenu as AddAttributeHistoryActionsToMenu
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class AttrStates:
    DEFAULT: ClassVar[int] = ...
    DEFAULT_REFERENCE: ClassVar[int] = ...
    GLOBAL: ClassVar[int] = ...
    GLOBAL_DEFAULT_REFERENCE: ClassVar[int] = ...
    LOCAL: ClassVar[int] = ...

class AttributePolicy(QT4FormWidgets.ValuePolicy.AbstractValuePolicy):
    _AttributePolicy__appearances: ClassVar[dict] = ...
    _AttributePolicy__defaultReferenceAppearance: ClassVar[tuple] = ...
    _AttributePolicy__defaultState: ClassVar[set] = ...
    _AttributePolicy__globalState: ClassVar[set] = ...
    _AttributePolicy__localState: ClassVar[set] = ...
    _AttributePolicy__stateLabels: ClassVar[dict] = ...
    def __init__(self, parent, name, attr, index: Incomplete | None = ..., metadataDict: Incomplete | None = ..., pageEntry: Incomplete | None = ..., locationPath: Incomplete | None = ..., sourceOp: Incomplete | None = ...) -> None: ...
    def _AttributePolicy__getType(self, attr, index: Incomplete | None = ...): ...
    def _AttributePolicy__getWidgetHints(self, metadataDict): ...
    def _appendToStateMenu(self, menu: PyQt5.QtWidgets.QMenu) -> bool: ...
    def _buildChildren(self, attr, metadataDict, pageEntry): ...
    def _getAttr(self): ...
    def _getChildren(self): ...
    def _isPage(self): ...
    def _replaceAttr(self, attr, name: Incomplete | None = ..., metadataDict: Incomplete | None = ..., locationPath: Incomplete | None = ...): ...
    def getArrayChild(self, index): ...
    def getArraySize(self): ...
    def getAttrName(self): ...
    def getAttribute(self) -> PyFnAttribute.Attribute: ...
    def getAttributeTypeName(self) -> str: ...
    def getChildByName(self, name): ...
    def getChildren(self): ...
    def getCoPolicyPathDict(self): ...
    def getMimeData(self) -> PyQt5.QtCore.QMimeData: ...
    def getName(self): ...
    def getNumChildren(self): ...
    def getSceneGraphLocationPath(self) -> str | None: ...
    def getSourceOp(self) -> PyFnGeolib.GeolibRuntimeOp | None: ...
    def getStateAppearance(self, state): ...
    def getStateToolTip(self, state): ...
    def getTooltip(self): ...
    def getType(self): ...
    def getValue(self): ...
    def getValueState(self): ...
    def getWidgetHints(self): ...
    def isLocked(self): ...
    def setSceneGraphLocationPath(self, locationPath: str | None): ...
    def setSourceOp(self, sourceOp: PyFnGeolib.GeolibRuntimeOp | None): ...
    def shouldDisplayState(self): ...

def GetPolicyFromLocationAttrs(locationAttrs, attrPath: Incomplete | None = ...): ...
