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

  this._tilingScheme = new GeographicTilingScheme({
    numberOfLevelZeroTilesX: 2,
    numberOfLevelZeroTilesY: 2,
    rectangle: new Rectangle(
      -CesiumMath.PI,
      -CesiumMath.PI,
      CesiumMath.PI,
      CesiumMath.PI,
    ),
    ellipsoid: options.ellipsoid,
  });

  let credit = options.credit;
  if (typeof credit === "string") {
    credit = new Credit(credit);
  }
  this._credit = credit;

  // Pulled from Google's documentation
  this._levelZeroMaximumGeometricError = 40075.16;

  this._terrainCache = new TerrainCache();
  this._terrainPromises = {};
  this._terrainRequests = {};

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

Provides tiled terrain using the Google Earth Enterprise REST API.

@alias GoogleEarthEnterpriseTerrainProvider
@constructor

@param {GoogleEarthEnterpriseTerrainProvider.ConstructorOptions} [options] An object describing initialization options

@see GoogleEarthEnterpriseTerrainProvider.fromMetadata
@see GoogleEarthEnterpriseMetadata.fromUrl
@see GoogleEarthEnterpriseImageryProvider
@see CesiumTerrainProvider

@example
const geeMetadata = await GoogleEarthEnterpriseMetadata.fromUrl("http://www.example.com");
const gee = Cesium.GoogleEarthEnterpriseTerrainProvider.fromMetadata(geeMetadata);

@see {@link http://www.w3.org/TR/cors/|Cross-Origin Resource Sharing}