/**
 * Boolean Intersect Operation
 *
 *
 */
import { CSGSopNode } from './_BaseCSG';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { CoreGroup } from '../../../core/geometry/Group';
import { SopType } from '../../poly/registers/nodes/types/Sop';
export declare enum BooleanCsgOperationType {
    INTERSECT = "intersect",
    SUBTRACT = "subtract",
    UNION = "union"
}
export declare const BOOLEAN_CSG_OPERATION_TYPES: BooleanCsgOperationType[];
declare class CSGBooleanSopParamsConfig extends NodeParamsConfig {
    /** @param operation */
    operation: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
}
export declare class CSGBooleanSopNode extends CSGSopNode<CSGBooleanSopParamsConfig> {
    paramsConfig: CSGBooleanSopParamsConfig;
    static type(): SopType;
    protected initializeNode(): void;
    setOperation(operation: BooleanCsgOperationType): void;
    cook(inputCoreGroups: CoreGroup[]): void;
    private _applyOperation;
    private _method;
}
export {};
