/**
 * Creates a Volume Material
 *
 * @remarks
 * This is experimental
 *
 */
import { ShaderMaterial } from 'three';
import { PrimitiveMatNode } from './_Base';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { MatType } from '../../poly/registers/nodes/types/Mat';
declare const VolumeMatParamsConfig_base: {
    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 VolumeMatParamsConfig extends VolumeMatParamsConfig_base {
}
export declare class VolumeMatNode extends PrimitiveMatNode<ShaderMaterial, VolumeMatParamsConfig> {
    paramsConfig: VolumeMatParamsConfig;
    static type(): MatType;
    private _volumeController;
    createMaterial(): ShaderMaterial;
    initializeNode(): void;
    cook(): Promise<void>;
}
export {};
