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

import ConfigurationAPI_cmodule as Configuration
import PyFnAttribute as FnAttribute
import NodegraphAPI as NodegraphAPI
import Nodes2DAPI as Nodes2DAPI
import Nodes3DAPI as Nodes3DAPI
import UI4.KatanaPrefs.PrefNames as PrefNames
import PyFnAttribute
import PyQt5.QtCore
import PyQt5.QtGui
import PyQt5.QtWidgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import RenderingAPI as RenderingAPI
import UI4.Widgets.SceneGraphView.SceneGraphLocationTranslation as SceneGraphLocationTranslation
import UI4.Widgets.SceneGraphView.SceneGraphViewIconManager as SceneGraphViewIconManager
import UI4.FormMaster.Editors.ScenegraphColumnDescription as ScenegraphColumnDescription
import Nodes3DAPI.ScenegraphManager as ScenegraphManager
import Nodes3DAPI.ScenegraphMask as ScenegraphMask
import UI4 as UI4
import Utils as Utils
import typing
from PyUtilModule.VirtualKatana import NodeDebugOutput as NodeDebugOutput, Shelves as Shelves
from PyUtilModule.WorkingSetManager import WorkingSetManager as WorkingSetManager
from UI4.KatanaPrefs.KatanaPrefsObject import KatanaPrefs as KatanaPrefs, Prefs as Prefs
from UI4.Tabs.BaseTab import BaseTab as BaseTab
from UI4.Tabs.SceneGraphTab.LightListPopup import LightListPopup as LightListPopup
from UI4.Tabs.SceneGraphTab.SceneGraphBookmarkButton import SceneGraphBookmarkButton as SceneGraphBookmarkButton
from UI4.Tabs.SceneGraphTab.SceneGraphTabColumn import SceneGraphTabColumnSet as SceneGraphTabColumnSet
from UI4.Tabs.SceneGraphTab.SceneGraphTabItems import AltErrorMessageItem as AltErrorMessageItem, CollectionsRootItem as CollectionsRootItem, ErrorMessageItem as ErrorMessageItem, WarningMessageItem as WarningMessageItem
from UI4.Tabs.SceneGraphTab.SceneGraphTabNameItemDelegate import SceneGraphTabNameItemDelegate as SceneGraphTabNameItemDelegate
from UI4.Util.AttributeHistory import AttributeHistory as AttributeHistory
from UI4.Widgets.SceneGraphView.ColumnDataType import ColumnDataType as ColumnDataType
from UI4.Widgets.SceneGraphView.SceneGraphFindButton import SceneGraphFindButton as SceneGraphFindButton
from UI4.Widgets.SceneGraphView.SceneGraphView import SceneGraphView
from UI4.Widgets.SceneGraphView.SceneGraphViewColumn import SceneGraphColumnTitle as SceneGraphColumnTitle
from UI4.Widgets.ShelfButton import ShelfButton
from typing import ClassVar, Set, Tuple

