import type Accessor from "../../core/Accessor.js";

export interface FeatureAbilitiesProperties extends Partial<Pick<FeatureAbilities, "attachmentsContent" | "chartAnimation" | "customContent" | "expressionContent" | "fieldsContent" | "mediaContent" | "relationshipContent" | "textContent" | "utilityNetworkAssociationsContent">> {}

/**
 * Defines specific abilities used when querying and displaying popup content.
 *
 * @since 5.1
 */
export default class FeatureAbilities extends Accessor {
  constructor(properties?: FeatureAbilitiesProperties);
  /**
   * Indicates whether to query and display [attachments](https://developers.arcgis.com/javascript/latest/references/core/popup/content/AttachmentsContent/) associated with the feature.
   *
   * @default true
   */
  accessor attachmentsContent: boolean;
  /**
   * Indicates whether to display animations for charts residing in [media content elements](https://developers.arcgis.com/javascript/latest/references/core/popup/content/MediaContent/).
   *
   * @default true
   */
  accessor chartAnimation: boolean;
  /**
   * Indicates whether to display any [custom content elements](https://developers.arcgis.com/javascript/latest/references/core/popup/content/CustomContent/).
   *
   * @default true
   */
  accessor customContent: boolean;
  /**
   * Indicates whether to display any [expression content elements](https://developers.arcgis.com/javascript/latest/references/core/popup/content/ExpressionContent/).
   *
   * @default true
   */
  accessor expressionContent: boolean;
  /**
   * Indicates whether to display any [fields content elements](https://developers.arcgis.com/javascript/latest/references/core/popup/content/FieldsContent/).
   *
   * @default true
   */
  accessor fieldsContent: boolean;
  /**
   * Indicates whether to display any [media content elements](https://developers.arcgis.com/javascript/latest/references/core/popup/content/MediaContent/).
   *
   * @default true
   */
  accessor mediaContent: boolean;
  /**
   * Indicates whether to display [relationship content elements](https://developers.arcgis.com/javascript/latest/references/core/popup/content/RelationshipContent/).
   *
   * @default true
   */
  accessor relationshipContent: boolean;
  /**
   * Indicates whether to display any [text content elements](https://developers.arcgis.com/javascript/latest/references/core/popup/content/TextContent/).
   *
   * @default true
   */
  accessor textContent: boolean;
  /**
   * Indicates whether to display [utility network associations content elements](https://developers.arcgis.com/javascript/latest/references/core/popup/content/UtilityNetworkAssociationsContent/).
   *
   * @default true
   */
  accessor utilityNetworkAssociationsContent: boolean;
}