import type FeatureLayer from "../../layers/FeatureLayer.js";
import type SubtypeGroupLayer from "../../layers/SubtypeGroupLayer.js";
import type FeatureSet from "../../rest/support/FeatureSet.js";

/**
 * FeatureSetInfo represents the information for the results in the featureset.
 *
 * @since 5.0
 */
export interface FeatureSetInfo {
  /**
   * The [FeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html) of the dataset.
   *
   * @since 5.0
   */
  layer: FeatureLayer | SubtypeGroupLayer;
  /**
   * The [FeatureSet](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-FeatureSet.html).
   *
   * @since 5.0
   */
  featureSet: FeatureSet;
}

/**
 * Contains layerUrl, objectIds, and outFields.
 *
 * @since 4.31
 */
export interface LayerInfo {
  /**
   * The layerUrl of the feature layer.
   *
   * @since 5.0
   */
  layerUrl: string;
  /**
   * The objectIds of the elements.
   *
   * @since 5.0
   */
  objectIds: number[];
  /**
   * The outFields of a layer.
   *
   * @since 5.0
   */
  outFields?: string[];
}