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

import PyFnAttribute as FnAttribute
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
import UI4 as UI4
import UI4.Widgets.SceneGraphView.TreeWidgetItems
import Utils as Utils
from PyUtilModule.VirtualKatana import Widgets as Widgets
from UI4.Widgets.SceneGraphView.SceneGraphHandle import SceneGraphHandle as SceneGraphHandle
from UI4.Widgets.SceneGraphView.TreeWidgetItems import AttributeDataTreeWidgetItem as AttributeDataTreeWidgetItem
from typing import ClassVar, Set, Tuple

class AltErrorMessageItem(MessageItem):
    AttributeName: ClassVar[str] = ...
    LocationType: ClassVar[str] = ...

class CollectionItem(SceneGraphAttributeDataItem):
    AttributeName: ClassVar[str] = ...
    LocationType: ClassVar[str] = ...
    def __init__(self, parent, handle, topLevelHandle) -> None: ...
    @classmethod
    def ConfigureDrag(cls, draggedItems, dragObject): ...
    @classmethod
    def CreateContextMenu(cls, clickedItem, selectedItems): ...
    def _CollectionItem__getCollectionPath(self): ...
    def getCollectionInfo(self): ...
    def setCollectionInfo(self, collectionName, celStatement, collectionRoot): ...
    def updateChildIndicator(self): ...
    def updateDisplayData(self): ...

class CollectionsRootItem(SceneGraphAttributeDataItem):
    AttributeName: ClassVar[str] = ...
    LocationType: ClassVar[str] = ...
    def __init__(self, parent, handle, topLevelHandle) -> None: ...
    @classmethod
    def ConfigureDrag(cls, draggedItems, dragObject): ...
    def updateChildIndicator(self): ...
    def updateDisplayData(self): ...

class ErrorMessageItem(MessageItem):
    AttributeName: ClassVar[str] = ...
    LocationType: ClassVar[str] = ...

class MessageItem(SceneGraphAttributeDataItem):
    AttributeName: ClassVar[None] = ...
    LocationType: ClassVar[None] = ...
    StateChangedCallback: ClassVar[None] = ...
    _MessageItemWeakRefs: ClassVar[None] = ...
    def __init__(self, parent, handle, topLevelHandle) -> None: ...
    @classmethod
    def GetMessageItemWeakRefs(cls): ...
    @classmethod
    def SetStateChangedCallback(cls, callback): ...
    @classmethod
    def _MessageItem__callStateChangedCallback(cls): ...
    def getSortID(self): ...
    def isDraggable(self): ...
    def message(self): ...
    def updateDisplayData(self): ...
    def __del__(self) -> None: ...

class SceneGraphAttributeDataItem(UI4.Widgets.SceneGraphView.TreeWidgetItems.AttributeDataTreeWidgetItem):
    def getSortID(self): ...
    def shouldDrawGreyForeground(self): ...

class WarningMessageItem(MessageItem):
    AttributeName: ClassVar[str] = ...
    LocationType: ClassVar[str] = ...
