import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { TypedSopNode } from './_Base';
import type { CsgGeometry, CsgGeometryType, CsgTypeMap } from '../../../core/geometry/modules/csg/CsgCommon';
import { CsgObject } from '../../../core/geometry/modules/csg/CsgObject';
import { ModuleName } from '../../poly/registers/modules/Common';
export declare class CSGSopNode<K extends NodeParamsConfig> extends TypedSopNode<K> {
    dataType(): string;
    requiredModules(): ModuleName[];
    setCSGGeometry<T extends CsgGeometryType>(geometry: CsgTypeMap[T]): void;
    setCSGGeometries(geometries: CsgGeometry[]): void;
    setCSGObjects(csgObjects: CsgObject<CsgGeometryType>[]): void;
    setCSGObject(csgObject: CsgObject<CsgGeometryType>): void;
    protected _setContainerCsgObjects(objects: CsgObject<CsgGeometryType>[]): void;
}
export type BaseCSGSopNodeType = CSGSopNode<NodeParamsConfig>;
export declare class BaseCSGSopNodeClass extends CSGSopNode<NodeParamsConfig> {
}
