import type ImageryLayer from "@arcgis/core/layers/ImageryLayer";
import type Layer from "@arcgis/core/layers/Layer";
import type PortalItem from "@arcgis/core/portal/PortalItem";
import type { FeatureSettings } from "../data/FeatureSettings.js";
import type { QuerySourceCapabilities } from "../data/QuerySourceCapabilities.js";
import type { Schema } from "../data/Schema.js";
import type { ImageServiceLayerJson } from "../json/ImageServiceLayerJson.js";
import type { PropertyDefs } from "../support/Serializable.js";
import type { LayerExtensionProperties, LayerProperties } from "./_LayerExtension.js";
import { LayerExtension } from "./_LayerExtension.js";
/**
 * Properties that can be passed into the constructor for
 * {@link ImageryLayerExtension}.
 */
export interface ImageryLayerExtensionProperties extends LayerExtensionProperties {
    /**
     * See {@link ImageryLayerExtension.layer}.
     */
    layer?: ImageryLayer | (ImageServiceLayerJson & LayerProperties);
    /**
     * See {@link ImageryLayerExtension.includeCatalogItems}.
     */
    includeCatalogItems?: boolean;
}
/**
 * Extends the capabilities of an Esri ImageServiceLayer object.
 */
export declare class ImageryLayerExtension extends LayerExtension<ImageryLayerExtensionProperties> {
    get hasFeatures(): boolean;
    get capabilities(): QuerySourceCapabilities;
    get layer(): ImageryLayer;
    /**
     * Whether catalog item features will be returned during an identify
     * operation.
     */
    includeCatalogItems: boolean;
    /**
     * Whether image service has an attribute table endpoint.
     */
    get hasRasterAttributeTable(): boolean;
    get canChangeDefinitionExpression(): boolean;
    /**
     * Capabilities for the layer. Set when layer is initialized.
     */
    private _layerCapabilities;
    private _hasRasterAttributeTable;
    protected _getSerializableProperties(): PropertyDefs<ImageryLayerExtensionProperties>;
    protected _onInitialize(): Promise<void>;
    protected _applyPortalItemProperties(portalItem: PortalItem): Promise<void>;
    /**
     * @inheritDoc
     */
    protected _isSupportedLayer(layer: Layer): boolean;
    protected _createSchema(): Schema;
    protected _createFeatureSettings(): FeatureSettings;
}
