/** @packageDocumentation
 * @module Tiles
 */
import { Cartographic, ImageMapLayerSettings, ImageSource } from "@itwin/core-common";
import { ArcGISImageryProvider, ImageryMapTileTree, MapFeatureInfoOptions, MapLayerFeatureInfo, QuadId } from "../../../../tile/internal";
import { Range2dProps, XYProps } from "@itwin/core-geometry";
import { HitDetail } from "../../../../HitDetail";
import { ScreenViewport } from "../../../../Viewport";
/** @internal */
export interface ArcGISIdentifyImageDisplayProps {
    width: number;
    height: number;
    dpi: number;
}
/** @internal */
export interface ArcGISIdentifyLayersProps {
    prefix: "top" | "visible" | "all";
    layerIds?: string[];
}
/** @internal */
export interface ArcGISIdentifyRequestUrlProps {
    /** The geometry to identify on.  Point only support */
    geometry: XYProps;
    /** The type of geometry specified by the geometry parameter. Point only support */
    geometryType: "esriGeometryPoint";
    /** The well-known ID of the spatial reference of the input and output geometries as well as the mapExtent. */
    sr?: number;
    /** The layers to perform the identify operation on. The default value is top.
     * Format: [top | visible | all]:layerId1,layerId2
    */
    layers?: ArcGISIdentifyLayersProps;
    /** The distance in screen pixels from the specified geometry within which the identify operation should be performed.
     * The value for the tolerance is an integer.
     */
    tolerance: number;
    /** The extent or bounding box of the map currently being viewed.
    * Format: <xmin>, <ymin>, <xmax>, <ymax>
     */
    mapExtent: Range2dProps;
    /** The screen image display parameters (width, height, and DPI) of the map being currently viewed. T
     * Format: <width>,<height>,<dpi>
     */
    imageDisplay: ArcGISIdentifyImageDisplayProps;
    /** If true, the result set will include the geometries associated with each result. The default is true.
     */
    returnGeometry?: boolean;
    /** This option can be used to specify the maximum allowable offset to be used for generalizing geometries returned by the identify operation.
     * The maxAllowableOffset is in the units of the sr.
     */
    maxAllowableOffset?: number;
    /** The response format. The default response format is html.
     */
    f?: "json" | "html";
}
/** @internal */
export declare class ArcGISIdentifyRequestUrl {
    static fromJSON(baseUrl: URL | string, json: ArcGISIdentifyRequestUrlProps, srFractionDigits?: number): URL;
    static toFixed(value: number, srFractionDigits?: number): string;
    static getExtentString(range: Range2dProps, srFractionDigits?: number): string;
}
/** @internal */
export declare class ArcGISMapLayerImageryProvider extends ArcGISImageryProvider {
    private _maxDepthFromLod;
    private _minDepthFromLod;
    private _copyrightText;
    private _tileMapSupported;
    private _mapSupported;
    private _tilesOnly;
    private _tileMap;
    serviceJson: any;
    constructor(settings: ImageMapLayerSettings);
    protected get _filterByCartoRange(): boolean;
    get minimumZoomLevel(): number;
    get maximumZoomLevel(): number;
    uintToString(uintArray: any): {
        type: "Buffer";
        data: number[];
    };
    private fetchTile;
    loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined>;
    protected _generateChildIds(quadId: QuadId, resolveChildren: (childIds: QuadId[]) => void): void;
    initialize(): Promise<void>;
    /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
    addLogoCards(cards: HTMLTableElement): void;
    addAttributions(cards: HTMLTableElement, _vp: ScreenViewport): Promise<void>;
    private getIdentifyData;
    getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void>;
    getFeatureInfo(featureInfos: MapLayerFeatureInfo[], quadId: QuadId, carto: Cartographic, _tree: ImageryMapTileTree, hit: HitDetail, options?: MapFeatureInfoOptions): Promise<void>;
    protected getLayerString(prefix?: string): string;
    constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;
}
//# sourceMappingURL=ArcGISMapLayerImageryProvider.d.ts.map