/**
 * Creates group of edges
 *
 *
 */
import { CADSopNode } from './_BaseCAD';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { SopType } from '../../poly/registers/nodes/types/Sop';
import { CoreGroup } from '../../../core/geometry/Group';
import { GroupByExpressionHelper } from './utils/group/GroupByExpressionHelper';
import { GroupByBoundingBoxHelper } from './utils/group/GroupByBoundingBoxHelper';
import { GroupByBoundingObjectHelper } from './utils/group/GroupByBoundingObjectHelper';
import { EntityGroupType } from '../../../core/geometry/EntityGroupCollection';
declare class CADGroupSopParamsConfig extends NodeParamsConfig {
    /** @param group name */
    name: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    /** @param group type */
    type: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param mode */
    operation: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param deletes objects by an expression */
    byExpression: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param sets the expression to select what should be deleted */
    expression: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param deletes objects that are inside a bounding box */
    byBoundingBox: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param the bounding box size */
    boundingBoxSize: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    /** @param the bounding box center */
    boundingBoxCenter: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    /** @param deletes objects that are inside an object. This uses the object from the 2nd input */
    byBoundingObject: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param invert */
    invert: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
}
export declare class CADGroupSopNode extends CADSopNode<CADGroupSopParamsConfig> {
    readonly paramsConfig: CADGroupSopParamsConfig;
    static type(): SopType;
    readonly byExpressionHelper: GroupByExpressionHelper;
    readonly byBoundingBoxHelper: GroupByBoundingBoxHelper;
    readonly byBoundingObjectHelper: GroupByBoundingObjectHelper;
    initializeNode(): void;
    setGroupType(groupType: EntityGroupType): void;
    groupType(): EntityGroupType;
    groupName(): string;
    cook(inputCoreGroups: CoreGroup[]): Promise<void>;
    private selectedStates;
    private _evalEdges;
}
export {};
