# Generated by scripts/generate_pyi.py, do not edit.

from typing import Any, Callable

import renpy

import builtins as __builtins__
import random as random
import re as re
import renpy as renpy

class Attribute:
    def __init__(self, /, *args, **kwargs): ...

    def __reduce__(self): ...

    def __setstate__(self, __pyx_state): ...


class Program:
    def __init__(self, /, *args, **kwargs): ...

    def __reduce__(self): ...

    def __setstate__(self, __pyx_state): ...

    def draw(self, context: 'GL2DrawingContext', model: 'GL2Model', mesh: 'Mesh'): ...

    def draw_ftl(self, texture: int, mesh: 'Mesh'): ...

    def find_variables(self, source, seen_uniforms: set, samplers: int): ...

    def load(self): ...


class ShaderError(Exception):

    pass


class Variable:
    def __init__(self, shader_name, line): ...

    def __eq__(self, other): ...

    def __hash__(self): ...

    storage: str | None
    type: str | None
    name: str | None
    array: int | None
    line: str

def generate_uniform_setter(shader_name: str, location: int, uniform_name: str, uniform_type: str, array: 'int | None', sampler: int): ...

