/** @packageDocumentation
 * @module Tiles
 */
import { Id64String } from "@itwin/core-bentley";
import { ImageryMapTileTree, ImageryTileTreeState, ModelMapLayerTileTreeReference, Tile, TileDrawArgs } from "../../tile/internal";
import { MapLayerSettings } from "@itwin/core-common";
import { RenderPlanarClassifier } from "../render/RenderPlanarClassifier";
import { SceneContext } from "../../ViewContext";
/** Utility interface that ties an imagery tile tree to its corresponding map-layer settings object.
 * @internal
 */
export interface MapLayerTreeSetting {
    tree: ImageryMapTileTree;
    settings: MapLayerSettings;
    baseImageryLayer: boolean;
}
/** @internal */
export interface LayerTileTree {
    modelId: Id64String;
    rootTile: Tile;
    isPointCloud: boolean;
    layerImageryTrees: MapLayerTreeSetting[];
}
/** @internal */
export declare class LayerTileTreeHandler {
    protected _layerSettings: Map<string, MapLayerSettings>;
    protected _imageryTreeState: Map<string, ImageryTileTreeState>;
    protected _modelIdToIndex: Map<string, number>;
    layerClassifiers: Map<number, RenderPlanarClassifier>;
    private _ref;
    get imageryTreeState(): Map<string, ImageryTileTreeState>;
    get layerSettings(): Map<string, MapLayerSettings>;
    get modelIdToIndex(): Map<string, number>;
    get layerImageryTrees(): MapLayerTreeSetting[];
    constructor(ref: LayerTileTree);
    /** Add a new imagery tile tree / map-layer settings pair and initialize the imagery tile tree state.
     * @internal
     */
    addImageryLayer(tree: ImageryMapTileTree, settings: MapLayerSettings, index: number, baseImageryLayer: boolean): void;
    /** @internal */
    addModelLayer(layerTreeRef: ModelMapLayerTileTreeReference, context: SceneContext): void;
    /** @internal */
    clearLayers(): void;
    /** @internal */
    collectClassifierGraphics(args: TileDrawArgs, selectedTiles: Tile[]): void;
}
//# sourceMappingURL=LayerTileTreeHandler.d.ts.map