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

class Shader(Metadata):
    isSystemShader: Incomplete
    isStackShader: Incomplete
    inputList: Incomplete
    parameterNameList: Incomplete
    parameterList: Incomplete
    standaloneType: Incomplete
    layeredType: Incomplete
    unknownType: bool
    nodes: Incomplete
    nodeUuidRemap: Incomplete
    makeDone: bool
    def __init__(self, name, parent) -> None: ...
    @property
    def channels(self): ...
    @property
    def uvIndexes(self): ...
    def addChannel(self, channel) -> None: ...
    def asDict(self, includeDict: Incomplete | None = ...): ...
    def checkTypeExists(self): ...
    def configureMariObject(self, ignoreShaderInputs: bool = ...) -> None: ...
    def configureMariObjectBasics(self) -> None: ...
    mariObject: Incomplete
    def createTemporaryShader(self) -> None: ...
    @classmethod
    def fromDict(cls, dataDict, parent, sourceFilePath, skipChildren: bool = ...): ...
    @classmethod
    def fromMariObject(cls, mariObject, parent, skipChildren: bool = ...): ...
    def instantiateChildren(self) -> None: ...
    def make(self, makeChannels: bool = ..., ignoreShaderInputs: bool = ..., finishedCallback=..., skipFinishedCallback: bool = ...) -> None: ...
    def makeChannels(self, ignoreExisting: bool = ..., ignoreShaderInputs: bool = ..., finishedCallback=...) -> None: ...
    def renameChannels(self, sourceChannels, geoEntity, uvIndexesMap: Incomplete | None = ...): ...
    def walk(self, depth: int = ...) -> Generator[Incomplete, None, None]: ...
    def isNewFormat(self): ...
    def setNodeUuidRemap(self, nodeUuidRemap) -> None: ...
