import { Map4d, Matrix4d, Vector3d } from "@itwin/core-geometry";
import { Frustum, SolarShadowSettings } from "@itwin/core-common";
import { SceneContext } from "../../ViewContext";
import { RenderGraphic } from "../RenderGraphic";
import { RenderMemory } from "../RenderMemory";
import { WebGLDisposable } from "./Disposable";
import { Target } from "./Target";
import { Texture } from "./Texture";
export declare class SolarShadowMap implements RenderMemory.Consumer, WebGLDisposable {
    private _bundle?;
    private _projectionMatrix;
    private _graphics;
    private _shadowFrustum;
    private _isReady;
    private _isDrawing;
    private _enabled;
    private _params?;
    private readonly _scratchRange;
    private readonly _scratchTransform;
    private readonly _scratchViewFlags;
    private readonly _renderState;
    private readonly _noZRenderState;
    private readonly _batchState;
    private _worldToViewMap;
    private readonly _target;
    onGraphicsChanged?: (graphics: RenderGraphic[]) => void;
    private getBundle;
    get isReady(): boolean;
    get isDrawing(): boolean;
    get isEnabled(): boolean;
    get projectionMatrix(): Matrix4d;
    get depthTexture(): Texture | undefined;
    get shadowMapTexture(): Texture | undefined;
    get settings(): SolarShadowSettings | undefined;
    get direction(): Vector3d | undefined;
    get frustum(): Frustum;
    get worldToViewMap(): Map4d;
    addGraphic(graphic: RenderGraphic): void;
    constructor(target: Target);
    disable(): void;
    collectStatistics(stats: RenderMemory.Statistics): void;
    get isDisposed(): boolean;
    dispose(): void;
    private clearGraphics;
    private notifyGraphicsChanged;
    update(context: SceneContext | undefined): void;
    draw(target: Target): void;
}
//# sourceMappingURL=SolarShadowMap.d.ts.map