/** @packageDocumentation
 * @module WebGL
 */
import { Point3d, Range3d } from "@itwin/core-geometry";
import { MeshParams } from "../../common/internal/render/MeshParams";
import { SurfaceType } from "../../common/internal/render/SurfaceParams";
import { RenderMemory } from "../RenderMemory";
import { Graphic } from "./Graphic";
import { InstanceBuffers, PatternBuffers } from "./InstancedGeometry";
import { Primitive } from "./Primitive";
import { RenderCommands } from "./RenderCommands";
import { RenderPass } from "./RenderFlags";
import { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from "./EdgeGeometry";
import { IndexedEdgeGeometry } from "./IndexedEdgeGeometry";
import { SurfaceGeometry } from "./SurfaceGeometry";
import { MeshData } from "./MeshData";
import { RenderGeometry } from "../../internal/render/RenderGeometry";
/** @internal */
export declare class MeshRenderGeometry implements RenderGeometry {
    readonly renderGeometryType: "mesh";
    readonly isInstanceable: boolean;
    noDispose: boolean;
    readonly data: MeshData;
    readonly surface?: SurfaceGeometry;
    readonly segmentEdges?: EdgeGeometry;
    readonly silhouetteEdges?: SilhouetteEdgeGeometry;
    readonly polylineEdges?: PolylineEdgeGeometry;
    readonly indexedEdges?: IndexedEdgeGeometry;
    readonly range: Range3d;
    private constructor();
    static create(params: MeshParams, viewIndependentOrigin: Point3d | undefined): MeshRenderGeometry | undefined;
    dispose(): void;
    get isDisposed(): boolean;
    collectStatistics(stats: RenderMemory.Statistics): void;
    computeRange(out?: Range3d): Range3d;
}
/** @internal */
export declare class MeshGraphic extends Graphic {
    readonly meshData: MeshData;
    private readonly _primitives;
    private readonly _instances?;
    private readonly _meshRange;
    get primitives(): readonly Primitive[];
    get meshRange(): Readonly<Range3d>;
    static create(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers): MeshGraphic | undefined;
    private addPrimitive;
    private constructor();
    get isDisposed(): boolean;
    get isPickable(): boolean;
    dispose(): void;
    collectStatistics(stats: RenderMemory.Statistics): void;
    unionRange(range: Range3d): void;
    addCommands(cmds: RenderCommands): void;
    addHiliteCommands(cmds: RenderCommands, pass: RenderPass): void;
    get surfaceType(): SurfaceType;
}
//# sourceMappingURL=Mesh.d.ts.map