function formatPercentage(percentage) {
  return percentage.toLocaleString('en', {maximumFractionDigits: 10});
}
@typedef {Object} Options
@property {import("./Source.js").AttributionLike} [attributions] Attributions.
@property {boolean} [attributionsCollapsible=true] Attributions are collapsible.
@property {number} [cacheSize] Deprecated.  Use the cacheSize option on the layer instead.
@property {null|string} [crossOrigin] The value for the crossOrigin option of the request.
@property {import("../extent.js").Extent} [extent=[0, -height, width, 0]] The extent.
@property {string} [format='jpg'] Requested image format.
@property {boolean} [interpolate=true] Use interpolated values when resampling.  By default,
linear interpolation is used when resampling.  Set to false to use the nearest neighbor instead.
@property {import("../proj.js").ProjectionLike} [projection] Projection.
@property {string} [quality] Requested IIIF image quality. Default is 'native'
for version 1, 'default' for versions 2 and 3.
@property {number} [reprojectionErrorThreshold=0.5] Maximum allowed reprojection error (in pixels).
Higher values can increase reprojection performance, but decrease precision.
@property {Array<number>} [resolutions] Supported resolutions as given in IIIF 'scaleFactors'
@property {import("../size.js").Size} size Size of the image [width, height].
@property {Array<import("../size.js").Size>} [sizes] Supported scaled image sizes.
Content of the IIIF info.json 'sizes' property, but as array of Size objects.
@property {import("./Source.js").State} [state] Source state.
@property {Array<string>} [supports=[]] Supported IIIF region and size calculation
features.
@property {number} [tilePixelRatio] Tile pixel ratio.
@property {number|import("../size.js").Size} [tileSize] Tile size.
Same tile size is used for all zoom levels. If tile size is a number,
a square tile is assumed. If the IIIF image service supports arbitrary
tiling (sizeByH, sizeByW, sizeByWh or sizeByPct as well as regionByPx or regionByPct
are supported), the default tilesize is 256.
@property {number} [transition] Transition.
@property {string} [url] Base URL of the IIIF Image service.
This should be the same as the IIIF Image ID.
@property {import("../format/IIIFInfo.js").Versions} [version=Versions.VERSION2] Service's IIIF Image API version.
@property {number|import("../array.js").NearestDirectionFunction} [zDirection=0]
Choose whether to use tiles with a higher or lower zoom level when between integer
zoom levels. See {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution}.