/**
 * Normalizes an attribute.
 *
 * @remarks
 * Finds the min and max of an attribute and normalizes its value between 0 and 1.
 * For vector attributes, it can also set them to a length of 1.
 *
 */
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { NormalizeMode } from '../../../core/operations/sop/AttribNormalize';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
declare class AttribNormalizeSopParamsConfig extends NodeParamsConfig {
    /** @param defines if the value should be normalized between 0 and 1, or for vectors if the length should be 1 */
    mode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.INTEGER>;
    /** @param attribute to normalize */
    name: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.STRING>;
    /** @param toggle to change the name of the attribute */
    changeName: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param new attribute name */
    newName: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.STRING>;
}
export declare class AttribNormalizeSopNode extends TypedSopNode<AttribNormalizeSopParamsConfig> {
    params_config: AttribNormalizeSopParamsConfig;
    static type(): string;
    initializeNode(): void;
    set_mode(mode: NormalizeMode): void;
    private _operation;
    cook(input_contents: CoreGroup[]): void;
}
export {};
