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

import AssetAPI as AssetAPI
import UI4.Util.Caches as Caches
import PyFnAttribute as FnAttribute
import PyFnGeolibProducers as FnGeolibProducers
import QT4FormWidgets.InputWidgets as InputWidgets
import LookFileBakeAPI as LookFileBakeAPI
import UI4.FormMaster.Editors.NodeGroup as NodeGroup
import NodegraphAPI as NodegraphAPI
import Nodes3DAPI as Nodes3DAPI
import PyFnGeolibProducers
import PyQt5.QtWidgets
import QT4FormWidgets as QT4FormWidgets
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
import UI4.Util.ScenegraphIconManager as ScenegraphIconManager
import Nodes3DAPI.ScenegraphManager as ScenegraphManager
import UI4.Widgets.SortablePanel as SortablePanel
import UI4 as UI4
import UI4.FormMaster.Editors.NodeGroup
import UI4.Util.AssetId
import UI4.Widgets.SortablePanel
import Utils as Utils
from LookFileBakeAPI.Exceptions import LookFileBakeException as LookFileBakeException
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class InputPanel(UI4.Widgets.SortablePanel.SortablePanelBase):
    def __init__(self, parent, name) -> None: ...
    def _InputPanel__valueChangedCallback(self): ...
    def getPassName(self): ...
    def setPassName(self, name): ...

class LookFileAssetSaveDialog(UI4.Util.AssetId.BrowseForAssetDialog):
    def __init__(self, parent, hints, node: NodegraphAPI.Node) -> None: ...

class LookFileBakeEditor(UI4.FormMaster.Editors.NodeGroup.NodeGroupFormWidget):
    class InterruptionException(Exception): ...
    def __init__(self, parent, valuePolicy, widgetFactory) -> None: ...
    def _LookFileBakeEditor__findInstancesBeneathSelection(self): ...
    def _LookFileBakeEditor__interruptCallback(self): ...
    def _LookFileBakeEditor__locationsMenuAboutToShow(self, menu): ...
    def _LookFileBakeEditor__productChanged(self, event): ...
    def _LookFileBakeEditor__progressCallback(self, message: Incomplete | None = ...): ...
    def _LookFileBakeEditor__validityChanged(self, valid): ...
    def _LookFileBakeEditor__writeCallback(self): ...
    def _freeze(self): ...
    def _thaw(self): ...

class LookFileBakeMultipassInputEditor(UI4.Widgets.SortablePanel.SortablePanelFormWidget):
    def __init__(self, parent, valuePolicy, widgetFactory) -> None: ...
    def _LookFileBakeMultipassInputEditor__getEventTarget(self): ...
    def _LookFileBakeMultipassInputEditor__getNode(self): ...
    def _LookFileBakeMultipassInputEditor__idle_callback(self, *args, **kwargs): ...
    def _LookFileBakeMultipassInputEditor__node_addOrRemoveInputPort_cb(self, eventType, eventID, nodeName, portName, port: NodegraphAPI.Port, **kwargs): ...
    def addInput(self): ...
    def buildAddMenu(self, menu): ...
    def deleteInput(self, index): ...
    def deletePanel(self, index): ...
    def panelReordered(self, oldPos, newPos): ...
    def panelValueChanged(self, index): ...
    def renameInput(self, index, newName): ...
    def valueChanged(self, valuePolicy, index, final): ...

class LookFileMaterialsOutEditor(UI4.FormMaster.Editors.NodeGroup.NodeGroupFormWidget):
    class InterruptionException(Exception): ...
    def __init__(self, parent, valuePolicy, widgetFactory) -> None: ...
    def _LookFileMaterialsOutEditor__interruptCallback(self): ...
    def _LookFileMaterialsOutEditor__progressCallback(self, message: Incomplete | None = ...): ...
    def _LookFileMaterialsOutEditor__writeCallback(self): ...

class LookFileResolveEditor(UI4.FormMaster.Editors.NodeGroup.NodeGroupFormWidget):
    def __init__(self, parent, valuePolicy, widgetFactory) -> None: ...
    def _LookFileResolveEditor__flushCallback(self): ...

class LookFileRootResolveEditor(UI4.FormMaster.Editors.NodeGroup.NodeGroupFormWidget):
    def __init__(self, parent, valuePolicy, widgetFactory) -> None: ...
    def _LookFileRootResolveEditor__flushCallback(self): ...

class SceneSearchDialog(PyQt5.QtWidgets.QDialog):
    COUNT_COLUMN: ClassVar[int] = ...
    DERIVED_COLUMN: ClassVar[int] = ...
    KSTD_COLUMN: ClassVar[int] = ...
    SOURCE_COLUMN: ClassVar[int] = ...
    def __init__(self, node: NodegraphAPI.Node, mode) -> None: ...
    def _SceneSearchDialog__appendButtonCB(self): ...
    def _SceneSearchDialog__checkInterrupt(self, path: str = ...): ...
    def _SceneSearchDialog__filterFieldUpdate(self, filterText, filterType): ...
    def _SceneSearchDialog__findDerivedComponentSource(self, spref): ...
    def _SceneSearchDialog__findScenegraphSelectionRoots(self): ...
    def _SceneSearchDialog__getExistingPaths(self): ...
    def _SceneSearchDialog__getUniqueVisibleLocations(self): ...
    def _SceneSearchDialog__getUniqueVisibleLocationsNotInExistingPaths(self): ...
    def _SceneSearchDialog__interrupt(self): ...
    def _SceneSearchDialog__replaceButtonCB(self): ...
    def _SceneSearchDialog__startFind(self): ...
    def _SceneSearchDialog__walkLocation(self, producer: PyFnGeolibProducers.GeometryProducer, productItems): ...
    def showEvent(self, ev): ...

class _InterruptException(RuntimeError): ...
