/** @packageDocumentation
 * @module Rendering
 */
import { IndexMap } from "@itwin/core-bentley";
import { Point2d, Point3d, XYAndZ } from "@itwin/core-geometry";
import { Feature, OctEncodedNormal } from "@itwin/core-common";
/** @internal */
export interface VertexKeyProps {
    position: Point3d;
    fillColor: number;
    normal?: OctEncodedNormal;
    uvParam?: Point2d;
    feature?: Feature;
}
/** @internal */
export declare class VertexKey {
    readonly position: Point3d;
    readonly normal?: OctEncodedNormal;
    readonly uvParam?: Point2d;
    readonly fillColor: number;
    readonly feature?: Feature;
    constructor(position: Point3d, fillColor: number, normal?: OctEncodedNormal, uvParam?: Point2d, feature?: Feature);
    static create(props: VertexKeyProps): VertexKey;
    equals(rhs: VertexKey, tolerance: XYAndZ): boolean;
    compare(rhs: VertexKey, tolerance: XYAndZ): number;
}
/** @internal */
export declare class VertexMap extends IndexMap<VertexKey> {
    private readonly _tolerance;
    constructor(tolerance: XYAndZ);
    insertKey(props: VertexKeyProps, onInsert?: (vk: VertexKey) => any): number;
    arePositionsAlmostEqual(p0: VertexKeyProps, p1: VertexKeyProps): boolean;
    comparePositions(p0: VertexKeyProps, p1: VertexKeyProps): number;
}
//# sourceMappingURL=VertexKey.d.ts.map