import { type LngLatBoundsLike, type RasterSourceSpecification } from 'maplibre-gl'; import RasterResource from './raster'; import type { ResourceKind } from './resource'; import { type RequestTransform } from '../request'; export type WmtsOptions = { layerIds: string[]; tileSize?: number; }; export type Bounds = NonNullable; export type WmtsLayer = { id: string; title: string; tileUrls: string[]; tileSize: number; minzoom: number; maxzoom: number; bounds?: Bounds; }; type XyzGrid = { tileSize: number; minzoom: number; maxzoom: number; levelPrefix: string; }; type TileMatrixSet = { id: string; crs: string; grid?: XyzGrid; }; type TileMatrix = { zoom: number; prefix: string; tileWidth: number; tileHeight: number; matrixWidth: number; matrixHeight: number; topLeft: number[]; }; export default class WmtsResource extends RasterResource { readonly kind: ResourceKind; private options; private metadata; constructor(id: string, url: string, options: WmtsOptions, bounds?: LngLatBoundsLike, requestTransform?: RequestTransform); label(): string; protected getMetadata(): Promise; getLayers(): Promise; protected isRequested(element: Element): boolean; protected createLayer(element: Element, tileMatrixSets: Map): WmtsLayer | undefined; protected parseBounds(element: Element): Bounds | undefined; protected recordBounds(): Bounds | undefined; protected boundsMinzoom(bounds: Bounds | undefined): number; protected preferKnownHost(templates: string[]): string[]; protected getLinkedTileMatrixSets(element: Element, tileMatrixSets: Map): TileMatrixSet[]; protected getTileMatrixSets(metadata: Document): Map; protected parseTileMatrixSet(element: Element): TileMatrixSet | undefined; protected parseXyzGrid(element: Element, crs: string): XyzGrid | undefined; protected parseTileMatrix(element: Element): TileMatrix | undefined; protected formatTileUrl(template: string, style: string, tileMatrixSet: TileMatrixSet, dimensionDefaults?: Record): string; protected unsupportedGridMessage(elements: Element[], tileMatrixSets: Map): string; getScheme(): "xyz"; } export {};