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

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

/**
 * A mesh vertex space that indicates mesh vertices to be 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/api-reference/esri-geometry-support-MeshLocalVertexSpace.html#origin)
 * of the vertex space.
 *
 * See [mesh API](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Mesh.html#mesh-api) for details.
 *
 * @since 4.27
 * @see [Mesh](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Mesh.html)
 */
export default class MeshLocalVertexSpace extends MeshLocalVertexSpaceSuperclass {
  constructor(properties?: MeshLocalVertexSpaceProperties);
  /** Origin of the vertex space. This will be interpreted as coordinates in the SpatialReference 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