import type Query from "@arcgis/core/rest/support/Query";
import type { Feature } from "../../data/Feature.js";
import type { BuildingComponentSublayerExtension } from "../../mapping/BuildingComponentSublayerExtension.js";
import type { CSVLayerExtension } from "../../mapping/CSVLayerExtension.js";
import type { FeatureLayerExtension } from "../../mapping/FeatureLayerExtension.js";
import type { SceneLayerExtension } from "../../mapping/SceneLayerExtension.js";
import type { StreamLayerExtension } from "../../mapping/StreamLayerExtension.js";
import type { SubtypeGroupLayerExtension } from "../../mapping/SubtypeGroupLayerExtension.js";
import type { SubtypeSublayerExtension } from "../../mapping/SubtypeSublayerExtension.js";
import type { WFSLayerExtension } from "../../mapping/WFSLayerExtension.js";
import type { CountResult } from "../CountResult.js";
import type { QueryOptions } from "./QueryOptions.js";
import { QueryProviderBase } from "./QueryProviderBase.js";
/**
 * The types of LayerExtensions that support client-side queries.
 */
export type ClientSideQueryableLayerExtension = CSVLayerExtension | FeatureLayerExtension | SceneLayerExtension | StreamLayerExtension | SubtypeGroupLayerExtension | WFSLayerExtension;
/**
 * The types of SublayerExtensions that support client-side queries.
 */
export type ClientSideQueryableSublayerExtension = BuildingComponentSublayerExtension | SubtypeSublayerExtension;
/**
 * A query provider that only uses client-side data.
 */
export declare abstract class ClientSideQueryProvider extends QueryProviderBase {
    /**
     * Whether to wait for the layerView.updating flag to return false before
     * executing the query.
     */
    protected get _waitForUpdatingFinished(): boolean;
    /**
     * @inheritDoc
     */
    protected _query(source: ClientSideQueryableLayerExtension | ClientSideQueryableSublayerExtension, where: string, options: QueryOptions): AsyncIterable<Feature>;
    /**
     * @inheritDoc
     */
    protected _count(source: ClientSideQueryableLayerExtension | ClientSideQueryableSublayerExtension, where: string, options: QueryOptions): Promise<CountResult>;
    /**
     * @inheritDoc
     */
    protected _createQuery(source: ClientSideQueryableLayerExtension | ClientSideQueryableSublayerExtension, where: string, options: QueryOptions): Query;
    private _getClientSideLayerGraphics;
}
