import type FeaturesViewModel from "../Features/FeaturesViewModel.js";
import type { FeaturesViewModelProperties } from "../Features/FeaturesViewModel.js";

export interface PopupViewModelProperties extends FeaturesViewModelProperties {}

/**
 * Provides the logic for the [Popup](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/) widget and [component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-popup/), which allows users to view
 * content from feature attributes. Popups enhance web applications
 * by providing users with a simple way to interact with and view attributes in a layer.
 * They play an important role in relaying information to the user, which improves the storytelling capabilities of the application.
 *
 * @since 4.0
 * @see [Popup](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/) widget - _Deprecated since 5.0. Use the [Popup component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-popup/) instead._
 * @see [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/)
 * @see [MapView.popup](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#popup) and [SceneView.popup](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#popup)
 * @see [Programming patterns: Widget viewModel pattern](https://developers.arcgis.com/javascript/latest/programming-patterns/#widget-viewmodel-pattern)
 * @see [Get started with popups](https://developers.arcgis.com/javascript/latest/sample-code/intro-popup/)
 * @see [Get started with PopupTemplate](https://developers.arcgis.com/javascript/latest/sample-code/intro-popuptemplate/)
 * @see [Sample - Dock positions with popup](https://developers.arcgis.com/javascript/latest/sample-code/popup-docking-position/)
 * @see [Sample - Popup actions](https://developers.arcgis.com/javascript/latest/sample-code/popup-actions/)
 */
export default class PopupViewModel extends FeaturesViewModel {
  constructor(properties?: PopupViewModelProperties);
}