/**
 * Copies a geometry onto every point from the right input.
 *
 * @remarks
 * Creates an instance geometry, but instancing the geometry in the left input onto every point from the right input. This is a great way to display a lot of geometries on screen with little performance penalty.
 *
 *
 */
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { InstanceUpdateMode } from '../../operations/sop/InstanceUpdate';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { SopType } from '../../poly/registers/nodes/types/Sop';
declare class InstanceUpdateSopParamsConfig extends NodeParamsConfig {
    /** @param defines what this node updates, either the instanced geometry or the instance points. */
    mode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param which attributes will be updated on the instanced geometry */
    geoAttributes: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    /** @param which attributes will be updated ont the instance points */
    pointAttributes: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
}
export declare class InstanceUpdateSopNode extends TypedSopNode<InstanceUpdateSopParamsConfig> {
    paramsConfig: InstanceUpdateSopParamsConfig;
    static type(): SopType;
    initializeNode(): void;
    setMode(mode: InstanceUpdateMode): void;
    private _operation;
    cook(input_contents: CoreGroup[]): void;
}
export {};
