/** @packageDocumentation
 * @module WebGL
 */
import { Matrix4d, Range2d, Range3d, Transform } from "@itwin/core-geometry";
import { RenderPlanarClassifier } from "../RenderPlanarClassifier";
import { PlanarClassifier } from "./PlanarClassifier";
import { TerrainTexture } from "../RenderTerrain";
import { Matrix4 } from "./Matrix";
import { RenderTexture } from "@itwin/core-common";
import { MeshMapLayerGraphicParams } from "../MeshMapLayerGraphicParams";
import { ViewState } from "../../../ViewState";
export declare class ProjectedTexture {
    meshParams: MeshMapLayerGraphicParams;
    targetRectangle: Range2d;
    classifier: PlanarClassifier;
    constructor(classifier: RenderPlanarClassifier, meshParams: MeshMapLayerGraphicParams, targetRectangle: Range2d);
    clone(targetRectangle: Range2d): ProjectedTexture;
}
type TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;
declare class LayerTextureParam implements Disposable {
    texture: RenderTexture | undefined;
    private _projectedTextureOrMatrix;
    constructor(texture: RenderTexture | undefined, _projectedTextureOrMatrix: ProjectedTexture | Matrix4);
    get isProjected(): boolean;
    [Symbol.dispose](): void;
    getProjectionMatrix(): Matrix4d | undefined;
    getTerrainMatrix(): Matrix4 | undefined;
    getParams(result: Matrix4): Matrix4;
}
/** @internal */
export declare class LayerTextureParams implements Disposable {
    params: LayerTextureParam[];
    constructor(params: LayerTextureParam[]);
    static create(textures: TerrainOrProjectedTexture[]): LayerTextureParams;
    [Symbol.dispose](): void;
}
export interface LayerTileData {
    ecefTransform: Transform;
    range: Range3d;
    layerClassifiers?: Map<number, RenderPlanarClassifier> | undefined;
}
/**
 * Compares the map layers of two view states, ensuring both the number of layers
 * and their order remain unchanged.
 * Returns true if the map layers differ in count, order, or model IDs; otherwise, returns false.
 *
 * @param prevView The previous view state.
 * @param newView The new view state.
 * @returns {boolean} True if there is any difference in the model layer configuration; false otherwise.
 */
export declare function compareMapLayer(prevView: ViewState, newView: ViewState): boolean;
export {};
//# sourceMappingURL=MapLayerParams.d.ts.map