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

import KatanaResources as KatanaResources
import PyQt5.QtCore
import PyQt5.QtGui
import PyQt5.QtWidgets
import PyXmlIO as PyXmlIO
import QT4Panels as QT4Panels
import QT4Widgets as QT4Widgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
import UI4.App.Tabs as Tabs
import UI4 as UI4
import UI4.App.Tabs
import UI4.Tabs
import Utils as Utils
import typing
import weakref
from QT4Panels.PanelFrame import PanelFrame
from QT4Panels.PanelLayout import PanelLayout
from Utils.Decorators import deprecated as deprecated
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class CornerWidget(PyQt5.QtWidgets.QFrame):
    def __init__(self, parent) -> None: ...

class EditLayoutsDialog(PyQt5.QtWidgets.QDialog):
    def __init__(self) -> None: ...
    def _EditLayoutsDialog__on_deleteButton_clicked(self): ...
    def getDeleted(self): ...
    def getHotkeys(self): ...

class FloatingLayoutWidget(LayoutWidget):
    _RequireOneFrame: ClassVar[bool] = ...
    def __init__(self, layout: tuple = ..., size: Incomplete | None = ...) -> None: ...
    def _FloatingLayoutWidget__updateTitle(self, *args, **kwargs): ...
    def addNewFrame(self, *args, **kwargs): ...
    def closeEvent(self, event): ...
    def closeFrame(self, frame): ...
    def createPanelFrame(self, *args, **kwargs): ...
    def getPanelNames(self): ...
    def getTabTitles(self) -> list[str]: ...
    def leaveEvent(self, *args, **kwargs): ...
    def loadLayout(self, *args, **kwargs): ...

class LayoutFrame(PanelFrame):
    def __init__(self, parent: Incomplete | None = ...) -> None: ...
    def _LayoutFrame__moveTabToDock(self, index: int, dockWidgetArea: PyQt5.QtCore.Qt.DockWidgetArea): ...
    def addTab(self, widget, label): ...
    def doCloseAll(self): ...
    def doCloseTab(self): ...
    def doDetachTab(self): ...
    def doShowTimeline(self, show): ...
    def doTabRightMouse(self, index): ...
    def doTabStartDrag(self, index): ...
    def getMinSize(self): ...
    def getTabTitles(self) -> list[str]: ...
    def insertTab(self, index, widget, label): ...
    def mousePressEvent(self, event): ...
    def removeTab(self, index): ...

class LayoutWidget(PanelLayout):
    _ActiveLayouts: ClassVar[weakref.WeakKeyDictionary] = ...
    _RequireOneFrame: ClassVar[bool] = ...
    _tabsToIgnore: ClassVar[set] = ...
    def __init__(self, parent, layout: tuple = ...) -> None: ...
    def createDetachLayout(self): ...
    def createPanelFrame(self, count, coords): ...
    def loadLayoutXml(self, element): ...
    def resetLayout(self): ...
    def saveLayoutXml(self): ...

class MainWindowFilter(PyQt5.QtCore.QObject):
    def eventFilter(self, window, event): ...

class ManualStateChangeManager(PyQt5.QtCore.QObject):
    def __init__(self) -> None: ...
    def resetStateChange(self): ...
    def setStateChanged(self, value): ...
    def stateChanged(self): ...

class SaveLayoutDialog(PyQt5.QtWidgets.QDialog):
    def __init__(self, parent) -> None: ...
    def _SaveLayoutDialog__on_combobox_editTextChanged(self, text): ...
    def accept(self): ...
    def getName(self): ...
    def getSaveDockWidgets(self) -> bool: ...
    def getSaveFloating(self): ...

def ActivateLayout(name: str, closeFloating: bool, closeDockWidgets: bool = ...): ...
def CreateFloatingTab(tabTypeName: str, size: Incomplete | None = ..., tabTitle: Incomplete | None = ...) -> UI4.App.Tabs.TabWithTimeline: ...
def CreateTabInFrame(tabTypeName: str, frame: LayoutFrame, tabTitle: Incomplete | None = ..., insertAtIndex: Incomplete | None = ...) -> UI4.App.Tabs.TabWithTimeline: ...
def DeleteUserLayouts(names: typing.Sequence[str]): ...
def GenerateLayoutImage(includeFloating, includeDockWidgets: bool) -> PyQt5.QtGui.QImage: ...
def GetDockWidgets(includeFloating: bool = ...) -> list[PyQt5.QtWidgets.QDockWidget]: ...
def GetFloatingWindows(): ...
def GetLayoutImage(name: str) -> PyQt5.QtGui.QImage | None: ...
def GetSystemLayouts(): ...
def GetTabs(tabTypeName: Incomplete | None = ..., includeFloating: bool = ..., includeDockWidgets: bool = ...) -> list[UI4.Tabs.BaseTab | PyQt5.QtWidgets.QWidget]: ...
def GetUserLayouts(): ...
def GetXmlLayout(includeFloating, includeDockWidgets: bool = ...): ...
def IsLayoutBeingActivated() -> bool: ...
def LoadLayoutFile(filename): ...
def NumScreens(): ...
def ResetLayout(includeFloating: bool, closeDockWidgets: bool = ...) -> list[UI4.App.Tabs.TabWithTimeline]: ...
def SaveUserLayout(name: str, includeFloating: bool, includeDockWidgets: bool): ...
def SaveUserLayouts(layouts: dict): ...
def SetFullScreen(value): ...
def SetXmlLayout(layoutElement): ...
def SwapScreens(): ...
def ToggleFullScreen(): ...
