import type GraphicOrigin from "./GraphicOrigin.js";
import type KnowledgeGraphLayer from "../layers/KnowledgeGraphLayer.js";
import type KnowledgeGraphSublayer from "../layers/knowledgeGraph/KnowledgeGraphSublayer.js";

/**
 * Provides information about the [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/) from which a graphic originates.
 * Also provides access to the [KnowledgeGraphSublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/knowledgeGraph/KnowledgeGraphSublayer/) 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) or [queryFeatures()](https://developers.arcgis.com/javascript/latest/references/core/layers/knowledgeGraph/KnowledgeGraphSublayer/#queryFeatures).
 *
 * @since 5.0
 */
export default class KnowledgeGraphGraphicOrigin extends GraphicOrigin {
  constructor(layer: KnowledgeGraphLayer, sublayer: KnowledgeGraphSublayer);
  /** A layer from which a graphic originates. */
  readonly layer: KnowledgeGraphLayer;
  /** The [KnowledgeGraphSublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/knowledgeGraph/KnowledgeGraphSublayer/) from which a graphic originates. */
  readonly sublayer: KnowledgeGraphSublayer;
  /**
   * Indicates the type of layer the graphic originated from.
   *
   * @default "knowledge-graph"
   */
  readonly type: KnowledgeGraphLayer["type"];
}