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

import ConfigurationAPI_cmodule as Configuration
import PyFnAttribute as FnAttribute
import PyFnGeolib as FnGeolib
import LookFileBakeAPI as LookFileBakeAPI
import PyFnGeolibProducers
import typing
from PyFnGeolibProducers import GeometryProducer as GeometryProducer
from _typeshed import Incomplete
from typing import Set, Tuple

_CelMatchAttrName: str
_formatVersionNames: dict
_formatVersions: dict
_inBakeState: bool
g_typeToAttrDict: dict

class DummyProducer:
    def getAttribute(self, name): ...
    def getAttributeNames(self): ...
    def getFirstChild(self): ...
    def getName(self): ...
    def getType(self): ...

class LocationIntervalEvictor:
    def __init__(self, interval, configVarName: Incomplete | None = ...) -> None: ...
    def advanceAndEvict(self, producer: PyFnGeolibProducers.GeometryProducer): ...
    def __bool__(self) -> bool: ...

class LookFileBakeException(RuntimeError): ...

def AttrEqual(attrA, attrB): ...
def BuildCollectionsInfoDict(rootProducer): ...
def BuildFullMaterialTree(rootProducer, progressCallback: typing.Optional[typing.Callable] = ...): ...
def BuildSelectedMaterialTree(rootProducer, rootPath, progressCallback: typing.Optional[typing.Callable] = ...): ...
def ConsolidateOverrides(outputDicts: typing.Sequence[dict], progressCallback: typing.Optional[typing.Callable] = ...) -> dict: ...
def ConstraintListDiff(producerA, producerB, rootLocation): ...
def CreateLookFileDirectory(dirPath: str): ...
def DeepAttrDiff(attrA, attrB, outputDict, attrPath: str = ...): ...
def GetBakeState(): ...
def LightListDiff(producerA, producerB, rootLocation): ...
def ScenegraphHierarchyDiff(producerA, producerB, materialsProducer, progressCallback: typing.Optional[typing.Callable] = ..., collectionInfo: Incomplete | None = ..., evictor: Incomplete | None = ...): ...
def ScenegraphImmediateChildDiff(producerA, producerB, materialsProducer, progressCallback: typing.Optional[typing.Callable] = ...): ...
def ScenegraphLocationDiff(producerA, producerB, materialsProducer, materialDict): ...
def SetBakeState(state): ...
def SetLog(log): ...
def WriteLookFile(filePath, outputDictList, materialDict, sharedOverridesDict: Incomplete | None = ..., rootOverrideDict: Incomplete | None = ..., sourceFile: Incomplete | None = ..., sourceAsset: Incomplete | None = ..., format: int = ...): ...
def _ScenegraphHierarchyDiff(producerA, producerB, materialsProducer, locationName, outputDict, materialDict, progressCallback: typing.Optional[typing.Callable] = ..., collectionInfo: Incomplete | None = ..., evictor: Incomplete | None = ...): ...
def _WalkMaterialLocation(producer: PyFnGeolibProducers.GeometryProducer, materialDict, progressCallback: typing.Callable): ...
def _WalkMaterialLocations(parentProducer, materialDict, progressCallback: typing.Optional[typing.Callable] = ..., includeTopLevel: bool = ...): ...
