export default ShaderChunk; declare const ShaderChunk: ShaderChunkManager; /** * The ShaderChunkManager manages the itowns chunks shader. * It adds chunks to THREE.ShaderChunk to compile shaders * * In itowns, if you want access to `ShaderChunkManager` instance : * * ```js * import ShaderChunk from '../../Renderer/Shader/ShaderChunk'; * ``` * or * ```js * const ShaderChunk = itowns.ShaderChunk'; * ``` * * @property {Object} target - The target to install the chunks into. * @property {string} [path] - A path to add before a chunk name as a prefix. * */ declare class ShaderChunkManager { /** * Constructs a new instance ShaderChunkManager. * * @constructor * * @param {Object} target - The target to install the chunks into. * @param {string} [path] - A path to add before a chunk name as a prefix. * */ constructor(target: Object, path?: string); path: string | undefined; target: Object; /** * Set the header ColorLayer shader. * * @param {string} header The glsl header */ customHeaderColorLayer(header: string): void; /** * Set the body ColorLayer shader. * You could define you color terrain shader, with a header and a body. * the header defines yours fonctions and the body defines the process on ColorLayer. * @example Custom shader chunk * itowns.ShaderChunk.customHeaderColorLayer(` * // define yours methods * vec4 myColor(vec4 color, float a) { * return color * a; * } * `); * itowns.ShaderChunk.customBodyColorLayer(` * // the body set final color layer. * // layer.amount_effect is variable, it could be change in Layer instance. * color = myColor(color, layer.amount_effect) * `); * * var colorLayer = new itowns.ColorLayer('OPENSM', { * source, * type_effect: itowns.colorLayerEffects.customEffect, * amount_effect: 0.5, * }); * * @param {string} body The glsl body */ customBodyColorLayer(body: string): void; /** * Install chunks in a target, for example THREE.ShaderChunk, with adding an * optional path. * * @param {Object} target - The target to install the chunks into. * @param {Object} chunks - The chunks to install. The key of each chunk will be * the name of installation of the chunk in the target (plus an optional path). * @param {string} [path] - A path to add before a chunk name as a prefix. * * @return {Object} The target with installed chunks. */ install(target?: Object, chunks?: Object, path?: string): Object; }