import type { GeometryUnion } from "@arcgis/core/geometry/types.js";
import type { Feature } from "../../data/Feature.js";
import type { FeatureSource } from "../../data/FeatureSource.js";
import type { BuildingComponentSublayerExtension } from "../../mapping/BuildingComponentSublayerExtension.js";
import type { CSVLayerExtension } from "../../mapping/CSVLayerExtension.js";
import type { FeatureLayerExtension } from "../../mapping/FeatureLayerExtension.js";
import type { PointCloudLayerExtension } from "../../mapping/PointCloudLayerExtension.js";
import type { SceneLayerExtension } from "../../mapping/SceneLayerExtension.js";
import type { CountResult } from "../CountResult.js";
import type { QueryProvider } from "../query/QueryProvider.js";
import type { IdentifyOptions } from "./IdentifyOptions.js";
import { IdentifyProviderBase } from "./IdentifyProviderBase.js";
/**
 * Layer extension types whose layers support the hit test operation.
 */
export type HitTestLayerExtension = CSVLayerExtension | FeatureLayerExtension | PointCloudLayerExtension | SceneLayerExtension;
/**
 * Sublayer extension types whose sublayers support the hit test operation.
 */
type HitTestSublayerExtension = BuildingComponentSublayerExtension;
/**
 * An identify provider that works with the graphics rendered on the map.
 */
export declare abstract class HitTestIdentifyProvider extends IdentifyProviderBase {
    /**
     * The query provider to fall back on, used to fetch attribute data that is
     * not included within the map's graphics.
     */
    queryProvider: QueryProvider;
    /**
     * @inheritDoc
     */
    isSupported(source: FeatureSource, geometry: GeometryUnion, options?: IdentifyOptions): boolean;
    /**
     * @inheritDoc
     */
    protected _identify(source: HitTestLayerExtension | HitTestSublayerExtension, geometry: GeometryUnion, options: IdentifyOptions): AsyncIterable<Feature>;
    /**
     * @inheritDoc
     */
    protected _count(source: HitTestLayerExtension, geometry: GeometryUnion, options: IdentifyOptions): Promise<CountResult>;
    /**
     * If the featureSource supports query.
     *
     * @param featureSource The featureSource to be identified.
     */
    protected _supportsQuery(featureSource: HitTestLayerExtension | HitTestSublayerExtension): boolean;
    protected _applyTolerance(geometry: GeometryUnion): Promise<GeometryUnion>;
}
export {};
