import type ArcGISSublayer from "@arcgis/core/layers/support/Sublayer";
import type { SublayerJson } from "../json/SublayerJson.js";
import type { PropertyDefs } from "../support/Serializable.js";
import type { ArcGISSublayerExtensionCollection, ArcGISSublayerExtensionProperties, ArcGISSublayerProperties } from "./ArcGISSublayerExtension.js";
import { ArcGISSublayerExtension } from "./ArcGISSublayerExtension.js";
import type { TileLayerExtension } from "./TileLayerExtension.js";
/**
 * Properties that can be specified for the
 * {@link TileSublayerExtensionProperties.sublayer} property.
 */
export interface TileSublayerProperties extends ArcGISSublayerProperties, SublayerJson {
}
/**
 * Properties that can be passed into the constructor for
 * {@link TileSublayerExtension}.
 */
export interface TileSublayerExtensionProperties extends ArcGISSublayerExtensionProperties {
    /**
     * See {@link mapping/_SublayerExtension!SublayerExtension.sublayer}.
     */
    sublayer?: ArcGISSublayer | TileSublayerProperties;
    /**
     * See
     * {@link mapping/_SublayerExtension!SublayerExtension.sublayerExtensions}.
     */
    sublayerExtensions?: (TileSublayerExtension | TileSublayerExtensionProperties)[];
}
/**
 * Extends the capabilities of an Esri Sublayer object.
 */
export declare class TileSublayerExtension extends ArcGISSublayerExtension<TileSublayerExtensionProperties> {
    get layerExtension(): TileLayerExtension;
    get sublayerExtensions(): ArcGISSublayerExtensionCollection<this>;
    get canToggleVisibility(): boolean;
    get canChangeOpacity(): boolean;
    get canChangeScale(): boolean;
    protected _createSublayerExtension(properties?: TileSublayerExtensionProperties): TileSublayerExtension;
    protected _getSerializableProperties(): PropertyDefs<TileSublayerExtensionProperties>;
}
