/**
 * Transform input geometries or objects.
 *
 *
 *
 */
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { TransformTargetType } from '../../../core/Transform';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { SopType } from '../../poly/registers/nodes/types/Sop';
import { ObjectTransformMode } from '../../../core/TransformSpace';
declare class TransformSopParamConfig extends NodeParamsConfig {
    /** @param sets if this node should transform objects or geometries */
    applyOn: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param group to assign the material to */
    group: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    /** @param if applyOn is set to object, the transform can then be applied in 2 different ways on those objects. Either the .position, .rotation and .scale attributes are set, or the matrix is set directly. */
    objectMode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param defines how the objects are transformed */
    objectTransformSpace: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param group to assign the material to */
    pointGroup: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    /** @param rotation order */
    rotationOrder: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param translate */
    t: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    /** @param rotation */
    r: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    /** @param scale */
    s: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    /** @param scale (as a float) */
    scale: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param pivot */
    pivot: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
}
export declare class TransformSopNode extends TypedSopNode<TransformSopParamConfig> {
    paramsConfig: TransformSopParamConfig;
    static type(): SopType;
    initializeNode(): void;
    setApplyOn(type: TransformTargetType): void;
    applyOn(): TransformTargetType;
    setObjectMode(mode: ObjectTransformMode): void;
    private _operation;
    cook(inputCoreGroups: CoreGroup[]): void;
}
export {};
