import { Material } from 'three';
import { NodeParamsConfig } from '../../../utils/params/ParamsConfig';
import { CustomMaterialName } from '../../../../../core/geometry/Material';
import { Constructor } from '../../../../../types/GlobalTypes';
import { TypedMatNode } from '../../_Base';
export declare function CustomMaterialRayMarchingParamConfig<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        /** @param toggle on to choose which customMaterials will be generated */
        overrideCustomMaterials: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param creates a shadow material for point lights */
        createCustomMatDistance: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param min shadow depth for point lights */
        shadowDistanceMin: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.FLOAT>;
        /** @param max shadow depth for point lights */
        shadowDistanceMax: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.FLOAT>;
        /** @param creates a shadow material for spot lights and directional lights */
        createCustomMatDepth: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param min shadow depth for spot lights and directional lights */
        shadowDepthMin: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.FLOAT>;
        /** @param max shadow depth for spot lights and directional lights */
        shadowDepthMax: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.FLOAT>;
    };
} & TBase;
declare const CustomMaterialRayMarchingParamsConfig_base: {
    new (...args: any[]): {
        /** @param toggle on to choose which customMaterials will be generated */
        overrideCustomMaterials: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param creates a shadow material for point lights */
        createCustomMatDistance: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param min shadow depth for point lights */
        shadowDistanceMin: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.FLOAT>;
        /** @param max shadow depth for point lights */
        shadowDistanceMax: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.FLOAT>;
        /** @param creates a shadow material for spot lights and directional lights */
        createCustomMatDepth: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param min shadow depth for spot lights and directional lights */
        shadowDepthMin: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.FLOAT>;
        /** @param max shadow depth for spot lights and directional lights */
        shadowDepthMax: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.FLOAT>;
    };
} & {
    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>;
    };
} & typeof NodeParamsConfig;
declare class CustomMaterialRayMarchingParamsConfig extends CustomMaterialRayMarchingParamsConfig_base {
}
declare abstract class CustomMaterialMatNode<M extends Material> extends TypedMatNode<M, CustomMaterialRayMarchingParamsConfig> {
}
export declare function materialRayMarchingAssemblerCustomMaterialRequested(node: CustomMaterialMatNode<any>, customName: CustomMaterialName): boolean;
export {};
