// This file is part of meshoptimizer library and is distributed under the terms of MIT License. // Copyright (C) 2016-2025, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) export type Flags = 'LockBorder' | 'Sparse' | 'ErrorAbsolute' | 'Prune'; export const MeshoptSimplifier: { supported: boolean; ready: Promise<void>; compactMesh: (indices: Uint32Array) => [Uint32Array, number]; simplify: ( indices: Uint32Array, vertex_positions: Float32Array, vertex_positions_stride: number, target_index_count: number, target_error: number, flags?: Flags[] ) => [Uint32Array, number]; simplifyWithAttributes: ( indices: Uint32Array, vertex_positions: Float32Array, vertex_positions_stride: number, vertex_attributes: Float32Array, vertex_attributes_stride: number, attribute_weights: number[], vertex_lock: Uint8Array | null, target_index_count: number, target_error: number, flags?: Flags[] ) => [Uint32Array, number]; getScale: (vertex_positions: Float32Array, vertex_positions_stride: number) => number; simplifyPoints: ( vertex_positions: Float32Array, vertex_positions_stride: number, target_vertex_count: number, vertex_colors?: Float32Array, vertex_colors_stride?: number, color_weight?: number ) => Uint32Array; };