import type { OperationalLayerJsonBase } from "./OperationalLayerJson";
import type { SpatialReferenceJson } from "./SpatialReferenceJson";
/**
 * The MediaLayer is used to add image and video elements to the map at a
 * specified geographic location. This layer can be used to display old scanned
 * maps, weather data, satellite imagery, aerial and drone images, fantasy
 * images and video feedback, etc. The geographic location of the image or video
 * can be set using the extent and rotation, corner points or control points.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/mediaLayer/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/mediaLayer/}.
 */
export interface MediaLayerJson extends OperationalLayerJsonBase {
    /**
     * Attribution to the Web Tile Layer provider. It is displayed in the
     * attribution on the web map. Input required by the user when the layer is
     * added to the web map.
     */
    georeference?: GeoreferenceJson | null;
    /**
     * Optional string containing the item ID of the Media Layer item registered
     * on ArcGIS Online or your organization's portal.
     */
    itemId?: string | null;
    /**
     * The type of layer.
     */
    layerType: "MediaLayer";
    /**
     * Indicates the type of media that the url points to. The currently
     * supported media types are image and video. Images must be in JPEG or PNG
     * format. For supported video formats, please refer to the MDN video codec
     * guide. 'mediaType' is applicable only when the url is defined.
     */
    mediaType?: "image" | "video" | null;
    /**
     * Url URL to the media file. It is not applicable when itemId is defined.
     * The url is relative when the media file is stored as an item resource.
     * Relative urls are only applicable for image media types. Video media
     * types only support external video urls at this time. See related
     * mediaType property.
     */
    url?: string | null;
}
/**
 * The georeference used to place a media in a MediaLayer.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/mediaLayer_georeference/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/mediaLayer_georeference/}.
 */
export interface GeoreferenceJson {
    /**
     * An array of 8 coefficients representing the projective transformation..
     */
    coefficients?: number[] | null;
    /**
     * An array of 4 user defined control points placed on the media..
     */
    controlPoints?: {
        x: number;
        y: number;
    }[] | null;
    /**
     * Numeric value indicating the height of media in pixels.
     */
    height?: number | null;
    /**
     * Image format of the cached tiles.
     */
    spatialReference?: SpatialReferenceJson | null;
    /**
     * Numeric value indicating the width of media in pixels.
     */
    width?: number | null;
}
