import { GLSLSource, Inputs } from "../glsl"; import { Output } from "../output"; import type { Buffer as GLBuffer, BufferProps } from "../shader/buffer"; import { Generator } from "../shader/generator"; import type { CullFaceMode, ShaderDefines, ShaderUniforms, ShaderVaryings, UniformValue, Uniforms } from "../shader/shader"; import { Synth } from "../synth"; import { Texture } from "../texture"; import { Camera } from "./camera"; import { Model } from "./model"; export declare class Group { synth: Synth; name: string; children: Model[]; constructor(synth: Synth, props?: { name?: string; }); add(...models: Model[]): this; private apply; camera(camera?: Camera): this; out(texture?: Texture | Output): this; vertex(vertex: string | GLSLSource | Generator): this; vert(vertex: string | GLSLSource | Generator): this; fragment(fragment: string | GLSLSource | Generator | boolean): this; frag(fragment: string | GLSLSource | Generator | boolean): this; uniform(name: string, value?: UniformValue): this; uniform(name: Record UniformValue)> | Inputs | Uniforms | ShaderUniforms, value?: UniformValue): this; define(name: ShaderDefines | string, value?: string | number | boolean): this; varyngs(varyings: ShaderVaryings): this; blend(mode: [number, number] | null): this; cullFace(mode?: CullFaceMode): this; autoClear(enabled?: boolean): this; vertexColor(...args: number[]): this; wireframe(enabled?: boolean): this; primitive(primitive?: number | "triangles" | "lines" | "points" | "line_strip" | "triangle_strip"): this; point(pointSize?: number): this; useTexCoord(enabled?: boolean): this; buffer(name: string, buffer: GLBuffer | BufferProps): this; buffer(name: Record): this; indices(...args: number[]): this; instances(count?: number): this; clear(): this; }