import { Mesh } from "../form/Mesh";
import { NDArray, type NDArrayInt32, type NDArrayBool } from "../ndarray/NDArray";
import { IndexMap } from "../core/IndexMap";
import type { ReindexedMeshResult, SplitResult } from "./sync";
/** Apply an index map to an NDArray, off the main thread. */
export declare function reindexed(data: NDArray, map: IndexMap): Promise<NDArray>;
/** Apply face and point index maps to a Mesh, off the main thread. */
export declare function reindexed(data: Mesh, faceMap: IndexMap, pointMap: IndexMap): Promise<Mesh>;
/** Filter a mesh by a boolean face mask, off the main thread. */
export declare function reindexedByMask(m: Mesh, mask: NDArrayBool): Promise<Mesh>;
/** Filter a mesh by a boolean face mask with index maps, off the main thread. */
export declare function reindexedByMask(m: Mesh, mask: NDArrayBool, opts: {
    returnIndexMap: true;
}): Promise<ReindexedMeshResult>;
/** Extract specific faces by IDs, off the main thread. */
export declare function reindexedByIds(m: Mesh, ids: NDArrayInt32): Promise<Mesh>;
/** Extract specific faces with index maps, off the main thread. */
export declare function reindexedByIds(m: Mesh, ids: NDArrayInt32, opts: {
    returnIndexMap: true;
}): Promise<ReindexedMeshResult>;
/** Filter mesh by point mask, off the main thread. */
export declare function reindexedByMaskOnPoints(m: Mesh, mask: NDArrayBool): Promise<Mesh>;
/** Filter mesh by point mask with index maps, off the main thread. */
export declare function reindexedByMaskOnPoints(m: Mesh, mask: NDArrayBool, opts: {
    returnIndexMap: true;
}): Promise<ReindexedMeshResult>;
/** Filter mesh by point IDs, off the main thread. */
export declare function reindexedByIdsOnPoints(m: Mesh, ids: NDArrayInt32): Promise<Mesh>;
/** Filter mesh by point IDs with index maps, off the main thread. */
export declare function reindexedByIdsOnPoints(m: Mesh, ids: NDArrayInt32, opts: {
    returnIndexMap: true;
}): Promise<ReindexedMeshResult>;
/** Merge multiple meshes into one, off the main thread. */
export declare function concatenateMeshes(meshes: Mesh[]): Promise<Mesh>;
export declare function concatenateMeshes(...meshes: Mesh[]): Promise<Mesh>;
/** Split a mesh by per-face labels, off the main thread. */
export declare function splitIntoComponents(m: Mesh, labels: NDArrayInt32): Promise<SplitResult>;
//# sourceMappingURL=async.d.ts.map