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

import Callbacks as Callbacks
import KatanaResources as KatanaResources
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 UI4.App.TimelineWidget as TimelineWidget
import UI4 as UI4
import Utils as Utils
from Utils.Decorators import deprecated as deprecated
from typing import Set, Tuple

class TabWithTimeline(PyQt5.QtWidgets.QWidget):
    def __init__(self, widget: PyQt5.QtWidgets.QWidget) -> None: ...
    def closeEvent(self, event: PyQt5.QtGui.QCloseEvent): ...
    def getPanel(self): ...
    def getTabTitle(self) -> str: ...
    def getWidget(self) -> PyQt5.QtWidgets.QWidget: ...
    def isTimelineShown(self) -> bool: ...
    def setSizeHint(self, sizeHint: PyQt5.QtCore.QSize): ...
    def showTimeline(self, show: bool): ...
    def sizeHint(self) -> PyQt5.QtCore.QSize: ...

def ApplySettings(widget: PyQt5.QtWidgets.QFrame, settings: dict): ...
def CloseUnusedTabs(): ...
def CreateTab(tabTypeName: str, parent: PyQt5.QtWidgets.QWidget) -> TabWithTimeline: ...
def FindTopTab(tabTypeName: str, alsoRaise: bool = ...) -> PyQt5.QtWidgets.QWidget | None: ...
def GetAllTabs() -> list[PyQt5.QtWidgets.QWidget]: ...
def GetAvailableTabTypeNames() -> list[str]: ...
def GetSettings(widget: PyQt5.QtWidgets.QFrame) -> dict: ...
def GetTabIcon(tabTypeName: str) -> PyQt5.QtGui.QIcon | None: ...
def GetTabMenuItemIcon(tabTypeName: str) -> PyQt5.QtGui.QIcon | None: ...
def GetTabPluginPath(tabTypeName) -> str: ...
def GetTabPluginSearchPaths() -> list[str]: ...
def GetTabTitle(tabTypeName: str) -> str: ...
def GetTabType(widget): ...
def GetTabTypeName(widget: TabWithTimeline | PyQt5.QtWidgets.QWidget) -> str: ...
def GetTabWidgetIndex(widget: PyQt5.QtWidgets.QWidget) -> tuple: ...
def GetTabsByType(tabTypeName: str) -> list[PyQt5.QtWidgets.QWidget]: ...
def IsTabPersistent(name): ...
def IsTabTypePersistent(tabTypeName: str) -> bool: ...
def LoadTabPlugins(tabPluginSearchPaths: list[str]) -> set[str]: ...
def LoadedTabs(): ...
def RaiseTab(widget: PyQt5.QtWidgets.QWidget): ...
def TabPluginPaths(): ...
