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

import HydraViewer.ManipulatorManager
import UI4.Widgets.LightingToolsLayer.LightingToolsUtils as LightingToolsUtils
import PyQt5.QtCore
import PyQt5.QtGui
import PyQt5.QtWidgets
import RenderingAPI.RenderPlugins as RenderPlugins
import UI4.Util.ScenegraphIconManager as ScenegraphIconManager
import UI4 as UI4
import QT4Widgets.WidgetUtils as WidgetUtils
from PyUtilModule.VirtualKatana import QtCore as QtCore, QtGui as QtGui, QtWidgets as QtWidgets
from UI4.Widgets.DropdownArrowButton import DropdownArrowButton as DropdownArrowButton
from UI4.Widgets.ToolbarButton import ToolbarButton as ToolbarButton
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class LightPackagesGroup(PyQt5.QtWidgets.QWidget):
    kButtonPadding: ClassVar[tuple] = ...
    triggered: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, rendererPluginName, rendererDisplayName, buttonGroup, lights, parent: Incomplete | None = ...) -> None: ...
    def buttons(self) -> list[PyQt5.QtWidgets.QAbstractButton]: ...

class LightPackagesMenu(PyQt5.QtWidgets.QWidget):
    aboutToHide: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    rebuilt: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    triggered: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, parent: Incomplete | None = ...) -> None: ...
    def _LightPackagesMenu__createCloneButtons(self): ...
    def _LightPackagesMenu__createGearButton(self): ...
    def _LightPackagesMenu__createGearMenu(self): ...
    def _LightPackagesMenu__createPackageGroup(self, pluginName: str, displayName: str): ...
    def _LightPackagesMenu__createPlaceholderText(self, text: str) -> PyQt5.QtWidgets.QLabel: ...
    def _LightPackagesMenu__getEnabledRenderers(self) -> list[None]: ...
    def _LightPackagesMenu__onCloneButtonToggled(self, checked: bool): ...
    def _LightPackagesMenu__onGearButtonClicked(self, *args): ...
    def _LightPackagesMenu__onGearCheckBoxToggled(self, pluginName: str, enabled: bool): ...
    def _LightPackagesMenu__onLightPackageGroupTriggered(self, packageButton: PyQt5.QtWidgets.QAbstractButton): ...
    def _LightPackagesMenu__rebuildCloneButtonLayout(self, useHorizontal: bool): ...
    def _LightPackagesMenu__selectFirstPackageForGroup(self, targetPluginName: str): ...
    def _LightPackagesMenu__selectPackageButton(self, packageButton: PyQt5.QtWidgets.QAbstractButton, enabled: bool): ...
    def closeEvent(self, event: PyQt5.QtGui.QCloseEvent): ...
    def getSelectedPackageInfo(self) -> None: ...
    def mouseMoveEvent(self, mouseEvent: PyQt5.QtGui.QMouseEvent): ...
    def mouseReleaseEvent(self, mouseEvent: PyQt5.QtGui.QMouseEvent): ...
    def popup(self, point: PyQt5.QtCore.Qt.QPoint): ...
    def resizeEvent(self, event: PyQt5.QtGui.QResizeEvent): ...

class LightingToolsToolBar(PyQt5.QtWidgets.QToolBar):
    class MenuEntry:
        def __init__(self, text, iconStem) -> None: ...
    kDefaultLightingModeIndex: ClassVar[int] = ...
    kLightingModes: ClassVar[list] = ...
    triggered: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, tab, manipulatorManager, height) -> None: ...
    @staticmethod
    def _LightingToolsToolBar__computeMenuPosition(menu: PyQt5.QtWidgets.QMenu, widget: PyQt5.QtWidgets.QWidget) -> PyQt5.QtCore.QPoint: ...
    def _LightingToolsToolBar__createDropdownButton(self, height: int) -> LightingToolsDropdownButton: ...
    def _LightingToolsToolBar__createLightPackagesButton(self, height: int) -> PyQt5.QtWidgets.QToolButton: ...
    def _LightingToolsToolBar__createLightPackagesMenu(self) -> PyQt5.QtWidgets.QMenu: ...
    def _LightingToolsToolBar__createLightingModeButton(self, height: int) -> ToolbarButton: ...
    def _LightingToolsToolBar__createLightingModeIcon(self, menuEntry: MenuEntry) -> PyQt5.QtWidgets.QIcon: ...
    def _LightingToolsToolBar__createLightingModeMenu(self) -> PyQt5.QtWidgets.QMenu: ...
    def _LightingToolsToolBar__emitChanges(self): ...
    def _LightingToolsToolBar__getDefaultLightingModeAction(self) -> PyQt5.QtWidgets.QAction: ...
    def _LightingToolsToolBar__getLightingModePixmaps(self, menuEntry: MenuEntry) -> None: ...
    def _LightingToolsToolBar__getManipulator(self) -> HydraViewer.ManipulatorManager.Manipulator: ...
    def _LightingToolsToolBar__onLightPackageChanged(self, packageButton): ...
    def _LightingToolsToolBar__onLightPackageMenuRebuilt(self): ...
    def _LightingToolsToolBar__onLightingModeChanged(self, action: PyQt5.QtWidgets.QAction): ...
    def _LightingToolsToolBar__onLightingModeToggled(self, enabled: bool, modeAction: PyQt5.QtWidgets.QAction): ...
    def _LightingToolsToolBar__onManipulatorToggled(self, enabled: bool): ...
    @staticmethod
    def _LightingToolsToolBar__showMenu(menu: PyQt5.QtWidgets.QMenu, widget: PyQt5.QtWidgets.QWidget): ...
    def _LightingToolsToolBar__syncButtonState(self): ...
    def _LightingToolsToolBar__updateToolTips(self): ...
    def cycleLightingMode(self): ...
    def getLightingMode(self) -> str: ...
    def getPackageClassName(self) -> str: ...
    def isEnabled(self) -> bool: ...
    def isFixedRotationEnabled(self) -> str: ...
    def setEnabled(self, enabled: bool): ...
    def setFixedRotationEnabled(self, enabled: bool): ...
    def setLightingMode(self, mode: PyQt5.QtWidgets.QAction | str, enabled: bool = ...): ...
