import type ArcGISSublayer from "@arcgis/core/layers/support/Sublayer";
import type { SublayerJson } from "../json/SublayerJson.js";
import type { ArcGISSublayerExtensionCollection, ArcGISSublayerExtensionProperties, ArcGISSublayerProperties } from "./ArcGISSublayerExtension.js";
import { ArcGISSublayerExtension } from "./ArcGISSublayerExtension.js";
import type { MapImageLayerExtension } from "./MapImageLayerExtension.js";
/**
 * Properties that can be specified for the
 * {@link MapImageSublayerExtensionProperties.sublayer} property.
 */
export interface MapImageSublayerProperties extends ArcGISSublayerProperties, SublayerJson {
}
/**
 * Properties that can be passed into the constructor for
 * {@link MapImageSublayerExtension}.
 */
export interface MapImageSublayerExtensionProperties extends ArcGISSublayerExtensionProperties {
    /**
     * See {@link mapping/_SublayerExtension!SublayerExtension.sublayer}.
     */
    sublayer?: ArcGISSublayer | MapImageSublayerProperties;
    /**
     * See
     * {@link mapping/_SublayerExtension!SublayerExtension.sublayerExtensions}.
     */
    sublayerExtensions?: (MapImageSublayerExtension | MapImageSublayerExtensionProperties)[];
}
/**
 * Extends the capabilities of an Esri Sublayer object.
 */
export declare class MapImageSublayerExtension extends ArcGISSublayerExtension<MapImageSublayerExtensionProperties> {
    get layerExtension(): MapImageLayerExtension;
    get sublayerExtensions(): ArcGISSublayerExtensionCollection<this>;
    get canChangeOpacity(): boolean;
    get canChangeRenderer(): boolean;
    get canChangeLabels(): boolean;
    get canChangeDefinitionExpression(): boolean;
    protected _onInitialize(): Promise<void>;
    protected _createSublayerExtension(properties?: MapImageSublayerExtensionProperties): MapImageSublayerExtension;
}
