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

import PyQt5.QtCore
import PyQt5.QtGui
import PyQt5.QtWidgets
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
import UI4.Widgets.SceneGraphView.Bridge
from UI4.Widgets.SceneGraphView.ItemDelegates.BaseItemDelegate import BaseItemDelegate as BaseItemDelegate
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class StateItemDelegate(StateItemDelegateMixin, BaseItemDelegate):
    def __init__(self, bridge: Bridge[UI4.Widgets.SceneGraphView.Bridge.Bridge], treeWidget: PyQt5.QtWidgets.QTreeWidget, parent: Incomplete | None = ...) -> None: ...
    def initStyleOption(self, option: PyQt5.QtWidgets.QStyleOptionViewItem, index: PyQt5.QtCore.QModelIndex): ...

class StateItemDelegateMixin:
    DefaultColumnWidth: ClassVar[int] = ...
    def __init__(self, bridge: Bridge[UI4.Widgets.SceneGraphView.Bridge.Bridge], treeWidget: PyQt5.QtWidgets.QTreeWidget, parent: Incomplete | None = ...) -> None: ...
    def _updateColumnSize(self): ...
    def addState(self, name: str, icon: Incomplete | None = ..., text: Incomplete | None = ...): ...
    def calculateItemState(self, option, index): ...
    def canChangeSelection(self, index: PyQt5.QtCore.QModelIndex, event: PyQt5.QtCore.QEvent) -> bool: ...
    def editorEvent(self, event: PyQt5.QtCore.QEvent, itemModel: PyQt5.QtCore.QAbstractItemModel, option: PyQt5.QtWidgets.QStyleOptionViewItem, index: PyQt5.QtCore.QModelIndex) -> bool: ...
    def getItemStates(self): ...
    def initStyleOption(self, option: PyQt5.QtWidgets.QStyleOptionViewItem, index: PyQt5.QtCore.QModelIndex): ...
    def isValidState(self, name: str) -> bool: ...
    def modifyItemState(self, item: PyQt5.QtWidgets.QTreeWidgetItem, index: PyQt5.QtCore.QModelIndex, event: PyQt5.QtGui.QMouseEvent) -> bool: ...
    def removeState(self, name: str): ...
    def setItemState(self, state: str, locationPath: str): ...
