import { NDArrayFloat32 } from "../ndarray/NDArray";
import { Mesh } from "../form/Mesh";
import { PointCloud } from "../form/PointCloud";
import { Polygon } from "../primitive";
import type { PrincipalCurvatures, PrincipalDirections, IcpOptions, ObbOptions, ChamferOptions } from "./sync";
import type { MeshLike } from "../form/MeshLike";
/** Triangulate polygons into a triangle mesh (async). */
export declare function triangulate(input: Mesh | MeshLike | Polygon): Promise<Mesh>;
/** Create a UV sphere mesh centered at origin (async). */
export declare function sphereMesh(radius: number, stacks: number, segments: number): Promise<Mesh>;
/** Create a cylinder mesh centered at origin along the z-axis (async). */
export declare function cylinderMesh(radius: number, height: number, segments: number): Promise<Mesh>;
/** Create an axis-aligned box mesh centered at origin (async). Optionally subdivided. */
export declare function boxMesh(width: number, height: number, depth: number, widthTicks?: number, heightTicks?: number, depthTicks?: number): Promise<Mesh>;
/** Create a flat rectangular plane mesh in the XY plane, centered at origin (async). */
export declare function planeMesh(width: number, height: number, widthTicks?: number, heightTicks?: number): Promise<Mesh>;
/** Total surface area of a mesh (async). */
export declare function area(m: Mesh): Promise<number>;
/** Signed volume of a closed 3D mesh (async). */
export declare function signedVolume(m: Mesh): Promise<number>;
/** Absolute volume of a closed 3D mesh (async). */
export declare function volume(m: Mesh): Promise<number>;
/** Mean edge length across all faces (async). */
export declare function meanEdgeLength(m: Mesh): Promise<number>;
/** Minimum edge length across all faces (async). */
export declare function minEdgeLength(m: Mesh): Promise<number>;
/** Maximum edge length across all faces (async). */
export declare function maxEdgeLength(m: Mesh): Promise<number>;
/** Return a new mesh with consistently oriented, outward-pointing normals (async). */
export declare function positivelyOriented(m: Mesh, isConsistent?: boolean): Promise<Mesh>;
/** Compute principal curvatures (k0, k1) at each vertex (async). */
export declare function principalCurvatures(m: Mesh, k?: number): Promise<PrincipalCurvatures>;
/** Compute principal curvatures and directions at each vertex (async). */
export declare function principalDirections(m: Mesh, k?: number): Promise<PrincipalDirections>;
/** Compute shape index at each vertex (async). Values in [-1, 1]. */
export declare function shapeIndex(m: Mesh, k?: number): Promise<NDArrayFloat32>;
/** Laplacian smoothing (async). Returns a new mesh with smoothed vertex positions. */
export declare function laplacianSmoothed(m: Mesh, iterations: number, lambda?: number): Promise<Mesh>;
/** Taubin smoothing (volume-preserving, async). Returns a new mesh with smoothed vertex positions. */
export declare function taubinSmoothed(m: Mesh, iterations: number, lambda?: number, kpb?: number): Promise<Mesh>;
/** Kabsch/SVD rigid alignment (async). Returns 4x4 delta matrix. */
export declare function fitRigidAlignment(source: PointCloud, target: PointCloud): Promise<NDArrayFloat32>;
/** Iterative Closest Point alignment (async). Returns 4x4 delta matrix. */
export declare function fitIcpAlignment(source: PointCloud, target: PointCloud, opts?: IcpOptions): Promise<NDArrayFloat32>;
/** Coarse alignment via oriented bounding boxes (async). Returns 4x4 delta matrix. */
export declare function fitObbAlignment(source: PointCloud, target: PointCloud, opts?: ObbOptions): Promise<NDArrayFloat32>;
/** One-way Chamfer distance (async). */
export declare function chamferError(source: PointCloud, target: PointCloud, opts?: ChamferOptions): Promise<number>;
//# sourceMappingURL=async.d.ts.map