import { WebGLDisposable } from "./Disposable";
import { Matrix4 } from "./Matrix";
import { SyncTarget } from "./Sync";
import { Target } from "./Target";
import { UniformHandle } from "./UniformHandle";
export declare const MAX_SAMPLE_POINTS = 40;
export declare class AtmosphereUniforms implements WebGLDisposable, SyncTarget {
    private _atmosphere?;
    private _ellipsoid?;
    private readonly _earthScaleMatrix;
    private readonly _inverseEllipsoidRotationMatrix;
    private readonly _atmosphereScaleMatrix;
    private readonly _atmosphereData;
    /**
     * uniform mat3 u_atmosphereData;
     *   { { atmosphereRadiusScaleFactor, atmosphereMaxDensityThresholdScaleFactor, densityFalloff, 0 },
     *   { numViewRaySamples, numSunRaySamples, 0, 0 },
     *   { earthCenter.x, earthCenter.y, earthCenter.z, 0 },
     *   { scatteringCoefficients.x, scatteringCoefficients.y, scatteringCoefficients.z, 0 } }
     */
    get atmosphereData(): Matrix4;
    private _exposure;
    syncKey: number;
    private _scratchMatrix3d;
    private _scratchPoint3d;
    update(target: Target): void;
    private _updateEarthCenter;
    private _updateInverseEllipsoidRotationMatrix;
    private _updateEarthScaleMatrix;
    private _updateAtmosphereScaleMatrix;
    private _updateAtmosphereRadiusScaleFactor;
    private _updateAtmosphereMaxDensityThresholdScaleFactor;
    private _updateDensityFalloff;
    private _updateScatteringCoefficients;
    private _updateExposure;
    bindExposure(uniform: UniformHandle): void;
    private _updateNumViewRaySamples;
    private _updateNumSunRaySamples;
    bindInverseRotationInverseEarthScaleMatrix(uniform: UniformHandle): void;
    bindInverseRotationInverseAtmosphereScaleMatrix(uniform: UniformHandle): void;
    bindEarthScaleMatrix(uniform: UniformHandle): void;
    bindAtmosphereScaleMatrix(uniform: UniformHandle): void;
    bindInverseEarthScaleMatrix(uniform: UniformHandle): void;
    bindInverseAtmosphereScaleMatrix(uniform: UniformHandle): void;
    get isDisposed(): boolean;
    [Symbol.dispose](): void;
    /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */
    dispose(): void;
}
//# sourceMappingURL=AtmosphereUniforms.d.ts.map