import { BaseSopOperation } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { InputCloneMode } from '../../poly/InputCloneMode';
import { DefaultOperationParams } from '../../../core/operations/_Base';
export declare enum BooleanOperation {
    INTERSECT = "intersect",
    SUBTRACT = "subtract",
    ADD = "add",
    DIFFERENCE = "difference"
}
export declare const BOOLEAN_OPERATIONS: BooleanOperation[];
interface BooleanSopParams extends DefaultOperationParams {
    operation: number;
    keepVertexColor: boolean;
    additionalAttributes: string;
    keepMaterials: boolean;
    useInputGroups: boolean;
    intersectionEdgesOnly: boolean;
}
export declare class BooleanSopOperation extends BaseSopOperation {
    static readonly DEFAULT_PARAMS: BooleanSopParams;
    static readonly INPUT_CLONED_STATE: InputCloneMode[];
    static type(): Readonly<'boolean'>;
    cook(inputCoreGroups: CoreGroup[], params: BooleanSopParams): CoreGroup;
}
export {};
