import { Constructor } from '../../../../types/GlobalTypes';
import { TypedMatNode } from '../_Base';
import { BaseTextureMapController } from './_BaseTextureController';
import { MeshToonMaterial } from 'three';
import { NodeParamsConfig } from '../../utils/params/ParamsConfig';
import { MaterialTexturesRecord, SetParamsTextureNodesRecord } from './_BaseController';
export declare function GradientMapParamConfig<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        /** @param toggle if you want to use a gradient map */
        useGradientMap: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
        /** Gradient map for toon shading. It's required to set Texture.minFilter and Texture.magFilter to THREE.NearestFilter when using this type of texture */
        gradientMap: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.NODE_PATH>;
    };
} & TBase;
type TextureGradientMaterial = MeshToonMaterial;
type TextureGradientMapCurrentMaterial = TextureGradientMaterial;
declare const TextureGradientMapParamsConfig_base: {
    new (...args: any[]): {
        /** @param toggle if you want to use a gradient map */
        useGradientMap: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
        /** Gradient map for toon shading. It's required to set Texture.minFilter and Texture.magFilter to THREE.NearestFilter when using this type of texture */
        gradientMap: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.NODE_PATH>;
    };
} & typeof NodeParamsConfig;
declare class TextureGradientMapParamsConfig extends TextureGradientMapParamsConfig_base {
}
export interface TextureGradientMapControllers {
    gradientMap: TextureGradientMapController;
}
declare abstract class TextureGradientMapMatNode extends TypedMatNode<TextureGradientMapCurrentMaterial, TextureGradientMapParamsConfig> {
    controllers: TextureGradientMapControllers;
    material(): Promise<MeshToonMaterial | undefined>;
}
export declare class TextureGradientMapController extends BaseTextureMapController {
    protected node: TextureGradientMapMatNode;
    constructor(node: TextureGradientMapMatNode);
    initializeNode(): void;
    static update(node: TextureGradientMapMatNode): Promise<void>;
    update(): Promise<void>;
    updateMaterial(material: TextureGradientMapCurrentMaterial): Promise<void>;
    getTextures(material: TextureGradientMapCurrentMaterial, record: MaterialTexturesRecord): void;
    setParamsFromMaterial(material: TextureGradientMapCurrentMaterial, record: SetParamsTextureNodesRecord): void;
}
export {};
