import type Point from "../../geometry/Point.js";
import type { MapViewOrSceneView } from "../MapViewOrSceneView.js";

/** @since 5.0 */
export default class CursorUpdateEvent {
  constructor(view: MapViewOrSceneView, vertexIndex: number | null, vertices: number[][], mapPoint?: Point | null);
  /**
   * An array of numbers representing an x,y coordinate pair in the spatial reference of the view.
   *
   * @since 5.0
   */
  coordinates: number[] | null;
  /**
   * Set to true when `preventDefault()` is called.
   *
   * @default false
   * @since 5.0
   */
  defaultPrevented: boolean;
  /**
   * The type of the event.
   *
   * @since 5.0
   */
  readonly type: "cursor-update";
  /**
   * Index of the cursor-vertex within the list of the cursor update event (is null if cursor can not be projected onto the map)
   *
   * @since 5.0
   */
  vertexIndex?: number | null;
  /**
   * Two-dimensional array of numbers representing the coordinates of each vertex
   * that comprises the drawn geometry.
   *
   * @since 5.0
   */
  vertices: number[][];
  /**
   * Prevents event propagation bubbling up the event chain.
   *
   * @since 5.0
   */
  preventDefault(): void;
}