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

import UI4.App.AboutKatana as AboutKatana
import AssetAPI as AssetAPI
import CatalogAPI as CatalogAPI
import PyUtilModule.Documentation as Documentation
import UI4.Util.ExternalTools as ExternalTools
import PyUtilModule.FarmAPI as FarmAPI
import PyFnGeolibServices as FnGeolibServices
import UI4.App.Hotkeys as Hotkeys
import UI4.Util.KatanaMediaCache as KatanaMediaCache
import UI4.App.Layouts as Layouts
import PyUtilModule.LiveRenderAPI as LiveRenderAPI
import UI4.App.MainWindow as MainWindow
import NodegraphAPI as NodegraphAPI
import Nodes2DAPI as Nodes2DAPI
import Nodes3DAPI as Nodes3DAPI
import UI4.KatanaPrefs.PrefNames as PrefNames
import UI4.App.Preferences as Preferences
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.RecentFiles as RecentFiles
import PyUtilModule.RenderManager as RenderManager
import RenderingAPI as RenderingAPI
import UI4.App.Tabs as Tabs
import UI4 as UI4
import Utils as Utils
from UI4.App.KeyboardShortcutManager.KeyboardShortcutManager import GetShortcutForAction as GetShortcutForAction, GetShortcutForKeyEvent as GetShortcutForKeyEvent, RegisterAction as RegisterAction
from UI4.KatanaPrefs.KatanaPrefsObject import Prefs as Prefs
from UI4.Widgets.GetSetMenu import GetSetMenu
from _typeshed import Incomplete
from typing import Set, Tuple

class DevGuideAction(PyQt5.QtWidgets.QAction):
    def __init__(self, text: str, parent: PyQt5.QtCore.QObject, documentPath: str = ...) -> None: ...
    def on_triggered(self): ...

class LayoutsMenu(PyQt5.QtWidgets.QMenu):
    def __init__(self, parent, frame: Incomplete | None = ...) -> None: ...
    def _LayoutsMenu__addActionsForLayouts(self, layoutNames): ...
    def _LayoutsMenu__doAboutToShow(self): ...
    def _LayoutsMenu__onActionHovered(self, action): ...
    def doEditLayouts(self): ...
    def doLayoutChange(self, events): ...
    def doSaveLayout(self): ...
    def doSelectLayout(self): ...
    def doShowMainTimeline(self, shown): ...
    def leaveEvent(self, event: PyQt5.QtCore.QEvent): ...
    def populate(self): ...

class MainMenu(PyQt5.QtWidgets.QMenuBar):
    def __init__(self, parent: PyQt5.QtCore.QObject) -> None: ...
    def _MainMenu__getBoundKey(self, key: PyQt5.QtGui.QKeySequence.StandardKey, default: str | PyQt5.QtCore.Key | PyQt5.QtGui.QKeySequence | list | tuple) -> PyQt5.QtGui.QKeySequence.StandardKey | str | PyQt5.QtCore.Key | PyQt5.QtGui.QKeySequence | list | tuple: ...
    def _MainMenu__on_editMenu_aboutToHide(self): ...
    def _MainMenu__on_editMenu_aboutToShow(self): ...
    def _MainMenu__populate(self): ...

class OnlineHelpAction(PyQt5.QtWidgets.QAction):
    def __init__(self, text: str, parent: PyQt5.QtCore.QObject, cshid: Incomplete | None = ...) -> None: ...
    def on_triggered(self): ...

class OpenRecentAction(PyQt5.QtWidgets.QAction):
    def __init__(self, label, parent, meta) -> None: ...

class OpenRecentMenu(PyQt5.QtWidgets.QMenu):
    def __init__(self, parent) -> None: ...
    def _OpenRecentMenu__doAboutToShow(self): ...
    def _OpenRecentMenu__doTriggered(self, action): ...

class RenderMenu(GetSetMenu):
    def __init__(self, parent, frame: Incomplete | None = ...) -> None: ...
    def _RenderMenu__cancelAllRenders(self): ...
    def _RenderMenu__cancelCurrentRender(self): ...
    def _RenderMenu__liveRenderViewNode(self): ...
    def _RenderMenu__on_aboutToShow(self): ...
    def _RenderMenu__on_showKatanaQueueAction_triggered(self): ...
    def _RenderMenu__on_stopRenderFarmJobsAction_triggered(self): ...
    def _RenderMenu__previewRenderViewNode(self): ...
    def _RenderMenu__render2DMenuAboutToShow(self): ...
    def _RenderMenu__repeatPreviousRender(self): ...
    def _RenderMenu__stopAllRenderFarmJobs(self, farmPluginName: str): ...
    def _RenderMenu__viewBasedPrioritizationAction_CB(self): ...

class Rendering2DMenu(PyQt5.QtWidgets.QMenu):
    def __init__(self, *args) -> None: ...
    def _Rendering2DMenu__aboutToShow(self): ...
    def _Rendering2DMenu__buildActions(self): ...
    def _Rendering2DMenu__printImageMemoryUsage(self): ...
    def _Rendering2DMenu__resetRenderThreadPool(self): ...
    def _Rendering2DMenu__setRenderThreadsPref(self, value): ...
    def _Rendering2DMenu__viewBasedPrioritizationAction_CB(self): ...

class Rendering3DMenu(PyQt5.QtWidgets.QMenu):
    def __init__(self, *args) -> None: ...
    def _Rendering3DMenu__aboutToShow(self): ...
    def _Rendering3DMenu__buildActions(self): ...
    def _Rendering3DMenu__pauseRender(self): ...
    def _Rendering3DMenu__queryRender(self): ...
    def _Rendering3DMenu__renderIDPass(self): ...
    def _Rendering3DMenu__resumeRender(self): ...

class RenderingLiveRenderMenu(PyQt5.QtWidgets.QMenu):
    def __init__(self, title, activateShortcuts: bool = ..., parent: Incomplete | None = ...) -> None: ...
    def _RenderingLiveRenderMenu__buildActions(self, activateShortcuts: bool = ...): ...
    def _RenderingLiveRenderMenu__on_aboutToShow(self): ...

class TabMenuItem(PyQt5.QtWidgets.QAction):
    def __init__(self, displayName, tabTypeName, parent) -> None: ...

class TabsMenu(PyQt5.QtWidgets.QMenu):
    def __init__(self, parent, frame: Incomplete | None = ...) -> None: ...
    def _TabsMenu__addTabMenuItems(self, tabTypeNames: list[str]): ...
    def _TabsMenu__doAboutToShow(self): ...
    def _TabsMenu__doKatanaPanel(self, args): ...
    def on_triggered(self, action): ...
    def populate(self): ...

class UtilMenu(PyQt5.QtWidgets.QMenu):
    def __init__(self, parent) -> None: ...
    def _UtilMenu__doAboutToShow(self): ...
    def _UtilMenu__executeFarmMenuOptionCallback(self, callback: Incomplete | None = ...): ...
    def _UtilMenu__farmXML(self): ...
    def _UtilMenu__flushCaches(self): ...
    def _UtilMenu__refreshLocalMediaCache(self): ...
    def _UtilMenu__reloadArgsFiles(self): ...
    def _UtilMenu__reloadShadersAndArgsFiles(self): ...
    def _UtilMenu__resetAssetAPIPlugins(self, eventType, eventID, **kwargs): ...
    def _UtilMenu__syncOutputPorts(self): ...

class VersionUpAndSaveAction(PyQt5.QtWidgets.QAction):
    def __init__(self, parent) -> None: ...
    def _VersionUpAndSaveAction__checkEnabled(self, *args, **kwargs): ...
