function TileProviderError(
  provider,
  message,
  x,
  y,
  level,
  timesRetried,
  error,
) {
  /**
   * The {@link ImageryProvider} or {@link TerrainProvider} that experienced the error.
   * @type {ImageryProvider|TerrainProvider}
   */
  this.provider = provider;

  /**
   * The message describing the error.
   * @type {string}
   */
  this.message = message;

  /**
   * The X coordinate of the tile that experienced the error.  If the error is not specific
   * to a particular tile, this property will be undefined.
   * @type {number}
   */
  this.x = x;

  /**
   * The Y coordinate of the tile that experienced the error.  If the error is not specific
   * to a particular tile, this property will be undefined.
   * @type {number}
   */
  this.y = y;

  /**
   * The level-of-detail of the tile that experienced the error.  If the error is not specific
   * to a particular tile, this property will be undefined.
   * @type {number}
   */
  this.level = level;

  /**
   * The number of times this operation has been retried.
   * @type {number}
   * @default 0
   */
  this.timesRetried = timesRetried ?? 0;

  /**
   * True if the failed operation should be retried; otherwise, false.  The imagery or terrain provider
   * will set the initial value of this property before raising the event, but any listeners
   * can change it.  The value after the last listener is invoked will be acted upon.
   * @type {boolean}
   * @default false
   */
  this.retry = false;

  /**
   * The error or exception that occurred, if any.
   * @type {Error}
   */
  this.error = error;
}
Provides details about an error that occurred in an {@link ImageryProvider} or a {@link TerrainProvider}.

@alias TileProviderError
@constructor

@param {ImageryProvider|TerrainProvider} provider The imagery or terrain provider that experienced the error.
@param {string} message A message describing the error.
@param {number} [x] The X coordinate of the tile that experienced the error, or undefined if the error
       is not specific to a particular tile.
@param {number} [y] The Y coordinate of the tile that experienced the error, or undefined if the error
       is not specific to a particular tile.
@param {number} [level] The level of the tile that experienced the error, or undefined if the error
       is not specific to a particular tile.
@param {number} [timesRetried=0] The number of times this operation has been retried.
@param {Error} [error] The error or exception that occurred, if any.