import { ColorDef } from "@itwin/core-common";
import { Range3d, Transform } from "@itwin/core-geometry";
import { MeshMapLayerGraphicParams } from "../MeshMapLayerGraphicParams";
import { RealityMeshParams } from "../../../render/RealityMeshParams";
import { RenderGraphic } from "../../../render/RenderGraphic";
import { RenderMemory } from "../../../render/RenderMemory";
import { RenderSystem } from "../../../render/RenderSystem";
import { BufferHandle, QBufferHandle2d, QBufferHandle3d } from "./AttributeBuffers";
import { IndexedGeometry, IndexedGeometryParams } from "./CachedGeometry";
import { RenderOrder } from "./RenderFlags";
import { Target } from "./Target";
import { TechniqueId } from "./TechniqueId";
import { RenderGeometry } from "../../../internal/render/RenderGeometry";
import { LayerTextureParams } from "./MapLayerParams";
/** @internal */
export declare class RealityMeshGeometryParams extends IndexedGeometryParams {
    readonly uvParams: QBufferHandle2d;
    readonly featureID?: number;
    readonly normals?: BufferHandle;
    readonly numBytesPerIndex: 1 | 2 | 4;
    protected constructor(positions: QBufferHandle3d, normals: BufferHandle | undefined, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, numBytesPerIndex: 1 | 2 | 4, featureID?: number);
    private static createFromBuffers;
    static fromRealityMesh(params: RealityMeshParams): RealityMeshGeometryParams | undefined;
    get isDisposed(): boolean;
    get bytesUsed(): number;
    [Symbol.dispose](): void;
}
/** @internal */
export declare class RealityMeshGeometry extends IndexedGeometry implements RenderGeometry {
    readonly renderGeometryType: "reality-mesh";
    readonly isInstanceable = false;
    noDispose: boolean;
    readonly hasTextures: boolean;
    get asRealityMesh(): RealityMeshGeometry | undefined;
    get isDisposed(): boolean;
    get uvQParams(): Float32Array;
    get hasFeatures(): boolean;
    get supportsThematicDisplay(): boolean;
    get overrideColorMix(): number;
    get transform(): Transform | undefined;
    private _realityMeshParams;
    private readonly _indexType;
    textureParams: LayerTextureParams | undefined;
    private readonly _transform;
    readonly baseColor: ColorDef | undefined;
    private _baseIsTransparent;
    private _isTerrain;
    private _disableTextureDisposal;
    private constructor();
    [Symbol.dispose](): void;
    static createForTerrain(mesh: RealityMeshParams, transform: Transform | undefined, disableTextureDisposal?: boolean): RealityMeshGeometry | undefined;
    static createFromRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal?: boolean): RealityMeshGeometry | undefined;
    getRange(): Range3d;
    static createGraphic(system: RenderSystem, params: MeshMapLayerGraphicParams, disableTextureDisposal?: boolean): RenderGraphic | undefined;
    collectStatistics(stats: RenderMemory.Statistics): void;
    get techniqueId(): TechniqueId;
    getPass(target: Target): "opaque" | "translucent";
    get renderOrder(): RenderOrder;
    draw(): void;
}
//# sourceMappingURL=RealityMesh.d.ts.map