import type KMLLayer from "@arcgis/core/layers/KMLLayer";
import type LayerType from "@arcgis/core/layers/Layer";
import type EsriPortalItem from "@arcgis/core/portal/PortalItem";
import type { QuerySourceCapabilities } from "../data/QuerySourceCapabilities.js";
import { Schema } from "../data/Schema.js";
import type { KMLLayerJson } from "../json/KMLLayerJson.js";
import type { PropertyDefs } from "../support/Serializable.js";
import type { KMLSublayerExtensionCollection, KMLSublayerExtensionProperties, KMLSublayerExtension } from "./KMLSublayerExtension.js";
import type { LayerExtensionProperties, LayerProperties } from "./_LayerExtension.js";
import { LayerExtension } from "./_LayerExtension.js";
import { SublayerExtensionCollectionBase } from "./support/_SublayerExtensionCollection.js";
/**
 * The URL for the default Esri KML utility endpoint.
 */
export declare const DEFAULT_KML_UTILITY = "https://utility.arcgis.com/sharing/kml";
/**
 * Properties that can be passed into the constructor for
 * {@link mapping/KMLLayerExtension!KMLLayerExtension}.
 */
export interface KMLLayerExtensionProperties extends LayerExtensionProperties {
    /**
     * The Esri KMLLayer object being extended.
     */
    layer?: KMLLayer | (KMLLayerJson & LayerProperties);
    /**
     * See {@link mapping/_LayerExtension!LayerExtension.sublayerExtensions}.
     */
    sublayerExtensions?: (KMLSublayerExtension | KMLSublayerExtensionProperties)[];
}
/**
 * Extends the capabilities of an Esri KMLLayer object.
 */
export declare class KMLLayerExtension extends LayerExtension<KMLLayerExtensionProperties> {
    get layer(): KMLLayer;
    get sublayerExtensions(): KMLSublayerExtensionCollection;
    get supportsSublayers(): boolean;
    get hasFeatures(): boolean;
    _createSublayerExtension(properties?: KMLSublayerExtensionProperties): KMLSublayerExtension;
    protected _applyPortalItemProperties(portalItem: EsriPortalItem): Promise<void>;
    /**
     * @inheritDoc
     */
    protected _capabilities(): QuerySourceCapabilities;
    protected _getSerializableProperties(): PropertyDefs<KMLLayerExtensionProperties>;
    protected _createSchema(): Schema;
    /**
     * @inheritDoc
     */
    protected _isSupportedLayer(layer: LayerType): boolean;
    protected _initializeLayer(): Promise<void>;
    protected _createSublayerExtensionCollection(): SublayerExtensionCollectionBase;
}
