import type LayerView from "./LayerView.js";
import type { MediaLayerViewMixin, MediaLayerViewMixinProperties } from "./MediaLayerViewMixin.js";
import type { LayerViewProperties } from "./LayerView.js";

export interface MediaLayerViewProperties extends LayerViewProperties, MediaLayerViewMixinProperties {}

/**
 * Represents the [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/) of a [MediaLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MediaLayer/)
 * after it has been added to a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/) in either a [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/), [Map component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/),
 * [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/) or [Scene component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-scene/).
 *
 * ## Keyboard shortcuts
 *
 * Various keyboard shortcuts are available when enabling interactive manipulation of media elements in the layer view.
 *
 * Shortcut | Action |
 * ---------|---------|
 * Z | Incrementally undo actions recorded in the stack. The undo/redo stack is for an individual operation, meaning you can redo/undo actions while updating a single element. |
 * R | Incrementally redo actions recorded in the stack. The undo/redo stack is for an individual operation, meaning you can redo/undo actions while updating a single element. |
 * Shift (resize) | Enable uniform scaling when resizing an element. |
 * Shift (rotate) | Enable rotation with 5 degree increments. |
 * Shift+Arrow | Move an element by a single pixel. |
 * Shift+Primary+Arrow | Move an element by 10 pixels. The primary key is the Cmd key on macos or Ctrl on other OS. |
 * Alt | Hold to move the source point when dragging a control point in the `reshape` tool. |
 * T | Toggle transparency of the element. |
 *
 * @since 4.30
 * @see [MediaLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MediaLayer/)
 */
export default abstract class MediaLayerView extends MediaLayerViewSuperclass {}
declare const MediaLayerViewSuperclass: typeof LayerView & typeof MediaLayerViewMixin