/** @packageDocumentation
 * @module Views
 */
import { Point2d, Range2d } from "@itwin/core-geometry";
import { RequestBasicCredentials } from "../../../request/Request";
import { MapCartoRectangle } from "../../../tile/internal";
export declare enum WmtsConstants {
    GOOGLEMAPS_LEVEL0_SCALE_DENOM = 559082264.0287178,
    GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME = "googlemapscompatible"
}
/** Encapsulation of the capabilities for an WMTS server
 */
export declare namespace WmtsCapability {
    class ServiceIdentification {
        readonly abstract?: string;
        readonly accessConstraints?: string;
        readonly fees?: string;
        readonly serviceType?: string;
        readonly serviceTypeVersion?: string;
        readonly title?: string;
        readonly keywords?: string[];
        constructor(elem: Element);
    }
    class OperationMetadata {
        private _getCapabilities?;
        get getCapabilities(): Operation | undefined;
        private _getFeatureInfo?;
        get getFeatureInfo(): Operation | undefined;
        private _getTile?;
        get getTile(): Operation | undefined;
        private readOperation;
        constructor(elem: Element);
    }
    class HttpDcp {
        readonly url?: string;
        readonly constraintName?: string;
        readonly encoding?: string;
        constructor(elem: Element);
    }
    class Operation {
        readonly name?: string;
        private _getDcpHttp?;
        get getDcpHttp(): HttpDcp[] | undefined;
        private _postDcpHttp?;
        get postDcpHttp(): HttpDcp[] | undefined;
        constructor(elem: Element);
    }
    class Contents {
        readonly layers: Layer[];
        readonly tileMatrixSets: TileMatrixSet[];
        constructor(elem: Element);
        getGoogleMapsCompatibleTileMatrixSet(): TileMatrixSet[];
        getEpsg4326CompatibleTileMatrixSet(): TileMatrixSet[];
    }
    class Style {
        readonly isDefault: boolean;
        readonly title?: string;
        readonly identifier?: string;
        constructor(elem: Element);
    }
    class BoundingBox {
        readonly crs?: string;
        readonly range?: Range2d;
        constructor(elem: Element);
    }
    class TileMatrixSetLimits {
        limits?: Range2d;
        tileMatrix?: string;
        constructor(elem: Element);
    }
    class TileMatrixSetLink {
        readonly tileMatrixSet: string;
        readonly tileMatrixSetLimits: TileMatrixSetLimits[];
        constructor(elem: Element);
    }
    class ResourceURL {
        readonly format: string;
        readonly resourceType: string;
        readonly template: string;
        constructor(elem: Element);
    }
    class TileMatrixSet {
        readonly identifier: string;
        readonly title?: string;
        readonly abstract?: string;
        readonly supportedCrs: string;
        readonly wellKnownScaleSet: string;
        readonly tileMatrix: TileMatrix[];
        constructor(elem: Element);
    }
    class TileMatrix {
        readonly identifier: string;
        readonly title?: string;
        readonly abstract?: string;
        readonly scaleDenominator: number;
        readonly topLeftCorner: Point2d;
        readonly tileWidth: number;
        readonly tileHeight: number;
        readonly matrixWidth: number;
        readonly matrixHeight: number;
        constructor(elem: Element);
    }
    class Layer {
        readonly identifier: string;
        readonly title?: string;
        readonly abstract?: string;
        readonly format?: string;
        readonly wsg84BoundingBox?: MapCartoRectangle;
        readonly boundingBox?: BoundingBox;
        readonly styles: Style[];
        readonly tileMatrixSetLinks: TileMatrixSetLink[];
        readonly resourceUrls: ResourceURL[];
        constructor(elem: Element);
    }
}
export declare class WmtsCapabilities {
    private static _capabilitiesCache;
    readonly version?: string;
    readonly serviceIdentification?: WmtsCapability.ServiceIdentification;
    readonly contents?: WmtsCapability.Contents;
    readonly operationsMetadata?: WmtsCapability.OperationMetadata;
    constructor(xmlDoc: Document);
    static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined;
    static create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean, queryParams?: {
        [key: string]: string;
    }): Promise<WmtsCapabilities | undefined>;
}
//# sourceMappingURL=WmtsCapabilities.d.ts.map