class SceneGraphTab(BaseTab):
    _SceneGraphTab__columnPrefKeys: ClassVar[tuple] = ...
    _SceneGraphTab__customColumnsSetName: ClassVar[str] = ...
    _SceneGraphTab__defaultTypeColumnWidth: ClassVar[int] = ...
    _SceneGraphTab__instanceSourceAttrName: ClassVar[str] = ...
    _SceneGraphTab__lightListAttributeName: ClassVar[str] = ...
    _SceneGraphTab__materialAssignAttrName: ClassVar[str] = ...
    _SceneGraphTab__maxEventsPerIdle: ClassVar[int] = ...
    _SceneGraphTab__polishOpType: ClassVar[str] = ...
    groupWidgetClosed: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, parent: PyQt5.QtWidgets.QWidget | None, flags: int = ...) -> None: ...
    def _SceneGraphTab__attributeHistoryCallback(self, nodeHistory): ...
    def _SceneGraphTab__buildLayout(self): ...
    def _SceneGraphTab__clearPinsBelow(self): ...
    def _SceneGraphTab__clearPinsBelowActionCallback(self): ...
    def _SceneGraphTab__collectAndSelectActionCallback(self): ...
    def _SceneGraphTab__configureSceneGraphView(self): ...
    def _SceneGraphTab__contextMenuEventCallback(self, contextMenuEvent, menu): ...
    def _SceneGraphTab__copyPaths(self): ...
    def _SceneGraphTab__copySelectionActionCallback(self): ...
    def _SceneGraphTab__errorStateChangedCallback(self, errorMessageItemRefs): ...
    def _SceneGraphTab__expandToLocation(self, locationPath: str): ...
    def _SceneGraphTab__findSceneGraphLocationActionCallback(self): ...
    def _SceneGraphTab__focusActionCallback(self): ...
    def _SceneGraphTab__freeze(self): ...
    def _SceneGraphTab__getAssignedMaterials(self, locations) -> set[str]: ...
    def _SceneGraphTab__getAttribute(self, locationPath: str, attributeName: str) -> PyFnAttribute | None: ...
    def _SceneGraphTab__getAttributeValuesAsAbsolutePaths(self, locations, attributeName: str) -> set[str]: ...
    def _SceneGraphTab__getColumnIcon(self, baseName: str) -> PyQt5.QtGui.QIcon: ...
    def _SceneGraphTab__getDescendantsRecursive(self, location, leavesOnly, visibleOnly, result): ...
    def _SceneGraphTab__getInstanceSources(self, locations) -> set[str]: ...
    def _SceneGraphTab__getPinnedLocations(self, selectedOnly: bool = ...): ...
    def _SceneGraphTab__lightsColumnTitleClickedCallback(self, columnTitleRect): ...
    def _SceneGraphTab__locationCollapsedCallback(self, locationPath, topLevelLocationPath, recursive): ...
    def _SceneGraphTab__locationExpandedCallback(self, locationPath, topLevelLocationPath, recursive): ...
    def _SceneGraphTab__navigationToolbarCallback(self, nodeName: str, isBack: bool): ...
    def _SceneGraphTab__onPrefChanged(self, eventType: str | None, eventID: typing.Hashable, prefKey: str, prefValue: object): ...
    def _SceneGraphTab__on_event_idle(self): ...
    def _SceneGraphTab__on_node_setName(self, eventType: str | None, eventID: object, node: Nodes3DAPI.Node3D | Nodes2DAPI.Node2D, oldName: str, newName: str): ...
    def _SceneGraphTab__on_node_setViewed(self, args): ...
    def _SceneGraphTab__on_nodegraph_setCurrentTime(self, eventType: str | None, eventID: object, currentTime: float): ...
    def _SceneGraphTab__on_pref_changed(self, args): ...
    def _SceneGraphTab__on_scenegraphManager_implicitResolversActive(self, eventType, scenegraphID, implicitResolversActive, **kwargs): ...
    def _SceneGraphTab__on_scenegraphManager_locationClosed(self, eventType, eventID, location, sender): ...
    def _SceneGraphTab__on_scenegraphManager_locationOpened(self, eventType, eventID, location, sender): ...
    def _SceneGraphTab__on_scenegraphManager_locationOpenedRecursively(self, eventType, eventID, location, sender): ...
    def _SceneGraphTab__on_scenegraphManager_pinChanged(self, eventType, eventID, locations, sender): ...
    def _SceneGraphTab__on_scenegraphManager_selectionChanged(self, eventType: str | None, eventID: object, selectedLocations, deselectedLocations, sender: object | None): ...
    def _SceneGraphTab__on_scenegraphMask_visibilityFollowsWorkingSetChanged(self, eventType, eventID, visibilityFollowsWorkingSet): ...
    def _SceneGraphTab__on_scenegraph_interruptProcessing(self, eventType, eventID): ...
    def _SceneGraphTab__on_viewer_visibilityFollowsWorkingSetChanged(self, eventType, eventID, visibilityFollowsWorkingSet): ...
    def _SceneGraphTab__pinVisibleLeavesActionCallback(self): ...
    def _SceneGraphTab__printRenderOutput(self, methodName: str, rendererName: str, openInEditor: bool = ..., printToConsole: bool = ...): ...
    def _SceneGraphTab__refreshCustomColumnsFromPrefs(self): ...
    def _SceneGraphTab__refreshOpArgs(self): ...
    def _SceneGraphTab__removeLocalPinsActionCallback(self): ...
    def _SceneGraphTab__renderColumnTitleClickedCallback(self, columnTitleRect): ...
    def _SceneGraphTab__renderWorkingSetStatusChanged(self, isActive): ...
    def _SceneGraphTab__sceneGraphAttributesCallback(self, locationPath: str, attributes: PyFnAttribute.GroupAttribute | None) -> bool: ...
    def _SceneGraphTab__selectAssignedMaterials(self, replaceSelection: bool = ...): ...
    def _SceneGraphTab__selectAssignedMaterialsActionCallback(self): ...
    def _SceneGraphTab__selectChildren(self, replaceSelection: bool = ...): ...
    def _SceneGraphTab__selectChildrenActionCallback(self): ...
    def _SceneGraphTab__selectInstanceSources(self, replaceSelection: bool = ...): ...
    def _SceneGraphTab__selectInstanceSourcesActionCallback(self): ...
    def _SceneGraphTab__selectParents(self, replaceSelection: bool = ...): ...
    def _SceneGraphTab__selectParentsActionCallback(self): ...
    def _SceneGraphTab__selectionChangedCallback(self): ...
    def _SceneGraphTab__selectionHasInstanceSource(self) -> bool: ...
    def _SceneGraphTab__selectionHasMaterialAssigned(self) -> bool: ...
    def _SceneGraphTab__setDescendantsPinned(self, pinned: bool = ..., leavesOnly: bool = ..., visibleOnly: bool = ...): ...
    def _SceneGraphTab__setLocalPinsActionCallback(self): ...
    def _SceneGraphTab__setSelectionPinned(self, pinned: bool = ...): ...
    def _SceneGraphTab__setVisibilityFollowsWorkingSet(self, visibilityFollowsWorkingSet): ...
    def _SceneGraphTab__thaw(self): ...
    def _SceneGraphTab__updateLayout(self, oldSize: PyQt5.QtGui.QSize, size: PyQt5.QtGui.QSize): ...
    def _SceneGraphTab__updateNodeErrors(self): ...
    def _SceneGraphTab__updateViewNode(self, updateIf2D: bool = ..., updateIfNone: bool = ...): ...
    def _SceneGraphTab__validateDrag(self, event): ...
    def _SceneGraphTab__viewerVisibilityColumnTitleClickedCallback(self, columnTitleRect): ...
    def _SceneGraphTab__visibilityWorkingSetStatusChanged(self, isActive): ...
    def applySettings(self, settings: dict): ...
    def dragEnterEvent(self, event): ...
    def dragMoveEvent(self, event): ...
    def dropEvent(self, event): ...
    def getSceneGraphView(self) -> SceneGraphView: ...
    def getSettings(self) -> dict: ...
    def hideEvent(self, event: PyQt5.QtGui.QHideEvent): ...
    def on_lightListPopup_changed(self, selectedLights): ...
    def on_stopButton_pressed(self): ...
    def on_viewNodeButton_clicked(self): ...
    @staticmethod
    def registerKeyboardShortcuts(): ...
    def resizeEvent(self, event: PyQt5.QtGui.QResizeEvent): ...
    def scrollToLocations(self, locationPaths: list[str]): ...
    def showEvent(self, event: PyQt5.QtGui.QShowEvent): ...

class SceneGraphTabShelfButton(ShelfButton):
    ShelfSuffix: ClassVar[str] = ...
    def __init__(self, parent) -> None: ...
    @staticmethod
    def ShelfQuery(forceReload: bool = ...): ...
