from .metadata import Metadata as Metadata
from _typeshed import Incomplete
from collections.abc import Generator

class GeoEntity(Metadata):
    currentShader: Incomplete
    currentVersion: Incomplete
    isLocked: Incomplete
    prefsFolder: Incomplete
    def __init__(self, name, parent) -> None: ...
    @property
    def channels(self): ...
    @property
    def fullName(self): ...
    @property
    def shaders(self): ...
    @property
    def uvIndexes(self): ...
    @property
    def udims(self): ...
    @property
    def patches(self): ...
    @property
    def versions(self): ...
    @property
    def entityNodeGraphs(self): ...
    @property
    def hasSelectedPatches(self): ...
    def addChannel(self, channel) -> None: ...
    def addShader(self, shader) -> None: ...
    def addGeoPatch(self, patch) -> None: ...
    def addGeoEntityVersion(self, version) -> None: ...
    def addEntityNodeGraph(self, entityNodeGraph) -> None: ...
    def asDict(self, includeDict: Incomplete | None = ...): ...
    def copyChannels(self, sourceChannels, uvIndexesMap: Incomplete | None = ...): ...
    def copyShaders(self, sourceShaders): ...
    def copyEntityNodeGraphs(self, sourceEntityNodeGraphs): ...
    def export(self, exportDir) -> None: ...
    @classmethod
    def fromDict(cls, dataDict, parent, sourceFilePath): ...
    @classmethod
    def fromMariObject(cls, mariObject, parent): ...
    @classmethod
    def fromSelected(cls): ...
    @classmethod
    def listFromSession(cls): ...
    mariObject: Incomplete
    def make(self, finishedCallback=...) -> None: ...
    def makeChannels(self, ignoreExisting: bool = ..., selectedLayers: bool = ..., finishedCallback=...) -> None: ...
    def makeShaders(self, ignoreExisting: bool = ..., ignoreShaderInputs: bool = ..., finishedCallback=...) -> None: ...
    def makeEntityNodeGraphs(self, finishedCallback=...) -> None: ...
    def walk(self, depth: int = ...) -> Generator[Incomplete, None, None]: ...
    def isNewFormat(self): ...
