import type Layer from "@arcgis/core/layers/Layer";
import type MapImageLayer from "@arcgis/core/layers/MapImageLayer";
import type PortalItem from "@arcgis/core/portal/PortalItem";
import type { Schema } from "../data/Schema.js";
import type { MapServiceLayerJson } from "../json/MapServiceLayerJson.js";
import type { PropertyDefs } from "../support/Serializable.js";
import type { ArcGISSublayerExtensionCollection } from "./ArcGISSublayerExtension.js";
import type { MapImageSublayerExtensionProperties, MapImageSublayerExtension } from "./MapImageSublayerExtension.js";
import type { LayerExtensionProperties, LayerProperties } from "./_LayerExtension.js";
import { LayerExtension } from "./_LayerExtension.js";
/**
 * Properties that can be specified for the
 * {@link MapImageLayerExtensionProperties.layer} property.
 */
export type MapImageLayerProperties = MapServiceLayerJson & LayerProperties;
/**
 * Properties that can be passed into the constructor for
 * {@link MapImageLayerExtension}.
 */
export interface MapImageLayerExtensionProperties extends LayerExtensionProperties {
    /**
     * See {@link mapping/_LayerExtension!LayerExtension.layer}.
     */
    layer?: MapImageLayer | MapImageLayerProperties;
    /**
     * See {@link mapping/_LayerExtension!LayerExtension.sublayerExtensions}.
     */
    sublayerExtensions?: (MapImageSublayerExtension | MapImageSublayerExtensionProperties)[];
}
/**
 * Extends the capabilities of an Esri MapImageLayer object.
 */
export declare class MapImageLayerExtension extends LayerExtension<MapImageLayerExtensionProperties> {
    get layer(): MapImageLayer;
    get sublayerExtensions(): ArcGISSublayerExtensionCollection<MapImageSublayerExtension>;
    /**
     * @inheritDoc
     */
    readonly allSublayerExtensions: ArcGISSublayerExtensionCollection<MapImageSublayerExtension>;
    get supportsSublayers(): boolean;
    get sublayersAreReadOnly(): boolean;
    protected _createSublayerExtension(properties?: MapImageSublayerExtensionProperties): MapImageSublayerExtension;
    protected _getSerializableProperties(): PropertyDefs<MapImageLayerExtensionProperties>;
    /**
     * @inheritDoc
     */
    protected _isSupportedLayer(layer: Layer): boolean;
    protected _createSchema(): Schema;
    protected _applyPortalItemProperties(portalItem: PortalItem): Promise<void>;
}
