import type { ShaderModule } from "./shader-module/shader-module.js"; import { ShaderModuleInstance } from "./shader-module/shader-module-instance.js"; import { AssembleShaderProps } from "./shader-assembly/select-shaders.js"; import { GetUniformsFunc } from "./shader-assembly/assemble-shaders.js"; /** * A stateful version of `assembleShaders` that can be used to assemble shaders. * Supports setting of default modules and hooks. */ export declare class ShaderAssembler { /** Default ShaderAssembler instance */ static defaultShaderAssembler: ShaderAssembler; /** Hook functions */ private readonly _hookFunctions; /** Shader modules */ private _defaultModules; /** * A default shader assembler instance - the natural place to register default modules and hooks * @returns */ static getDefaultShaderAssembler(): ShaderAssembler; /** * Add a default module that does not have to be provided with every call to assembleShaders() */ addDefaultModule(module: ShaderModule): void; /** * Remove a default module */ removeDefaultModule(module: ShaderModule): void; /** * Register a shader hook * @param hook * @param opts */ addShaderHook(hook: string, opts?: any): void; /** * Assemble a pair of shaders into a single shader program * @param platformInfo * @param props * @returns */ assembleShader(props: AssembleShaderProps): { source: string; getUniforms: GetUniformsFunc; modules: ShaderModuleInstance[]; }; /** * Assemble a pair of shaders into a single shader program * @param platformInfo * @param props * @returns */ assembleShaderPair(props: AssembleShaderProps): { vs: string; fs: string; getUniforms: GetUniformsFunc; modules: ShaderModuleInstance[]; }; /** * Dedupe and combine with default modules */ _getModuleList(appModules?: (ShaderModule | ShaderModuleInstance)[]): ShaderModuleInstance[]; } //# sourceMappingURL=shader-assembler.d.ts.map