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 ManifoldTransforms {
    private readonly manifoldWorkerManager;
    constructor(manifoldWorkerManager: ManifoldWorkerManager);
    /**
     * Scales a manifold shape with 3D vector
     * @param inputs manifold and scale vector
     * @returns Scaled manifold shape
     * @group transforms
     * @shortname scale 3d
     * @drawable true
     */
    scale3D(inputs: Inputs.Manifold.Scale3DDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer>;
    /**
     * Scales a manifold shape with single factor
     * @param inputs manifold and scale factor
     * @returns Scaled manifold shape
     * @group transforms
     * @shortname scale uniform
     * @drawable true
     */
    scale(inputs: Inputs.Manifold.ScaleDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer>;
    /**
     * Mirrors a manifold shape over a plane defined by a normal vector
     * @param inputs manifold and normal vector
     * @returns Mirrored manifold shape
     * @group transforms
     * @shortname mirror
     * @drawable true
     */
    mirror(inputs: Inputs.Manifold.MirrorDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer>;
    /**
    * Translates a manifold shape along the vector
    * @param inputs manifold and trnaslation vector
    * @returns Translated manifold shape
    * @group transforms
    * @shortname translate
    * @drawable true
    */
    translate(inputs: Inputs.Manifold.TranslateDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer>;
    /**
    * Translates a manifold shape along by multiple vectors
    * @param inputs manifold and trnaslation vectors
    * @returns Translated manifold shapes
    * @group multiple
    * @shortname translate by vectors
    * @drawable true
    */
    translateByVectors(inputs: Inputs.Manifold.TranslateByVectorsDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer[]>;
    /**
     * Translates a manifold shape along x, y, z
     * @param inputs manifold and trnaslation coordinates
     * @returns Translated manifold shape
     * @group transforms
     * @shortname translate xyz
     * @drawable true
     */
    translateXYZ(inputs: Inputs.Manifold.TranslateXYZDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer>;
    /**
     * Rotates a manifold shape along the vector containing euler angles
     * @param inputs manifold and rotation vector
     * @returns Rotated manifold shape
     * @group transforms
     * @shortname rotate
     * @drawable true
     */
    rotate(inputs: Inputs.Manifold.RotateDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer>;
    /**
     * Rotates a manifold shape along the x y z euler angles
     * @param inputs manifold and rotation eulers
     * @returns Rotated manifold shape
     * @group transforms
     * @shortname rotate xyz
     * @drawable true
     */
    rotateXYZ(inputs: Inputs.Manifold.RotateXYZDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer>;
    /**
     * Transforms a manifold shape by using the 4x4 transformation matrix
     * @param inputs manifold and transformation matrix
     * @returns Transformed manifold shape
     * @group matrix
     * @shortname transform
     * @drawable true
     */
    transform(inputs: Inputs.Manifold.TransformDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer>;
    /**
     * Transforms a manifold shape by using the 4x4 transformation matrixes
     * @param inputs manifold and transformation matrixes
     * @returns Transformed manifold shape
     * @group matrix
     * @shortname transforms
     * @drawable true
     */
    transforms(inputs: Inputs.Manifold.TransformsDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Manifold.ManifoldPointer>;
}
