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

import Callbacks as Callbacks
import CatalogAPI as CatalogAPI
import CatalogAPI.CatalogUtils as CatalogUtils
import PyUtilModule.KatanaFile as KatanaFile
import NodegraphAPI as NodegraphAPI
import Nodes2DAPI as Nodes2DAPI
import PyOpenColorIO as OCIO
import PyResolutionTableFn as ResolutionTable
import Utils as Utils
import re
import typing
from PyUtilModule.ProjectSnapshot import ProjectSnapshot as ProjectSnapshot, SnapshotType as SnapshotType
from _typeshed import Incomplete
from typing import ClassVar, Set, Tuple

class CatalogItem:
    kFrameRangePattern: ClassVar[re.Pattern] = ...
    def __init__(self, catalogItemID) -> None: ...
    def _CatalogItem__getBufferInfoIndex(self, layerview): ...
    @classmethod
    def _CatalogItem__parseFrameRange(cls, frameRange: str) -> tuple[int, ...]: ...
    def _CatalogItem__setSimpleValue(self, name, value): ...
    def _CatalogItem__setSimpleValues(self, namesValues): ...
    def _CatalogItem__setStringArrayValue(self, paramName, values): ...
    def _saveImagesToDisk(self): ...
    def _saveThumbnailToDisk(self): ...
    def appendToRenderLog(self, message): ...
    def getBuffer(self, layerview, loadIfNeeded: bool = ..., strict: bool = ...): ...
    def getBufferInfo(self) -> typing.Optional[list[d]]: ...
    def getCatalogItemID(self) -> str: ...
    def getCatalogItemIDAsLabel(self) -> str: ...
    def getChannels(self, layerview, loadIfNeeded: bool = ...): ...
    def getDataWindow(self, layerview, loadIfNeeded: bool = ...): ...
    def getDiskImageLocation(self, layerview): ...
    def getDiskImageSequence(self, layerview): ...
    def getDiskThumbnailLocation(self): ...
    def getDisplayWindow(self, layerview, loadIfNeeded: bool = ...): ...
    def getDisplayWindowAsText(self, layerview, loadIfNeeded: bool = ...): ...
    def getEndFrame(self) -> int: ...
    def getFrameRange(self): ...
    def getIndex(self): ...
    def getLayerRenderCameraPath(self, layer) -> str: ...
    def getLayerViewForSequenceID(self, sequenceID): ...
    def getLayerViews(self): ...
    def getLayerViewsAsText(self, abbreviate: bool = ...): ...
    def getLayerViewsWithBuffers(self): ...
    def getMainSequenceID(self) -> int | None: ...
    def getMemoryUsage(self): ...
    def getNodeName(self): ...
    def getParam(self): ...
    def getPrimaryLayerView(self): ...
    def getProjectSnapshot(self) -> ProjectSnapshot: ...
    def getRenderCamera(self) -> tuple[int, str]: ...
    def getRenderElapsedTime(self): ...
    def getRenderElapsedTimeAsText(self): ...
    def getRenderEndTime(self): ...
    def getRenderError(self): ...
    def getRenderLog(self): ...
    def getRenderMethodType(self) -> str | None: ...
    def getRenderProgress(self): ...
    def getRenderStartTime(self): ...
    def getRenderStartTimeAsText(self): ...
    def getRenderState(self): ...
    def getRenderStats(self): ...
    def getResolutionName(self, layerview, loadIfNeeded: bool = ..., useMisc: bool = ...): ...
    def getSampleRate(self, layerview, loadIfNeeded: bool = ...): ...
    def getSequenceIDs(self) -> list[int]: ...
    def getShortDescription(self) -> str: ...
    def getSlot(self): ...
    def getStartFrame(self) -> int: ...
    def getThumbnailPixmap(self): ...
    def getTileOrdering(self): ...
    def getUserComment(self): ...
    def hasOverscan(self, layerview, loadIfNeeded: bool = ...): ...
    def is2D(self): ...
    def isDiskImageLocationLocal(self, layerview): ...
    def isFramePinned(self) -> bool: ...
    def isGSVPinned(self, gsvName: str) -> bool: ...
    def isInProgress(self) -> bool: ...
    def isLayerAdaptative(self) -> bool: ...
    def isLiveRender(self) -> bool: ...
    def isLocked(self): ...
    def isPersistant(self): ...
    def isStaticScene(self) -> bool: ...
    def isValid(self): ...
    def queryRegionStats(self, layerview, region, ignoreNanInfValues: bool = ..., minInf: Incomplete | None = ..., maxInf: Incomplete | None = ...): ...
    def releaseBuffer(self, layerview: None): ...
    def releaseBuffers(self): ...
    def renameLayerView(self, oldLayerView: None, newLayerView: None): ...
    def resetRenderLog(self): ...
    def set2D(self, is2D): ...
    def setBufferDict(self, bufferDict): ...
    def setBufferInfo(self, bufferInfo): ...
    def setDiskImageLocation(self, filename, layerview): ...
    def setDiskThumbnailLocation(self, filename): ...
    def setFramePinned(self, isPinned: bool): ...
    def setFrameRange(self, frameRange): ...
    def setGSVPinned(self, gsvName: str, isPinned: bool): ...
    def setLayerAdaptative(self, value: bool): ...
    def setLayerRenderCameraPath(self, layer: str, renderCameraPath: str): ...
    def setLock(self, isLocked): ...
    def setNodeName(self, name): ...
    def setPersistant(self, isPersistant): ...
    def setProjectSnapshot(self, projectSnapshot: ProjectSnapshot): ...
    def setRenderCamera(self, renderCameraType: int, renderCameraPath: str): ...
    def setRenderEndTime(self, t): ...
    def setRenderError(self, errorCode, nodeName, message): ...
    def setRenderMethodType(self, renderMethodType: str | None): ...
    def setRenderProgress(self, tasksCompleted, totalTasks): ...
    def setRenderStartTime(self, t): ...
    def setRenderState(self, state): ...
    def setRenderStats(self, stats): ...
    def setSampleRate(self, sampleRate): ...
    def setSlot(self, value): ...
    def setStaticScene(self, value: bool): ...
    def setThumbnailPixmap(self, value): ...
    def setTileOrdering(self, value): ...
    def setUserComment(self, value: str, final: bool = ...): ...
    def syncProjectSettings(self, makeActive: bool = ...): ...
    def toggleLock(self): ...
    def __eq__(self, other) -> bool: ...
    def __hash__(self) -> int: ...
    def __lt__(self, other) -> bool: ...

def CreateCatalogItemFromID(catalogItemID): ...
def _ClearItemAttrs(catalogItemIDs: Incomplete | None = ...): ...
def _GetItemAttr(catalogItemID, name, default: Incomplete | None = ...): ...
def _SetItemAttr(catalogItemID, name, value): ...
