import type Layer from "@arcgis/core/layers/Layer";
import type WMTSLayer from "@arcgis/core/layers/WMTSLayer";
import type PortalItem from "@arcgis/core/portal/PortalItem";
import type { WebTileLayerJson } from "../json/WebTileLayerJson.js";
import type { PropertyDefs, SerializeMode } from "../support/Serializable.js";
import type { LayerExtensionProperties, LayerProperties } from "./_LayerExtension.js";
import { LayerExtension } from "./_LayerExtension.js";
import type { LayerListSettings, LayerListSettingsProperties } from "./support/LayerListSettings.js";
/**
 * Properties that can be passed into the constructor for
 * {@link WMTSLayerExtension}.
 */
export interface WMTSLayerExtensionProperties extends LayerExtensionProperties {
    /**
     * The Esri WMTSLayer object being extended.
     */
    layer?: WMTSLayer | (WebTileLayerJson & LayerProperties);
}
/**
 * Extends the capabilities of an Esri WMTSLayer object.
 */
export declare class WMTSLayerExtension extends LayerExtension<WMTSLayerExtensionProperties> {
    get supportsSublayers(): boolean;
    get layer(): WMTSLayer;
    toJSON(serializeMode?: SerializeMode): WMTSLayerExtensionProperties;
    protected _getSerializableProperties(): PropertyDefs<WMTSLayerExtensionProperties>;
    protected _createLayerListSettings(properties?: LayerListSettingsProperties): LayerListSettings;
    protected _onInitialize(): Promise<void>;
    /**
     * @inheritDoc
     */
    protected _isSupportedLayer(layer: Layer): boolean;
    protected _applyPortalItemProperties(portalItem: PortalItem): Promise<void>;
    private _ensureActiveLayerDefaults;
}
