namespace Mapbox.Unity.Map
{
public interface IImageryLayer : ILayer
{
///
/// Gets the `Data Source` for the `IMAGE` component.
///
ImagerySourceType LayerSource { get; }
///
/// Sets the `Data Source` for the `IMAGE` component. This can be one of the
/// [Mapbox default styles](https://www.mapbox.com/api-documentation/maps/#styles),
/// or a custom style. The style url is set as the `Tileset ID`.
///
/// Source of imagery for map. Can be a Mapbox default, or custom style.
void SetLayerSource(ImagerySourceType imageSource);
///
/// Enables or disables high quality images for the specified Data Source.
/// resoluion when enabled is 1024px, and 512px when disabled. Satellite
/// imagery is 512px when enabled, and 256 px when disabled. Changes to this
/// may not take effect until the cache is cleared.
///
/// Boolean to toggle `Use Retina`.
void UseRetina(bool useRetina);
///
/// Enables or disables Unity Texture2D compression for `IMAGE` outputs.
/// Enable this if you need performance rather than a high resolution image.
///
/// Boolean to toggle `Use Compression`.
void UseCompression(bool useCompression);
///
/// Enables or disables Unity Texture2D Mipmap for `IMAGE` outputs.
/// Mipmaps are lists of progressively smaller versions of an image, used
/// to optimize performance. Enabling mipmaps consumes more memory, but
/// provides improved performance.
///
/// Boolean to toggle `Use Mip Map`.
void UseMipMap(bool useMipMap);
///
/// Changes the settings for the `IMAGE` component.
///
/// `Data Source` for the IMAGE component.
/// Enables or disables high quality imagery.
/// Enables or disables Unity Texture2D compression.
/// Enables or disables Unity Texture2D image mipmapping.
void SetProperties(ImagerySourceType imageSource, bool useRetina, bool useCompression, bool useMipMap);
}
}