import type GraphicOrigin from "./GraphicOrigin.js";
import type GraphicsLayer from "../layers/GraphicsLayer.js";
import type MapNotesLayer from "../layers/MapNotesLayer.js";

/**
 * Provides information about the [MapNotesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapNotesLayer/) from which a graphic originates.
 * Also provides access to the sub [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/) that contains the graphic.
 * The [origin](https://developers.arcgis.com/javascript/latest/references/core/Graphic/#origin) information may be available when a graphic is returned from methods such as
 * [hitTest()](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#hitTest).
 *
 * @since 5.0
 * @see [MapView.hitTest()](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#hitTest)
 * @see [Map component hitTest()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#hitTest)
 */
export default class MapNotesGraphicOrigin extends GraphicOrigin {
  /** @alias module:esri/graphic/MapNotesGraphicOrigin */
  constructor(layer: MapNotesLayer, sublayer: GraphicsLayer);
  /** A layer from which a graphic originates. */
  readonly layer: MapNotesLayer;
  /** The [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/) from which a graphic originates. */
  readonly sublayer: GraphicsLayer;
  /**
   * Indicates the type of layer the graphic originated from.
   *
   * @default "map-notes"
   */
  readonly type: MapNotesLayer["type"];
}