import { JSCADWorkerManager } from "../jscad-worker/jscad-worker-manager";
import * as Inputs from "@bitbybit-dev/jscad/lib/api/inputs/inputs";
/**
 * Contains various functions for Solid booleans from JSCAD library https://github.com/jscad/OpenJSCAD.org
 * Thanks JSCAD community for developing this kernel
 */
export declare class JSCADBooleans {
    private readonly jscadWorkerManager;
    constructor(jscadWorkerManager: JSCADWorkerManager);
    /**
     * Intersect multiple solid mesh objects
     * @param inputs Contains multiple solids for intersection
     * @returns Solid mesh
     * @group boolean
     * @shortname intersect
     * @drawable true
     */
    intersect(inputs: Inputs.JSCAD.BooleanObjectsDto): Promise<Inputs.JSCAD.JSCADEntity>;
    /**
     * Subtract multiple solid mesh objects
     * @param inputs Contains multiple solids for subtraction
     * @returns Solid mesh
     * @group boolean
     * @shortname subtract
     * @drawable true
     */
    subtract(inputs: Inputs.JSCAD.BooleanObjectsDto): Promise<Inputs.JSCAD.JSCADEntity>;
    /**
     * Union multiple solid mesh objects
     * @param inputs Contains multiple solids for union
     * @returns Solid mesh
     * @group boolean
     * @shortname union
     * @drawable true
     */
    union(inputs: Inputs.JSCAD.BooleanObjectsDto): Promise<Inputs.JSCAD.JSCADEntity>;
    /**
     * Intersect two solid mesh objects
     * @param inputs Contains multiple solids for intersection
     * @returns Solid mesh
     * @group boolean
     * @shortname intersect two
     * @drawable true
     */
    intersectTwo(inputs: Inputs.JSCAD.BooleanTwoObjectsDto): Promise<Inputs.JSCAD.JSCADEntity>;
    /**
     * Subtract two solid mesh objects
     * @param inputs Contains multiple solids for subtraction
     * @returns Solid mesh
     * @group boolean
     * @shortname subtract two
     * @drawable true
     */
    subtractTwo(inputs: Inputs.JSCAD.BooleanTwoObjectsDto): Promise<Inputs.JSCAD.JSCADEntity>;
    /**
     * Union two solid mesh objects
     * @param inputs Contains multiple solids for union
     * @returns Solid mesh
     * @group boolean
     * @shortname union two
     * @drawable true
     */
    unionTwo(inputs: Inputs.JSCAD.BooleanTwoObjectsDto): Promise<Inputs.JSCAD.JSCADEntity>;
    /**
     * Subtract multiple meshes from one mesh object
     * @param inputs Contains mesh from which to subtract and multiple meshes for subtraction
     * @returns mesh
     * @group boolean
     * @shortname subtract from
     * @drawable true
     */
    subtractFrom(inputs: Inputs.JSCAD.BooleanObjectsFromDto): Promise<Inputs.JSCAD.JSCADEntity>;
}
