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 CustomMaterialMeshParamConfig<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 distance material used for shadows from points lights */
        createCustomMatDistance: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param depth material used for shadows from spot lights and directional lights */
        createCustomMatDepth: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param depth DOF */
        createCustomMatDepthDOF: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
    };
} & TBase;
declare const CustomMaterialMeshParamsConfig_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 distance material used for shadows from points lights */
        createCustomMatDistance: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param depth material used for shadows from spot lights and directional lights */
        createCustomMatDepth: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
        /** @param depth DOF */
        createCustomMatDepthDOF: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.BOOLEAN>;
    };
} & {
    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 CustomMaterialMeshParamsConfig extends CustomMaterialMeshParamsConfig_base {
}
declare abstract class CustomMaterialMatNode<M extends Material> extends TypedMatNode<M, CustomMaterialMeshParamsConfig> {
}
export declare function materialMeshAssemblerCustomMaterialRequested(node: CustomMaterialMatNode<any>, customName: CustomMaterialName): boolean;
export {};
