from _typeshed import Incomplete
from collections.abc import Generator

TILED_PROCEDURAL: Incomplete
TRI_PLANAR_PROJECTION_PROCEDURAL: Incomplete
PROJECTION_PROCEDURAL: Incomplete
CAMERA_PROJECTION_PROCEDURAL: Incomplete
PROCEDURAL_NODE_KEY: Incomplete
PROCEDURAL_IMAGE_ATTRIBUTES: Incomplete
SUPPORTED_IMAGE_FILE_EXTENSIONS: Incomplete
TRI_PLANAR_PROJECTION_ATTRIBUTES: Incomplete
PROCEDURAL_TYPE_MAPPINGS: Incomplete
SUPPORTED_TEMPLATE_NAMES: Incomplete

class TextureSet:
    STREAM_COLOR: int
    STREAM_ENABLED: int
    STREAM_IMAGE_PATH: int
    STREAM_PATTERNS: int
    def __init__(self, shader_model) -> None: ...
    @property
    def name(self): ...
    @property
    def shaderModel(self): ...
    @property
    def thumbnail(self): ...
    def iterStreams(self, enabled_only: bool = ...) -> Generator[Incomplete, None, None]: ...
    def setStreamData(self, stream_name, data_type, value) -> None: ...
    def getStreamData(self, stream_name, data_type): ...
    def setName(self, name) -> None: ...
    def setThumbnail(self, thumbnail) -> None: ...
    def printContents(self) -> None: ...
    def to_dict(self): ...
    @staticmethod
    def from_dict(texture_set_data): ...

def duplicateTextureSet(reference_texture_set): ...
def generateSupportedImageExtensionList() -> None: ...
def isValidImageFile(root, filename): ...
def getTextureFilenamePattern(template, stream_name_patterns, case_sensitive: bool = ...): ...
def getThumbnailFilenamePattern(template, name): ...
def findThumbnailFile(pattern, root_path, name, case_sensitive): ...
def getPathPartCount(filename_template): ...
def getFilePathToMatch(filename, root_path_parts, path_part_count): ...
def findTextureSetImages(root_path, texture_set_template, filename_templates, thumbnail_template: str = ..., case_sensitive: bool = ..., status_callback: Incomplete | None = ..., interupt_callback: Incomplete | None = ...): ...
def createMaterialFromTextureSet(texture_set, procedural_type, material_template: Incomplete | None = ..., status_callback: Incomplete | None = ..., interupt_callback: Incomplete | None = ...): ...
