/** @packageDocumentation
 * @module WebGL
 */
import { Matrix4d } from "@itwin/core-geometry";
import { RenderPlan } from "../RenderPlan";
import { BatchUniforms } from "./BatchUniforms";
import { BranchUniforms } from "./BranchUniforms";
import { FrustumUniforms } from "./FrustumUniforms";
import { UniformHandle } from "./UniformHandle";
import { HiliteUniforms } from "./HiliteUniforms";
import { LightingUniforms } from "./LightingUniforms";
import { Matrix4 } from "./Matrix";
import { ShadowUniforms } from "./ShadowUniforms";
import { StyleUniforms } from "./StyleUniforms";
import { Target } from "./Target";
import { ThematicUniforms } from "./ThematicUniforms";
import { ViewRectUniforms } from "./ViewRectUniforms";
import { RealityModelUniforms } from "./RealityModelUniforms";
import { AtmosphereUniforms } from "./AtmosphereUniforms";
/** Holds state for commonly-used uniforms to avoid unnecessary recomputation, owned by a Target.
 * DO NOT directly modify exposed members of the objects exposed by this class. Use their APIs.
 * e.g., code like `target.uniforms.frustum.projectionMatrix.setFrom(someOtherMatrix)` or `target.uniforms.branch.top.setViewFlags(blah)` will cause bugs.
 * @internal
 */
export declare class TargetUniforms {
    readonly frustum: FrustumUniforms;
    readonly viewRect: ViewRectUniforms;
    readonly hilite: HiliteUniforms;
    readonly style: StyleUniforms;
    readonly lights: LightingUniforms;
    readonly thematic: ThematicUniforms;
    readonly branch: BranchUniforms;
    readonly batch: BatchUniforms;
    readonly shadow: ShadowUniforms;
    readonly realityModel: RealityModelUniforms;
    readonly atmosphere: AtmosphereUniforms;
    private readonly _pixelWidthFactor;
    private readonly _sunDirection;
    constructor(target: Target);
    getProjectionMatrix(forViewCoords: boolean): Matrix4d;
    getProjectionMatrix32(forViewCoords: boolean): Matrix4;
    bindProjectionMatrix(uniform: UniformHandle, forViewCoords: boolean): void;
    bindPixelWidthFactor(uniform: UniformHandle): void;
    bindSunDirection(uniform: UniformHandle): void;
    updateRenderPlan(plan: RenderPlan): void;
}
//# sourceMappingURL=TargetUniforms.d.ts.map