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

import PyFnGeolib as FnGeolib
import NodegraphAPI as NodegraphAPI
import Nodes3DAPI as Nodes3DAPI
import PyQt5.QtCore
import PyQt5.QtGui
import PyQt5.QtWidgets
import PyUtilModule.WorkingSet
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import Nodes3DAPI.ScenegraphManager as ScenegraphManager
import Utils as Utils
from PyUtilModule.WorkingSet import WorkingSet as WorkingSet
from PyUtilModule.WorkingSet.WorkingSet import State
from PyUtilModule.WorkingSetManager import WorkingSetManager as WorkingSetManager
from UI4.Widgets.ModalProcessInterruptWidget import ModalProcessInterruptWidget as ModalProcessInterruptWidget
from Utils.Decorators import deprecated as deprecated
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class WorkingSetClearStateAction(WorkingSetResetStateAction):
    def __init__(self, text, workingSetName, locationPaths: Incomplete | None = ..., clearGiven: bool = ..., parent: Incomplete | None = ...) -> None: ...

class WorkingSetContextMenu(PyQt5.QtWidgets.QMenu):
    _WorkingSetContextMenu__StateDisplayNames: ClassVar[dict] = ...
    _WorkingSetContextMenu__StateModifierStrings: ClassVar[dict] = ...
    _WorkingSetContextMenu__StatesAndKeyboardModifiers: ClassVar[tuple] = ...
    _WorkingSetContextMenu__StatesToModifierKeys: ClassVar[dict] = ...
    hasCustomActionPropertiesPropertyName: ClassVar[str] = ...
    def __init__(self, workingSetName: str, locationPathOrPaths: str | list[str], showMouseShortcuts: bool = ..., parent: Incomplete | None = ...) -> None: ...
    @classmethod
    def GetModifierKeyStringForState(cls, state: State) -> str | None: ...
    @classmethod
    def GetStateDisplayName(cls, text: str) -> str: ...
    @classmethod
    def GetStateForEventModifiers(cls, eventModifiers): ...
    @classmethod
    def GetStateForKeyboardModifiers(cls, keyboardModifiers: PyQt5.QtCore.Qt.KeyboardModifiers) -> PyUtilModule.WorkingSet.WorkingSet.State | None: ...

class WorkingSetExpandBranchAction(PyQt5.QtWidgets.QAction):
    def __init__(self, text: str, workingSetName: str, locationPaths: Incomplete | None = ..., parent: Incomplete | None = ...) -> None: ...
    def _WorkingSetExpandBranchAction__on_triggered(self): ...

class WorkingSetIconManager:
    StateByInheritanceSuffix: ClassVar[str] = ...
    StateChildExcludedSuffix: ClassVar[str] = ...
    StateChildIncludedSuffix: ClassVar[str] = ...
    StateDisabledSuffix: ClassVar[str] = ...
    StateEmptyPrefix: ClassVar[str] = ...
    StateExcludedPrefix: ClassVar[str] = ...
    StateIncludedPrefix: ClassVar[str] = ...
    StateLockedSuffix: ClassVar[str] = ...
    StateWithChildrenSuffix: ClassVar[str] = ...
    _WorkingSetIconManager__IconBase: ClassVar[str] = ...
    _WorkingSetIconManager__IconByInheritance: ClassVar[str] = ...
    _WorkingSetIconManager__IconCheckmark: ClassVar[str] = ...
    _WorkingSetIconManager__IconChildExcluded: ClassVar[str] = ...
    _WorkingSetIconManager__IconChildIncluded: ClassVar[str] = ...
    _WorkingSetIconManager__IconCross: ClassVar[str] = ...
    _WorkingSetIconManager__IconDisabled: ClassVar[str] = ...
    _WorkingSetIconManager__IconEmpty: ClassVar[str] = ...
    _WorkingSetIconManager__IconExcluded: ClassVar[str] = ...
    _WorkingSetIconManager__IconIncluded: ClassVar[str] = ...
    _WorkingSetIconManager__IconLocked: ClassVar[str] = ...
    _WorkingSetIconManager__IconPrefix: ClassVar[str] = ...
    _WorkingSetIconManager__IconWithChildren: ClassVar[str] = ...
    _WorkingSetIconManager__StateIcons: ClassVar[dict] = ...
    @classmethod
    def GetStateIcon(cls, stateName: str, resolution: Incomplete | None = ...) -> PyQt5.QtGui.QIcon | None: ...
    @classmethod
    def _WorkingSetIconManager__CreateCompositeStateIcon(cls, stateIconComponentNames: list[str], resolution: float | None) -> PyQt5.QtGui.QIcon | None: ...

class WorkingSetIncludeProxyChildren(PyQt5.QtWidgets.QDialog):
    def __init__(self, locationPaths: list, workingSetName: str) -> None: ...
    def _WorkingSetIncludeProxyChildren__cleanup(self): ...
    def _WorkingSetIncludeProxyChildren__idle(self): ...
    def _WorkingSetIncludeProxyChildren__includeLocationsToWorkingSet(self): ...

class WorkingSetResetStateAction(PyQt5.QtWidgets.QAction):
    def __init__(self, text: str, workingSetName: str, locationPaths: Incomplete | None = ..., resetBelow: bool = ..., parent: Incomplete | None = ...) -> None: ...
    def _WorkingSetResetStateAction__on_triggered(self): ...

class WorkingSetStateAction(PyQt5.QtWidgets.QAction):
    def __init__(self, state: State, locationPaths: list[str], workingSetName: str, icon: PyQt5.QtGui.QIcon, text: str, parent: QWidget) -> None: ...
    @classmethod
    def _WorkingSetStateAction__getActionObjectName(cls, state: State) -> str: ...
    def _WorkingSetStateAction__on_triggered(self): ...

class WorkingSetStateCheckableAction(WorkingSetStateAction):
    hasMouseShortcutPropertyName: ClassVar[str] = ...
    isPartiallyCheckedPropertyName: ClassVar[str] = ...
    def __init__(self, state: State, locationPaths: list[str], workingSetName: str, showMouseShortcut: bool, parent: QWidget) -> None: ...
    @classmethod
    def _WorkingSetStateCheckableAction__getActionTextAndIcon(cls, state: State, showMouseShortcut: bool) -> tuple[str, PyQt5.QtGui.QIcon] | Tuple[str, None]: ...
    def isPartiallyChecked(self) -> bool: ...
    def isPartiallyEnabled(self): ...
    def setPartiallyChecked(self, isPartiallyChecked: bool): ...
    def setPartiallyEnabled(self, isPartiallyEnabled): ...
