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

import UI4.Util.IconManager as IconManager
import NodegraphAPI as NodegraphAPI
import Nodes2DAPI as Nodes2DAPI
import UI4.KatanaPrefs.PrefNames as PrefNames
import PyQt5.QtCore
import PyQt5.QtWidgets
import QT4FormWidgets as QT4FormWidgets
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
import UI4 as UI4
import Utils as Utils
import collections
import enum
import typing
from UI4.FormMaster.ParameterPolicy import CreateParameterPolicy as CreateParameterPolicy
from UI4.KatanaPrefs.KatanaPrefsObject import KatanaPrefs as KatanaPrefs
from UI4.Util.AssetId import FormatExtraImageInfo as FormatExtraImageInfo, GetExtraImageInfo as GetExtraImageInfo
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class FileInItem(PyQt5.QtCore.QObject):
    updated: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, fileInNode, autoUpdate: bool = ...) -> None: ...
    @staticmethod
    def GetKeyFunction(column): ...
    def _FileInItem__emitUpdated(self, updatedColumns): ...
    def _FileInItem__getNodeIcon(self, viewed: bool = ..., edited: bool = ..., ignored: bool = ..., error: bool = ...): ...
    def _FileInItem__updateName(self): ...
    def _FileInItem__updatePathAndStatus(self): ...
    def _FileInItem__updateSuperToolMembership(self): ...
    def _FileInItem__updateVersion(self): ...
    def getData(self, column, role): ...
    def getIcon(self): ...
    def getName(self): ...
    def getNameKey(self): ...
    def getNode(self) -> NodegraphAPI.Node: ...
    def getPath(self): ...
    def getStatus(self): ...
    def getStatusKey(self): ...
    def getSuperToolNode(self): ...
    def getValuePolicy(self): ...
    def getVersion(self): ...
    def isStatusError(self): ...
    def setAutoUpdate(self, autoUpdate): ...
    def update(self): ...

class FileInPanel(PyQt5.QtWidgets.QWidget):
    def __init__(self, parent) -> None: ...
    def _FileInPanel__autoUpdateCheckChanged(self, checkState): ...
    def _FileInPanel__loadBeginCB(self, eventType, eventID): ...
    def _FileInPanel__loadEndCB(self, eventType, eventID): ...
    def _FileInPanel__loadFileIn(self, fileInNode, load): ...
    def _FileInPanel__loadFileInBatch(self, fileInList): ...
    def _FileInPanel__nodeCreateCB(self, eventType, eventID, node: typing.Optional[NodegraphAPI.Node] = ..., nodeType: Incomplete | None = ..., nodeName: Incomplete | None = ...): ...
    def _FileInPanel__nodeDeleteCB(self, eventType, eventID, node: typing.Optional[NodegraphAPI.Node] = ..., oldName: Incomplete | None = ...): ...
    def _FileInPanel__prefChangeCB(self, args: Incomplete | None = ...): ...
    def _FileInPanel__setUpEvents(self, enabled): ...

class FileInTableModel(PyQt5.QtCore.QAbstractTableModel):
    class COLUMNS(enum.Enum):
        NAME: ClassVar[FileInTableModel.COLUMNS] = ...
        NODE: ClassVar[FileInTableModel.COLUMNS] = ...
        PATH: ClassVar[FileInTableModel.COLUMNS] = ...
        STATUS: ClassVar[FileInTableModel.COLUMNS] = ...
        VERSION: ClassVar[FileInTableModel.COLUMNS] = ...
        _member_map_: ClassVar[collections.OrderedDict] = ...
        _member_names_: ClassVar[list] = ...
        _member_type_: ClassVar[type[object]] = ...
        _value2member_map_: ClassVar[dict] = ...
        @classmethod
        def __init__(cls, value) -> None: ...
        def _generate_next_value_(self, name, start, count, last_values): ...
    dataChanged: ClassVar[PyQt5.QtCore.pyqtSignal] = ...
    def __init__(self, parent) -> None: ...
    def _FileInTableModel__itemUpdated(self, item, columnSet): ...
    def addNode(self, fileInNode): ...
    def clear(self): ...
    def columnCount(self, parentIndex: Incomplete | None = ...): ...
    def data(self, modelIndex, role): ...
    def goToNode(self, modelIndex, edit: bool = ..., select: bool = ..., frame: bool = ...): ...
    def headerData(self, section, orientation, role): ...
    def removeNode(self, fileInNode): ...
    def rowCount(self, parentIndex: Incomplete | None = ...): ...
    def setAutoUpdate(self, autoUpdate): ...
    def sort(self, column, sortOrder): ...
    def update(self): ...

class FileInTableView(PyQt5.QtWidgets.QTableView):
    def __init__(self, parent) -> None: ...
    def _FileInTableView__indexClicked(self, modelIndex): ...
