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 MeshEvaluate {
    private readonly manifoldWorkerManager;
    constructor(manifoldWorkerManager: ManifoldWorkerManager);
    /**
     * Get position on mesh vertex index
     * @param inputs mesh
     * @returns point
     * @group basic
     * @shortname position
     * @drawable true
     */
    position(inputs: Inputs.Manifold.MeshVertexIndexDto<Inputs.Manifold.MeshPointer>): Promise<Inputs.Base.Point3>;
    /**
     * Gets the three vertex indices of this triangle in CCW order.
     * @param inputs mesh
     * @returns verts
     * @group basic
     * @shortname verts
     * @drawable false
     */
    verts(inputs: Inputs.Manifold.MeshTriangleIndexDto<Inputs.Manifold.MeshPointer>): Promise<number[]>;
    /**
     * Gets the tangent vector starting at verts(tri)[j] pointing to the next
     * Bezier point along the CCW edge. The fourth value is its weight.
     * @param inputs mesh
     * @returns tangent
     * @group basic
     * @shortname tangent
     * @drawable true
     */
    tangent(inputs: Inputs.Manifold.MeshHalfEdgeIndexDto<Inputs.Manifold.MeshPointer>): Promise<number[]>;
    /**
     * Gets any other properties associated with this vertex.
     * @param inputs mesh
     * @returns extras
     * @group basic
     * @shortname extras
     * @drawable false
     */
    extras(inputs: Inputs.Manifold.MeshVertexIndexDto<Inputs.Manifold.MeshPointer>): Promise<number[]>;
    /**
     * Gets the column-major 4x4 matrix transform from the original mesh to these
     * related triangles.
     * @param inputs mesh
     * @returns transform matrix
     * @group basic
     * @shortname transform 4x4 matrix
     * @drawable false
     */
    transform(inputs: Inputs.Manifold.MeshVertexIndexDto<Inputs.Manifold.MeshPointer>): Promise<number[]>;
    /**
     * Number of properties per vertex, always >= 3.
     * @param inputs mesh
     * @returns number of properties
     * @group basic
     * @shortname number props
     * @drawable false
     */
    numProp(inputs: Inputs.Manifold.MeshDto<Inputs.Manifold.MeshPointer>): Promise<number>;
    /**
     * Number of property vertices
     * @param inputs mesh
     * @returns number of vertices
     * @group basic
     * @shortname number vertices
     * @drawable false
     */
    numVert(inputs: Inputs.Manifold.MeshDto<Inputs.Manifold.MeshPointer>): Promise<number>;
    /**
     * Get number of triangles on mesh
     * @param inputs mesh
     * @returns number of triangles
     * @group basic
     * @shortname number triangles
     * @drawable false
     */
    numTri(inputs: Inputs.Manifold.MeshDto<Inputs.Manifold.MeshPointer>): Promise<number>;
    /**
     * Number of triangle runs. Each triangle run is a set of consecutive
     * triangles that all come from the same instance of the same input mesh.
     * @param inputs mesh
     * @returns number of runs
     * @group basic
     * @shortname number runs
     * @drawable false
     */
    numRun(inputs: Inputs.Manifold.MeshDto<Inputs.Manifold.MeshPointer>): Promise<number>;
}
