import { RenderCallback } from "@react-three/fiber"; import { MeshParticles } from "../MeshParticles/useMeshParticles"; export declare type GLSLType = "float" | "vec2" | "vec3" | "vec4" | "mat3" | "mat4" | "sampler2D" | "samplerCube" | "bool"; export declare type GLSLChunk = string; export declare type VariableQualifier = "uniform" | "attribute" | "varying"; export declare type Uniform = { type: GLSLType; value: T; }; export declare type Uniforms = Record; export declare type Varying = { type: GLSLType; }; export declare type Varyings = Record; export declare type Attribute = { type: GLSLType; }; export declare type Attributes = Record; export declare type UpdateCallback = RenderCallback; export declare type Shader = { uniforms: U; varyings: V; attributes: A; vertexHeader: GLSLChunk; vertexMain: GLSLChunk; fragmentHeader: GLSLChunk; fragmentMain: GLSLChunk; config: Record; resetConfig?: (mesh: MeshParticles) => void; applyConfig?: (mesh: MeshParticles, index: number) => void; update?: RenderCallback; };