import type { EventedAccessor } from "../../core/Evented.js";
import type { EsriPromiseMixin } from "../../core/Promise.js";
import type { MapViewOrSceneView } from "../MapViewOrSceneView.js";

/**
 * Base class for all analysis views. Analysis views are instantiated automatically when an analysis is added to
 * `View.analyses`. Each analysis view is responsible for visualizing its associated analysis using custom
 * visualizations, providing access to analysis results, and exposing methods for interactive placement and manipulation
 * within the view.
 *
 * @since 5.0
 */
export default abstract class AnalysisView<ViewType extends MapViewOrSceneView = MapViewOrSceneView> extends AnalysisViewSuperclass {}
declare const AnalysisViewSuperclass: typeof EventedAccessor & typeof EsriPromiseMixin