import { ManifoldWorkerManager } from "../../manifold-worker/manifold-worker-manager";
import * as Inputs from "@bitbybit-dev/manifold/lib/api/inputs";
/**
 * Contains various functions for Solid meshes from Manifold library https://github.com/elalish/manifold
 * Thanks Manifold community for developing this kernel
 */
export declare class CrossSectionBooleans {
    private readonly manifoldWorkerManager;
    constructor(manifoldWorkerManager: ManifoldWorkerManager);
    /**
     * Subtract two cross sections
     * @param inputs two cross sections
     * @returns subtracted cross section
     * @group a to b
     * @shortname subtract
     * @drawable true
     */
    subtract(inputs: Inputs.Manifold.TwoCrossSectionsDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Add two cross sections
     * @param inputs two cross sections
     * @returns unioned cross section
     * @group a to b
     * @shortname add
     * @drawable true
     */
    add(inputs: Inputs.Manifold.TwoCrossSectionsDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Intersect two cross sections
     * @param inputs two cross sections
     * @returns intersected cross section
     * @group a to b
     * @shortname intersect
     * @drawable true
     */
    intersect(inputs: Inputs.Manifold.TwoCrossSectionsDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Difference of two cross sections
     * @param inputs two cross sections
     * @returns difference of two cross sections
     * @group 2 cross sections
     * @shortname difference 2 cs
     * @drawable true
     */
    differenceTwo(inputs: Inputs.Manifold.TwoCrossSectionsDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Union of two cross sections
     * @param inputs two cross sections
     * @returns union of two cross sections
     * @group 2 cross sections
     * @shortname union 2 cs
     * @drawable true
     */
    unionTwo(inputs: Inputs.Manifold.TwoCrossSectionsDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Intersection of two cross sections
     * @param inputs two shapes
     * @returns intersection of two cross sections
     * @group 2 cross sections
     * @shortname intersect 2 cs
     * @drawable true
     */
    intersectionTwo(inputs: Inputs.Manifold.TwoCrossSectionsDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Difference of multiple cross sections
     * @param inputs multiple cross sections
     * @returns difference of cross sections
     * @group multiple
     * @shortname diff cross sections
     * @drawable true
     */
    difference(inputs: Inputs.Manifold.CrossSectionsDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Union of multiple cross sections
     * @param inputs multiple cross sections
     * @returns union of two cross sections
     * @group multiple
     * @shortname union cross sections
     * @drawable true
     */
    union(inputs: Inputs.Manifold.CrossSectionsDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Intersection of multiple cross sections
     * @param inputs two cross sections
     * @returns intersection of multiple cross sections
     * @group multiple
     * @shortname intersection cross sections
     * @drawable true
     */
    intersection(inputs: Inputs.Manifold.CrossSectionsDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
}
