/**
 * Updates the normals of the geometry
 *
 * @remarks
 * Just like the Point and Color SOPs, this can take expressions
 *
 */
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
declare class NormalsSopParamsConfig extends NodeParamsConfig {
    /** @param toggle on if normals can be updated via expressions */
    edit: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param toggle on to update the x component */
    updateX: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param expression or value for the x component */
    x: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
    /** @param toggle on to update the y component */
    updateY: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param expression or value for the y component */
    y: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
    /** @param toggle on to update the z component */
    updateZ: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param expression or value for the z component */
    z: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
    /** @param recompute the normals based on the position */
    recompute: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param invert normals */
    invert: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
}
export declare class NormalsSopNode extends TypedSopNode<NormalsSopParamsConfig> {
    params_config: NormalsSopParamsConfig;
    static type(): string;
    static displayedInputNames(): string[];
    initializeNode(): void;
    cook(input_contents: CoreGroup[]): Promise<void>;
    private _eval_expressions_for_core_group;
    private _eval_expressions_for_core_object;
    private _invert_normals;
}
export {};
