import { ShaderProgramOptions } from '../resources'; /** * A shader code snippet * * @public */ export declare type ShaderChunk = string; /** * A map of shader code snippets * * @public */ export interface ShaderChunkSet { [key: string]: ShaderChunk; } /** * A map of `#define` statements for a shader * * @public * @remarks * - Use `true` values to indicate a simple define statement: `#define KEY` * - Use `false`, `null`, `undefined` to indicate absence of a define statement * - Use other values to indicate a define statement with value: `#define KEY VALUE` * * Example: * ``` * const defines: ShaderDefines = { foo: true, bar: null, baz: 1234 } * ``` * * will be interpreted as * ``` * #define foo * #define baz 1234 * ``` */ export interface ShaderDefines { [key: string]: any; } /** * Combines a set of shader chunks into a single shader source file * * @public * @param base - The initial chunk to process * @param chunks - A map of available shader chunks to include * @param defines - A map of shader defines to include */ export declare function assembleShader(base: string, chunks: ShaderChunkSet[], defines?: ShaderDefines): string; /** * Combines a set of shader chunks into `vertexShader` and `fragmentShader` source files * * @public * @param base - The initial chunk to process * @param chunks - A map of available shader chunks to include * @param defines - A map of shader defines to include */ export declare function assembleProgram(base: string, chunks: ShaderChunkSet[], defines?: ShaderDefines): ShaderProgramOptions; //# sourceMappingURL=assembleShader.d.ts.map