/** @packageDocumentation
 * @module WebGL
 */
import { ContourDisplay, HiddenLine, ViewFlags } from "@itwin/core-common";
import { FeatureSymbology } from "../../../render/FeatureSymbology";
import { BranchState } from "./BranchState";
import { Branch } from "./Graphic";
/**
 * Represents the current state of the scene graph. As the scene graph is traversed,
 * branch states are pushed and popped. Pushing a branch state replaces the current view flags
 * and multiplies the current transform with the branch's transform. Popping it inverts this
 * operation. The state at the top of the stack applies to the rendering of all primitives.
 * The stack does not store the scene graph itself.
 * @internal
 */
export declare class BranchStack {
    private readonly _stack;
    constructor();
    get top(): BranchState;
    get bottom(): BranchState;
    get length(): number;
    get empty(): boolean;
    pushBranch(branch: Branch): void;
    pushState(state: BranchState): void;
    pop(): void;
    changeRenderPlan(vf: ViewFlags, is3d: boolean, hline: HiddenLine.Settings | undefined, contour?: ContourDisplay | undefined): void;
    setSymbologyOverrides(ovrs: FeatureSymbology.Overrides): void;
}
//# sourceMappingURL=BranchStack.d.ts.map