import { Position } from '../Core';
import { OrientationType } from './OrientationType';

/**
 * Contain all updatable options of an Image.
 */
export interface ImageUpdateOptions {
    /**
     * Position in WGS84 coordinates.
     * @see {@link Position}
     */
    readonly position?: Position;
    /**
     * Width of the image in meters.
     * Note that if only width is provided, this will update width AND height
     */
    readonly width?: number;
    /**
     * Height of the image in meters.
     * Note that if only height is provided, this won't have any effect.
     */
    readonly height?: number;
    /**
     * Rotation, in degrees, of the image that'll be used if its orientationType is 'fixed'.
     * Note that angle is related to map's orientation.
     */
    readonly rotation?: number;
    /**
     * Url of the file to be used for current image.
     * It can be relative to provided baseURL.
     * It can be absolute.
     * It can be a web URL.
     * It can be a data URL.
     */
    readonly url?: string;
    /**
     * Behavior of the image relative to the camera
     * @see {@link OrientationType}
     */
    readonly orientationType?: OrientationType;
    /**
     * If set to false, current Image won't be rendered.
     */
    readonly isVisible?: boolean;
}
