/**
 * Adds or remove parents from the object hierarchy.
 *
 * @remarks
 * This can be useful after importing a geometry from a File SOP, where the part we want to manipulate is under one or several parents. This allows to extract it to make it available for other nodes.
 */
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
declare class HierarchySopParamsConfig extends NodeParamsConfig {
    /** @param defines if parent objects will be added or removed */
    mode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.INTEGER>;
    /** @param defines how many parent objects will be added or removed */
    levels: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.INTEGER>;
    /** @param when the mode is set to add_child, the mask defines which parent the children are added to. If the mask is an empty string, the children will be added to the objects at the top of the hierarchy. Also, the children are taken from the second input. */
    objectMask: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.STRING>;
    /** @param when the mode is set to add_child, the objects used as parent will be printed to the console */
    debugObjectMask: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
}
export declare class HierarchySopNode extends TypedSopNode<HierarchySopParamsConfig> {
    params_config: HierarchySopParamsConfig;
    static type(): string;
    static displayedInputNames(): string[];
    initializeNode(): void;
    private _operation;
    cook(input_contents: CoreGroup[]): void;
}
export {};
