function MapboxImageryProvider(options) {
  options = options ?? Frozen.EMPTY_OBJECT;
  const mapId = options.mapId;
  //>>includeStart('debug', pragmas.debug);
  if (!defined(mapId)) {
    throw new DeveloperError("options.mapId is required.");
  }
  //>>includeEnd('debug');

  const accessToken = options.accessToken;
  //>>includeStart('debug', pragmas.debug);
  if (!defined(accessToken)) {
    throw new DeveloperError("options.accessToken is required.");
  }
  //>>includeEnd('debug');

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

  const resource = Resource.createIfNeeded(
    options.url ?? "https://{s}.tiles.mapbox.com/v4/",
  );

  this._mapId = mapId;
  this._accessToken = accessToken;

  let format = options.format ?? "png";
  if (!/\./.test(format)) {
    format = `.${format}`;
  }
  this._format = format;

  let templateUrl = resource.getUrlComponent();
  if (!trailingSlashRegex.test(templateUrl)) {
    templateUrl += "/";
  }
  templateUrl += `${mapId}/{z}/{x}/{y}${this._format}`;
  resource.url = templateUrl;

  resource.setQueryParameters({
    access_token: accessToken,
  });

  let credit;
  if (defined(options.credit)) {
    credit = options.credit;
    if (typeof credit === "string") {
      credit = new Credit(credit);
    }
  } else {
    credit = defaultCredit;
  }

  this._resource = resource;
  this._imageryProvider = new UrlTemplateImageryProvider({
    url: resource,
    credit: credit,
    ellipsoid: options.ellipsoid,
    minimumLevel: options.minimumLevel,
    maximumLevel: options.maximumLevel,
    rectangle: options.rectangle,
  });
}
Provides tiled imagery hosted by Mapbox.

@alias MapboxImageryProvider
@constructor

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

@example
// Mapbox tile provider
const mapbox = new Cesium.MapboxImageryProvider({
    mapId: 'mapbox.mapbox-terrain-v2',
    accessToken: 'thisIsMyAccessToken'
});

@see {@link https://docs.mapbox.com/api/maps/raster-tiles/}
@see {@link https://docs.mapbox.com/api/accounts/tokens/}