import type { ClonableMixin } from "../../core/Clonable.js";
import type { JSONSupport } from "../../core/JSONSupport.js";

export interface MeshLocalVertexSpaceProperties extends Partial<Pick<MeshLocalVertexSpace, "origin">> {}

/**
 * A mesh vertex space that indicates mesh vertices exist in a plain cartesian space as often encountered in 3D
 * modeling and CAD applications. Georeferencing is done by using the coordinates in the
 * [local tangent plane](https://en.wikipedia.org/wiki/Local_tangent_plane_coordinates)
 * reference frame at the fully georeferenced [origin](https://developers.arcgis.com/javascript/latest/references/core/geometry/support/MeshLocalVertexSpace/#origin)
 * of the vertex space.
 *
 * See [mesh API](https://developers.arcgis.com/javascript/latest/references/core/geometry/Mesh/#mesh-api) for details.
 *
 * @since 4.27
 * @see [Mesh](https://developers.arcgis.com/javascript/latest/references/core/geometry/Mesh/)
 */
export default class MeshLocalVertexSpace extends MeshLocalVertexSpaceSuperclass {
  constructor(properties?: MeshLocalVertexSpaceProperties);
  /** Origin of the vertex space. These coordinates are interpreted in the spatial reference of the mesh using the vertex space. */
  accessor origin: readonly [
      number,
      number,
      number
  ];
  /** Type of the vertex space. */
  readonly type: "local";
}
declare const MeshLocalVertexSpaceSuperclass: typeof JSONSupport & typeof ClonableMixin