import { ManifoldWorkerManager } from "../../manifold-worker/manifold-worker-manager";
import * as Inputs from "@bitbybit-dev/manifold/lib/api/inputs";
/**
 * Contains various functions for transforming cross section from Manifold library https://github.com/elalish/manifold
 * Thanks Manifold community for developing this kernel
 */
export declare class CrossSectionTransforms {
    private readonly manifoldWorkerManager;
    constructor(manifoldWorkerManager: ManifoldWorkerManager);
    /**
     * Scales a cross section shape with 2D vector
     * @param inputs cross section and scale vector
     * @returns Scaled cross section shape
     * @group transforms
     * @shortname scale 2d
     * @drawable true
     */
    scale2D(inputs: Inputs.Manifold.Scale2DCrossSectionDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Scales a cross section shape with single factor
     * @param inputs cross section and scale factor
     * @returns Scaled cross section shape
     * @group transforms
     * @shortname scale uniform
     * @drawable true
     */
    scale(inputs: Inputs.Manifold.ScaleCrossSectionDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Mirrors a cross section shape over a plane defined by a normal vector
     * @param inputs cross section and normal vector
     * @returns Mirrored cross section shape
     * @group transforms
     * @shortname mirror
     * @drawable true
     */
    mirror(inputs: Inputs.Manifold.MirrorCrossSectionDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
    * Translates a cross section shape along the vector
    * @param inputs cross section and trnaslation vector
    * @returns Translated cross section shape
    * @group transforms
    * @shortname translate
    * @drawable true
    */
    translate(inputs: Inputs.Manifold.TranslateCrossSectionDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Translates a cross section shape along x, y
     * @param inputs cross section and trnaslation coordinates
     * @returns Translated cross section shape
     * @group transforms
     * @shortname translate xy
     * @drawable true
     */
    translateXY(inputs: Inputs.Manifold.TranslateXYCrossSectionDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Rotates a cross section shape along the containing degrees
     * @param inputs cross section and rotation degrees
     * @returns Rotated cross section shape
     * @group transforms
     * @shortname rotate
     * @drawable true
     */
    rotate(inputs: Inputs.Manifold.RotateCrossSectionDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Transforms a cross section shape by using the 3x3 transformation matrix
     * @param inputs cross section and transformation matrix
     * @returns Transformed cross section shape
     * @group matrix
     * @shortname transform
     * @drawable true
     */
    transform(inputs: Inputs.Manifold.TransformCrossSectionDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
    /**
     * Move the vertices of this CrossSection (creating a new one) according to
     * any arbitrary input function, followed by a union operation (with a
     * Positive fill rule) that ensures any introduced intersections are not
     * included in the result.
     * @param inputs cross section and warp function
     * @returns Warped cross section shape
     * @group transforms
     * @shortname warp
     * @drawable true
     */
    warp(inputs: Inputs.Manifold.CrossSectionWarpDto<Inputs.Manifold.CrossSectionPointer>): Promise<Inputs.Manifold.CrossSectionPointer>;
}
