/** @packageDocumentation
 * @module Rendering
 */
import { IndexedPolyface, Loop, Path, Point3d, Range3d, SolidPrimitive, Transform } from "@itwin/core-geometry";
import { AnalysisStyleDisplacement, Feature } from "@itwin/core-common";
import { DisplayParams } from "./DisplayParams";
import { MeshBuilderMap } from "./MeshBuilderMap";
import { MeshList } from "./MeshPrimitives";
import { GeometryOptions } from "./Primitives";
import { GeometryList } from "./GeometryList";
import { Geometry } from "./GeometryPrimitives";
/** @internal */
export declare class GeometryAccumulator {
    private _transform;
    private _surfacesOnly;
    private readonly _analysisDisplacement?;
    readonly tileRange: Range3d;
    readonly geometries: GeometryList;
    currentFeature?: Feature;
    get surfacesOnly(): boolean;
    get transform(): Transform;
    get isEmpty(): boolean;
    get haveTransform(): boolean;
    constructor(options?: {
        surfacesOnly?: boolean;
        transform?: Transform;
        tileRange?: Range3d;
        analysisStyleDisplacement?: AnalysisStyleDisplacement;
        feature?: Feature;
    });
    private getPrimitiveRange;
    private calculateTransform;
    addLoop(loop: Loop, displayParams: DisplayParams, transform: Transform, disjoint: boolean): boolean;
    addLineString(pts: Point3d[], displayParams: DisplayParams, transform: Transform): boolean;
    addPointString(pts: Point3d[], displayParams: DisplayParams, transform: Transform): boolean;
    addPath(path: Path, displayParams: DisplayParams, transform: Transform, disjoint: boolean): boolean;
    addPolyface(pf: IndexedPolyface, displayParams: DisplayParams, transform: Transform): boolean;
    addSolidPrimitive(primitive: SolidPrimitive, displayParams: DisplayParams, transform: Transform): boolean;
    addGeometry(geom: Geometry): boolean;
    clear(): void;
    /**
     * Generates a MeshBuilderMap
     * native: GeometryAccumulator::ToMeshBuilderMap(GeometryOptionsCR options, double tolerance, FeatureTableP featureTable, ViewContextR context) const
     * note  : removed featureTable, ViewContext
     * @param tolerance should derive from Viewport.getPixelSizeAtPoint
     */
    toMeshBuilderMap(options: GeometryOptions, tolerance: number, pickable: {
        isVolumeClassifier?: boolean;
        modelId?: string;
    } | undefined): MeshBuilderMap;
    toMeshes(options: GeometryOptions, tolerance: number, pickable: {
        isVolumeClassifier?: boolean;
        modelId?: string;
    } | undefined): MeshList;
}
//# sourceMappingURL=GeometryAccumulator.d.ts.map