import { SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay } from "@itwin/core-common";
import { Matrix4d } from "@itwin/core-geometry";
import { PlanarClipMaskState } from "../../../PlanarClipMaskState";
import { SpatialClassifierTileTreeReference } from "../../../tile/internal";
import { SceneContext } from "../../../ViewContext";
import { RenderGraphic } from "../../../render/RenderGraphic";
import { RenderMemory } from "../../../render/RenderMemory";
import { PlanarClassifierTarget, RenderPlanarClassifier } from "../RenderPlanarClassifier";
import { BatchState } from "./BatchState";
import { WebGLDisposable } from "./Disposable";
import { Target } from "./Target";
import { Texture } from "./Texture";
import { ActiveSpatialClassifier } from "../../../SpatialClassifiersState";
export declare enum PlanarClassifierContent {
    None = 0,
    MaskOnly = 1,
    ClassifierOnly = 2,
    ClassifierAndMask = 3
}
/** @internal */
export declare class PlanarClassifier extends RenderPlanarClassifier implements RenderMemory.Consumer, WebGLDisposable {
    private _classifierBuffers?;
    private _maskBuffer?;
    private _classifierCombinedBuffer?;
    private _classifierAndMaskCombinedBuffer?;
    private _projectionMatrix;
    private _graphics?;
    private readonly _classifierGraphics;
    private readonly _maskGraphics;
    private _frustum?;
    private _width;
    private _height;
    private _baseBatchId;
    private _anyHilited;
    private _anyOpaque;
    private _anyTranslucent;
    private _classifier?;
    private readonly _plane;
    private readonly _renderState;
    private readonly _renderCommands;
    private readonly _branchStack;
    private readonly _batchState;
    private _planarClipMask?;
    private _classifierTreeRef?;
    private _planarClipMaskOverrides?;
    private _overridesDirty;
    private _contentMode;
    private _removeMe?;
    private _featureSymbologySource;
    private static _postProjectionMatrix;
    private _debugFrustum?;
    private _doDebugFrustum;
    private _debugFrustumGraphic?;
    private _isClassifyingPointCloud?;
    private readonly _bgColor;
    private constructor();
    get textureImageCount(): number;
    getParams(params: Float32Array): void;
    get hiliteTexture(): Texture | undefined;
    get projectionMatrix(): Matrix4d;
    get baseBatchId(): number;
    get anyHilited(): boolean;
    get anyOpaque(): boolean;
    get anyTranslucent(): boolean;
    get insideDisplay(): SpatialClassifierInsideDisplay;
    get outsideDisplay(): SpatialClassifierOutsideDisplay;
    get isClassifyingPointCloud(): boolean;
    addGraphic(graphic: RenderGraphic): void;
    static create(properties: ActiveSpatialClassifier | undefined, target: Target): PlanarClassifier;
    collectStatistics(stats: RenderMemory.Statistics): void;
    get isDisposed(): boolean;
    [Symbol.dispose](): void;
    get texture(): Texture | undefined;
    getOrCreateClassifierTexture(): Texture | undefined;
    private pushBatches;
    get sourceTransparency(): number | undefined;
    pushBatchState(batchState: BatchState): void;
    setSource(classifierTreeRef?: SpatialClassifierTileTreeReference, planarClipMask?: PlanarClipMaskState): void;
    collectGraphics(context: SceneContext, target: PlanarClassifierTarget): void;
    draw(target: Target): void;
}
//# sourceMappingURL=PlanarClassifier.d.ts.map