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

import AssetAPI as AssetAPI
import UI4.App.Hotkeys as Hotkeys
import UI4.App.Icon as Icon
import PyUtilModule.KatanaFile as KatanaFile
import UI4.KatanaPrefs as KatanaPrefs
import UI4.App.KeyboardShortcutManager as KeyboardShortcutManager
import UI4.App.Layouts as Layouts
import NodegraphAPI as NodegraphAPI
import UI4.App.Preferences as Preferences
import PyQt5.QtCore
import PyQt5.QtWidgets
import QT4Widgets as QT4Widgets
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
import UI4.App.RecentFiles as RecentFiles
import UI4.App.TimelineWidget as TimelineWidget
import UI4 as UI4
import UI4.Widgets.BaseWidgets
import Utils as Utils
import typing
from UI4.Widgets.AssetIDLabel import AssetIDLabel as AssetIDLabel
from UI4.Widgets.BaseWidgets import BaseMainWindow as BaseMainWindow
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class KatanaWindow(UI4.Widgets.BaseWidgets.BaseMainWindow):
    _KatanaWindow__applicationShortcuts: ClassVar[dict] = ...
    groupWidgetClosed: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    tabClosed: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, parent) -> None: ...
    def _KatanaWindow__autoKeyAllTogglePressCallback(self): ...
    def _KatanaWindow__autoKeyAllToggleReleaseCallback(self): ...
    def _KatanaWindow__flushCachesKeyPressCallback(self): ...
    def _KatanaWindow__flushCachesKeyReleaseCallback(self): ...
    def _KatanaWindow__implicitResolversTogglePressCallback(self): ...
    def _KatanaWindow__implicitResolversToggleReleaseCallback(self): ...
    def _KatanaWindow__nextFrameKeyPressCallback(self): ...
    def _KatanaWindow__nextKeyKeyPressCallback(self): ...
    def _KatanaWindow__on_katana_fileDirty(self, eventType: str | None, state: int): ...
    def _KatanaWindow__on_nodegraph_changed(self, args: list[tuple[str, object, dict]]): ...
    def _KatanaWindow__openRecentFileKeyPressCallback(self, recentFileIndex): ...
    def _KatanaWindow__preferencesKeyPressCallback(self): ...
    def _KatanaWindow__previousFrameKeyPressCallback(self): ...
    def _KatanaWindow__previousKeyKeyPressCallback(self): ...
    def _KatanaWindow__redoKeyPressCallback(self): ...
    def _KatanaWindow__renderOnlySelectedTogglePressCallback(self): ...
    def _KatanaWindow__renderOnlySelectedToggleReleaseCallback(self): ...
    def _KatanaWindow__shelfActionsKeyPressCallback(self): ...
    def _KatanaWindow__undoKeyPressCallback(self): ...
    def closeEvent(self, event): ...
    @classmethod
    def formatAssetIDLabel(cls) -> str: ...
    @classmethod
    def formatWindowTitle(cls, tabTitles: Incomplete | None = ...) -> str: ...
    def getApplicationShortcuts(self, context: PyQt5.QtCore.Qt.ShortcutContext = ...) -> list: ...
    def getMainLayout(self): ...
    def getMenuBar(self) -> PyQt5.QtWidgets.QMenuBar: ...
    def isTimelineVisible(self) -> bool: ...
    def populate(self): ...
    @staticmethod
    def registerKeyboardShortcuts(): ...
    def setTimelineVisible(self, timelineVisible: bool): ...
    def timeline(self): ...
    def updateAutosaveLabel(self, autoSave: bool = ...): ...
    def updateWindowTitleAndAssetIDLabel(self): ...

def CurrentMainWindow(): ...
def GetMainWindow() -> KatanaWindow: ...
def SetAssetIDLabelTextCallback(assetIDLabelTextCallback: typing.Callable): ...
def SetMainWindowTitleCallback(mainWindowTitleCallback: typing.Callable): ...
