/**
 * Creates a Volume Material, which can be used to render clouds, which can be extended with GL nodes.
 *
 * @remarks
 * This node can create children, which will be GL nodes. The GLSL code generated by the nodes will extend the Material. This is experimental.
 *
 */
import { TypedBuilderMatNode } from './_BaseBuilder';
import { ShaderAssemblerVolume } from '../gl/code/assemblers/materials/Volume';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { AssemblerName } from '../../poly/registers/assemblers/_BaseRegister';
import { ShaderMaterialWithCustomMaterials } from '../../../core/geometry/Material';
import { MatType } from '../../poly/registers/nodes/types/Mat';
declare const VolumeBuilderMatParamsConfig_base: {
    new (...args: any[]): {
        setBuilderNode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
        builderNode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.NODE_PATH>;
    };
} & {
    new (...args: any[]): {
        color: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.COLOR>;
        stepSize: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
        density: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
        shadowDensity: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
        lightDir: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    };
} & typeof NodeParamsConfig;
declare class VolumeBuilderMatParamsConfig extends VolumeBuilderMatParamsConfig_base {
}
export declare class VolumeBuilderMatNode extends TypedBuilderMatNode<ShaderMaterialWithCustomMaterials, ShaderAssemblerVolume, VolumeBuilderMatParamsConfig> {
    paramsConfig: VolumeBuilderMatParamsConfig;
    static type(): MatType;
    usedAssembler(): Readonly<AssemblerName.GL_VOLUME>;
    protected _createAssemblerController(): import("../gl/code/Controller").GlAssemblerController<ShaderAssemblerVolume> | undefined;
    private _volumeController;
    initializeNode(): void;
    cook(): Promise<void>;
}
export {};
