/** @packageDocumentation
 * @module WebGL
 */
import { FeatureAppearanceProvider, Frustum, ViewFlags } from "@itwin/core-common";
import { GraphicList } from "../../../render/RenderGraphic";
import { BranchStack } from "./BranchStack";
import { BatchState } from "./BatchState";
import { BranchState } from "./BranchState";
import { DrawCommands, PrimitiveCommand } from "./DrawCommand";
import { Batch, Branch, Graphic } from "./Graphic";
import { Layer, LayerContainer } from "./Layer";
import { Primitive } from "./Primitive";
import { CompositeFlags, Pass, RenderPass } from "./RenderFlags";
import { TargetGraphics } from "./TargetGraphics";
import { Target } from "./Target";
/** A list of DrawCommands to be rendered, ordered by render pass.
 * @internal
 */
export declare class RenderCommands implements Iterable<DrawCommands> {
    private _frustumPlanes?;
    private readonly _scratchFrustum;
    private readonly _scratchRange;
    private readonly _commands;
    private _target;
    private _stack;
    private _batchState;
    private _forcedRenderPass;
    private _addLayersAsNormalGraphics;
    private _opaqueOverrides;
    private _translucentOverrides;
    private _addTranslucentAsOpaque;
    private readonly _layers;
    appearanceProvider?: FeatureAppearanceProvider;
    get target(): Target;
    [Symbol.iterator](): Iterator<DrawCommands>;
    get isEmpty(): boolean;
    get isDrawingLayers(): boolean;
    get currentViewFlags(): ViewFlags;
    get compositeFlags(): CompositeFlags;
    private get _curBatch();
    hasCommands(pass: RenderPass): boolean;
    isOpaquePass(pass: RenderPass): boolean;
    constructor(target: Target, stack: BranchStack, batchState: BatchState);
    reset(target: Target, stack: BranchStack, batchState: BatchState): void;
    collectGraphicsForPlanarProjection(scene: GraphicList): void;
    addGraphics(scene: GraphicList, forcedPass?: RenderPass): void;
    /** Add backgroundMap graphics to their own render pass. */
    addBackgroundMapGraphics(backgroundMapGraphics: GraphicList): void;
    /** Add overlay graphics to the world overlay pass */
    addOverlayGraphics(overlayGraphics: GraphicList): void;
    addDecorations(dec: GraphicList, forcedPass?: RenderPass): void;
    addWorldDecorations(decs: GraphicList): void;
    private addPickableDecorations;
    addBackground(gf?: Graphic): void;
    addSkyBox(gf?: Graphic): void;
    addPrimitiveCommand(command: PrimitiveCommand, pass?: Pass): void;
    getCommands(pass: RenderPass): DrawCommands;
    replaceCommands(pass: RenderPass, cmds: DrawCommands): void;
    addHiliteBranch(branch: Branch, pass: RenderPass): void;
    processLayers(container: LayerContainer): void;
    addLayerCommands(layer: Layer): void;
    addHiliteLayerCommands(graphic: Graphic, pass: RenderPass): void;
    private getAnimationBranchState;
    private pushAndPopBranchForPass;
    private pushAndPop;
    pushAndPopBranch(branch: Branch, func: () => void): void;
    private _pushAndPopBranch;
    pushAndPopState(state: BranchState, func: () => void): void;
    clear(): void;
    private _clearCommands;
    private initForPickOverlayDecorations;
    initForPickOverlays(sceneOverlays: GraphicList, worldOverlayDecorations: GraphicList | undefined, viewOverlayDecorations: GraphicList | undefined): void;
    initForReadPixels(gfx: TargetGraphics): void;
    initForRender(gfx: TargetGraphics): void;
    addPrimitive(prim: Primitive): void;
    addBranch(branch: Branch): void;
    computeBatchHiliteRenderPass(batch: Batch): RenderPass;
    addBatch(batch: Batch): void;
    setCheckRange(frustum: Frustum): void;
    clearCheckRange(): void;
    private setupClassificationByVolume;
    dump(): Array<{
        name: string;
        count: number;
    }>;
}
//# sourceMappingURL=RenderCommands.d.ts.map