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

import PyFnGeolibProducers as FnGeolibProducers
import UI4.Util.IconManager as IconManager
import KatanaResources as KatanaResources
import UI4.FormMaster.Editors.NodeGroup as NodeGroup
import NodegraphAPI as NodegraphAPI
import PyQt5.QtCore
import PyQt5.QtWidgets
import QT4Browser as QT4Browser
import QT4FormWidgets as QT4FormWidgets
import QT4FormWidgets.PythonValuePolicy
import QT4FormWidgets.ValuePolicy
import QT4Widgets.SortableTreeWidget
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import UI4.Util.ScenegraphIconManager as ScenegraphIconManager
import UI4.Widgets.SortablePanel as SortablePanel
import UI4 as UI4
import UI4.FormMaster.Editors.NodeGroup
import UI4.Widgets.SortablePanel
import Utils as Utils
from QT4Widgets.SortableTreeWidget import SortableTreeWidgetItemDelegate as SortableTreeWidgetItemDelegate
from typing import ClassVar, Set, Tuple

class ChildMaskPolicy(QT4FormWidgets.ValuePolicy.ValuePolicyProxy):
    def __init__(self, policy, childIncludeSet) -> None: ...
    def getChildByName(self, name): ...
    def getChildren(self): ...
    def getWidgetHints(self): ...

class LookFileInNodePanel(UI4.Widgets.SortablePanel.SortablePanelBase):
    CHECKBOX_COLUMN: ClassVar[int] = ...
    NAME_COLUMN: ClassVar[int] = ...
    _LookFileInNodePanel__pixmaps: ClassVar[dict] = ...
    def __init__(self, parent, node: NodegraphAPI.Node, factory) -> None: ...
    def _LookFileInNodePanel__actionsMenuAboutToShow(self): ...
    def _LookFileInNodePanel__filterUpdate(self, filterText, filterType): ...
    def _LookFileInNodePanel__getSelectedItems(self): ...
    def _LookFileInNodePanel__listMousePressEvent(self, event): ...
    def _LookFileInNodePanel__setStatusLabel(self, enabled, shown, hidden): ...
    def _LookFileInNodePanel__toggleItemState(self, item): ...
    def _LookFileInNodePanel__updateMaterialList(self): ...
    def getNode(self) -> NodegraphAPI.Node: ...
    def updatePanel(self): ...

class LookFileInStackEditor(UI4.Widgets.SortablePanel.SortablePanelFormWidget):
    _LookFileInStackEditor__EVENTNAMES: ClassVar[tuple] = ...
    def __init__(self, parent, node: NodegraphAPI.Node, factory) -> None: ...
    def _LookFileInStackEditor__collapsedEventHander(self, args): ...
    def _LookFileInStackEditor__registerEvents(self): ...
    def _LookFileInStackEditor__unregisterEvents(self): ...
    def _freeze(self): ...
    def _thaw(self): ...
    def panelDeleted(self, index): ...
    def panelReordered(self, oldPos, newPos): ...
    def updatePanels(self): ...

class MaterialStackFormWidget(UI4.FormMaster.Editors.NodeGroup.NodeGroupFormWidget):
    _MaterialStackFormWidget__EVENTNAMES: ClassVar[tuple] = ...
    _MaterialStackFormWidget__pixmaps: ClassVar[dict] = ...
    def __init__(self, parent, policy, factory) -> None: ...
    def _MaterialStackFormWidget__aboutToDragCallback(self, items, dragObject): ...
    def _MaterialStackFormWidget__addChildMaterial(self): ...
    def _MaterialStackFormWidget__addGeometryMaterial(self): ...
    def _MaterialStackFormWidget__addLightMaterial(self): ...
    def _MaterialStackFormWidget__addLookFileMaterial(self): ...
    def _MaterialStackFormWidget__addLookFileReference(self): ...
    def _MaterialStackFormWidget__addMaterial(self): ...
    def _MaterialStackFormWidget__addMaterialItem(self, parentItem, node: NodegraphAPI.Node, childList, selectedNodes, openNodes, kstdRefDict, selectedItems): ...
    def _MaterialStackFormWidget__addMenuAboutToShow(self): ...
    def _MaterialStackFormWidget__buildParameterEditorForChildNode(self, widgetParent, childNode, addToCache: bool = ...): ...
    def _MaterialStackFormWidget__collapsedEventHander(self, args): ...
    def _MaterialStackFormWidget__deferredSelectionChanged(self): ...
    def _MaterialStackFormWidget__deleteMaterial(self, confirm: bool = ...): ...
    def _MaterialStackFormWidget__dragMoveEventCallback(self, event, parent, index, callbackRecord): ...
    def _MaterialStackFormWidget__dropEventCallback(self, event, parent, index): ...
    def _MaterialStackFormWidget__duplicateMaterial(self): ...
    def _MaterialStackFormWidget__findAboutToShow(self): ...
    def _MaterialStackFormWidget__findItemChosen(self, text, meta): ...
    def _MaterialStackFormWidget__freezeToggled(self, state): ...
    def _MaterialStackFormWidget__getActiveNodes(self): ...
    def _MaterialStackFormWidget__getNode(self): ...
    def _MaterialStackFormWidget__ignoreMaterial(self): ...
    def _MaterialStackFormWidget__initMembers(self): ...
    def _MaterialStackFormWidget__listMousePressEvent(self, event): ...
    def _MaterialStackFormWidget__listViewKeyPressCallback(self, event): ...
    def _MaterialStackFormWidget__loadResources(self): ...
    def _MaterialStackFormWidget__reapEditorCache(self): ...
    def _MaterialStackFormWidget__registerEvents(self): ...
    def _MaterialStackFormWidget__selectionChanged(self): ...
    def _MaterialStackFormWidget__tearOffParameters(self): ...
    def _MaterialStackFormWidget__unregisterEvents(self): ...
    def _MaterialStackFormWidget__updateListContents(self): ...
    def _buildFindWidget(self, layout): ...
    def _freeze(self): ...
    def _thaw(self): ...
    def getSelectedMaterialPaths(self): ...

class MaterialTreeDelegate(QT4Widgets.SortableTreeWidget.SortableTreeWidgetItemDelegate):
    def paint(self, painter, option, index): ...

class MaterialTreeItem(QT4Widgets.SortableTreeWidget.SortableTreeWidgetItem):
    def isDraggable(self): ...

class NameParameterEditor(PyQt5.QtWidgets.QFrame):
    disableLock: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, parent, node: NodegraphAPI.Node, factory, showLockButton: bool = ...) -> None: ...
    def _NameParameterEditor__clicked(self): ...
    def getValuePolicy(self): ...

class PolicyShim(QT4FormWidgets.PythonValuePolicy.PythonGroupPolicy):
    def __init__(self, node: NodegraphAPI.Node) -> None: ...
    def getNode(self) -> NodegraphAPI.Node: ...
    def getParameter(self): ...

class ReferencedMaterialTreeItem(MaterialTreeItem):
    ITALIC_FONT: ClassVar[None] = ...
    def __init__(self, *args, **kwds) -> None: ...
