import type SpatialReference from "@arcgis/core/geometry/SpatialReference.js";
import type { GeometryUnion } from "@arcgis/core/geometry/types.js";
import { Feature } from "../../data/Feature.js";
import type { FeatureSource } from "../../data/FeatureSource.js";
import type { WMSLayerExtension } from "../../mapping/WMSLayerExtension.js";
import type { RequestResponse } from "../../support/esri.js";
import type { CountResult } from "../CountResult.js";
import type { IdentifyOptions } from "./IdentifyOptions.js";
import { IdentifyProviderBase } from "./IdentifyProviderBase.js";
/**
 * An identify provider for WMS layers that uses the feature info endpoint.
 */
export declare class WMSLayerFeatureInfoIdentifyProvider extends IdentifyProviderBase {
    /**
     * @inheritDoc
     */
    isSupported(source: FeatureSource, geometry: GeometryUnion, options?: IdentifyOptions): boolean;
    /**
     * @inheritDoc
     */
    protected _identify(source: WMSLayerExtension, geometry: GeometryUnion, options: IdentifyOptions, geometryType?: string): AsyncIterable<Feature>;
    /**
     * @inheritDoc
     */
    protected _count(source: WMSLayerExtension, geometry: GeometryUnion, options: IdentifyOptions): Promise<CountResult>;
    /**
     * Normalize a feature to work with the popup. This includes generating a
     * title and setting up the field infos.
     *
     * @param feature The feature to normalize.
     * @param options Options that affect the identify operation.
     * @returns The normalized feature.
     */
    protected _normalizeFeature(feature: Feature, options: IdentifyOptions): Feature;
    protected _xmlToFeatures(result: RequestResponse, source: WMSLayerExtension, options: IdentifyOptions): AsyncIterable<Feature>;
    protected _jsonToFeatures(result: RequestResponse, options: IdentifyOptions, spatialReference: SpatialReference, source: WMSLayerExtension): AsyncIterable<Feature>;
    protected _membersToFeature(root: Element, source: WMSLayerExtension, options: IdentifyOptions): Iterable<Feature>;
}
