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

import UI4.Tabs.UVPanel.FaceSelectionHelper as FaceSelectionHelper
import PyFnAttribute as FnAttribute
import PyFnGeolib as FnGeolib
import UI4.Tabs.UVPanel.Layers as Layers
import NodegraphAPI as NodegraphAPI
import Nodes2DAPI as Nodes2DAPI
import Nodes3DAPI as Nodes3DAPI
import QT4GLLayerStack as QT4GLLayerStack
import QT4GLLayerStack.LayerStack
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import Utils as Utils
from PyUtilModule.VirtualKatana import FaceSelectionManager as FaceSelectionManager, ScenegraphManager as ScenegraphManager
from QT4GLLayerStack.LayerStack import LayerStack
from _typeshed import Incomplete
from typing import Set, Tuple

class BGLayer(QT4GLLayerStack.LayerStack.Layer):
    def __init__(self, *args, **kwargs) -> None: ...
    def getTextureInfo(self): ...
    def loadTextureCallback(self, image: Incomplete | None = ..., texturePath: Incomplete | None = ..., tileLocation: tuple = ...): ...
    def paintGL(self): ...
    def paintTexture(self, textureName, x, y): ...
    def repaintGL(self, *args, **kwargs): ...
    def setStencilBuffer(self, enabled): ...
    def setTexture(self, file): ...
    def setUVTileSequenceClass(self, sequenceClass): ...

class ClearToBaseLayer(QT4GLLayerStack.LayerStack.Layer):
    def __init__(self, name: Incomplete | None = ..., visible: bool = ..., interactive: bool = ..., enabled: bool = ...) -> None: ...
    def paintGL(self): ...

class GeoLayer(QT4GLLayerStack.LayerStack.Layer):
    def __init__(self, *args, **kwargs) -> None: ...
    def _GeoLayer__clearCache(self, *args, **kwargs): ...
    def _GeoLayer__drawPillPoly(self, x1, y1, x2, y2): ...
    def _GeoLayer__generateGeometryList(self, selectedFaces: bool = ...): ...
    def clearSelection(self): ...
    def computeSelection(self, rect, shift, control): ...
    def filterSearchTree(self): ...
    def forceRebuild(self, selectedOnly: bool = ...): ...
    def generateStencilBuffer(self, bufferEnabled): ...
    def getBounds(self): ...
    def getClient(self): ...
    def getRuntime(self): ...
    def getSelectedFaces(self): ...
    def getSelectedPaths(self): ...
    def getSelection(self, clearGeomCache: bool = ...): ...
    def getSelectionBounds(self): ...
    def getTexture(self, textureID): ...
    def getTextureIndex(self): ...
    def paintGL(self): ...
    def setAdditionalTextures(self, file): ...
    def setIsolateSelection(self, isolateSelection): ...
    def setSelectedFaces(self, faces): ...
    def setUpdateTexturesCallback(self, cb): ...
    def setUpdateTilesCallback(self, cb): ...

class OverlayLayer(QT4GLLayerStack.LayerStack.Layer):
    def __init__(self, *args, **kwargs) -> None: ...
    def _OverlayLayer__getTextLabel(self, u, v, textureInfo): ...
    def getSettingState(self, name): ...
    def paintGL(self): ...
    def setSettingState(self, name, value): ...
    def setTextureInfoCallback(self, function): ...

class UVWidget(LayerStack):
    def __init__(self, parent) -> None: ...
    def _UVWidget__addImplicitResolvers(self, txn, opId, viewedNode): ...
    def _UVWidget__buildLayers(self): ...
    def _UVWidget__checkForLocationEvents(self): ...
    def _UVWidget__connectToEvents(self): ...
    def _UVWidget__createTerminalOp(self): ...
    def _UVWidget__faceSelectionChanged(self, args): ...
    def _UVWidget__idle_callback(self, *args, **kwargs): ...
    def _UVWidget__nodeSetViewed(self, args): ...
    def _UVWidget__scenegraphManager_selectionChanged_callback(self, eventType, eventID, **kwargs): ...
    def _UVWidget__terminalOpCallback(self, port: NodegraphAPI.Port, graphState: NodegraphAPI.GraphState, op, transaction): ...
    def _UVWidget__updateFaceSelectionManager(self): ...
    def computeSelection(self, rect, shift, control): ...
    def event(self, event): ...
    def frame(self): ...
    def frameAll(self): ...
    def frameTile(self, uvPosition: tuple = ...): ...
    def getOverlaySetting(self, name): ...
    def getSelectedFaces(self): ...
    def getSelectedPaths(self): ...
    def getSelection(self): ...
    def getStencilBuffer(self): ...
    def getTextureIndex(self): ...
    def getWorldBounds(self): ...
    def hideEvent(self, event): ...
    def paintGL(self): ...
    def requestRebuild(self): ...
    def resizeGL(self, width, height): ...
    def selectTexture(self, textureID): ...
    def setIsolateSelection(self, isolateSelection): ...
    def setOverlaySetting(self, name, value): ...
    def setStencilBuffer(self, enabled): ...
    def setTexture(self, texturePath): ...
    def setUVTileSequenceClass(self, sequenceClass): ...
    def setUpdateTexturesCallback(self, cb): ...
    def setUpdateTilesCallback(self, cb): ...
    def showEvent(self, event): ...
