function BingMapsImageryProvider(options) {
  options = options ?? Frozen.EMPTY_OBJECT;

  this._defaultAlpha = undefined;
  this._defaultNightAlpha = undefined;
  this._defaultDayAlpha = undefined;
  this._defaultBrightness = undefined;
  this._defaultContrast = undefined;
  this._defaultHue = undefined;
  this._defaultSaturation = undefined;
  this._defaultGamma = 1.0;
  this._defaultMinificationFilter = undefined;
  this._defaultMagnificationFilter = undefined;

  this._mapStyle = options.mapStyle ?? BingMapsStyle.AERIAL;
  this._mapLayer = options.mapLayer;
  this._culture = options.culture ?? "";
  this._key = options.key;

  this._tileDiscardPolicy = options.tileDiscardPolicy;
  if (!defined(this._tileDiscardPolicy)) {
    this._tileDiscardPolicy = new DiscardEmptyTilePolicy();
  }

  this._proxy = options.proxy;
  this._credit = new Credit(
    `<a href="https://www.microsoft.com/en-us/maps/bing-maps/product"><img src="${BingMapsImageryProvider.logoUrl}" title="Bing Imagery"/></a>`,
  );

  this._tilingScheme = new WebMercatorTilingScheme({
    numberOfLevelZeroTilesX: 2,
    numberOfLevelZeroTilesY: 2,
    ellipsoid: options.ellipsoid,
  });

  this._tileWidth = undefined;
  this._tileHeight = undefined;
  this._maximumLevel = undefined;
  this._imageUrlTemplate = undefined;
  this._imageUrlSubdomains = undefined;
  this._attributionList = undefined;

  this._errorEvent = new Event();
}
<div class="notice">
To construct a BingMapsImageryProvider, call {@link BingMapsImageryProvider.fromUrl}. Do not call the constructor directly.
</div>

Provides tiled imagery using the Bing Maps Imagery REST API.

@alias BingMapsImageryProvider
@constructor

@param {BingMapsImageryProvider.ConstructorOptions} options Object describing initialization options

@see BingMapsImageryProvider.fromUrl
@see ArcGisMapServerImageryProvider
@see GoogleEarthEnterpriseMapsProvider
@see OpenStreetMapImageryProvider
@see SingleTileImageryProvider
@see TileMapServiceImageryProvider
@see WebMapServiceImageryProvider
@see WebMapTileServiceImageryProvider
@see UrlTemplateImageryProvider

@example
const bing = await Cesium.BingMapsImageryProvider.fromUrl(
  "https://dev.virtualearth.net", {
    key: "get-yours-at-https://www.bingmapsportal.com/",
    mapStyle: Cesium.BingMapsStyle.AERIAL
});

@see {@link http://msdn.microsoft.com/en-us/library/ff701713.aspx|Bing Maps REST Services}
@see {@link http://www.w3.org/TR/cors/|Cross-Origin Resource Sharing}