/** @packageDocumentation
 * @module WebGL
 */
import { Range3d, Transform } from "@itwin/core-geometry";
import { ThematicDisplaySensor, ThematicDisplaySensorSettings } from "@itwin/core-common";
import { WebGLDisposable } from "./Disposable";
import { Texture2DData, Texture2DHandle } from "./Texture";
import { UniformHandle } from "./UniformHandle";
import { Target } from "./Target";
/** @internal */
interface ThematicSensorsTexture {
    readonly handle: Texture2DHandle;
    readonly data: Texture2DData;
}
/** Maintains a floating-point texture representing a list of thematic sensors.
 * @internal
 */
export declare class ThematicSensors implements WebGLDisposable {
    private readonly _texture;
    /** Used for writing to texture data. */
    private readonly _view;
    /** Position at which to write next texture data. */
    private _curPos;
    readonly target: Target;
    readonly range: Range3d;
    readonly sensorSettings?: ThematicDisplaySensorSettings;
    get numSensors(): number;
    private _sensors;
    private readonly _viewMatrix;
    matchesTarget(target: Target): boolean;
    static create(target: Target, range: Range3d): ThematicSensors;
    get isDisposed(): boolean;
    [Symbol.dispose](): void;
    bindNumSensors(uniform: UniformHandle): void;
    bindTexture(uniform: UniformHandle): void;
    get bytesUsed(): number;
    get texture(): Texture2DHandle;
    private _update;
    update(viewMatrix: Transform): void;
    protected constructor(texture: ThematicSensorsTexture, target: Target, range: Range3d, sensors: ThematicDisplaySensor[]);
    static createFloat(target: Target, range: Range3d, sensors: ThematicDisplaySensor[]): ThematicSensors;
    protected append(value: number): void;
    protected appendFloat(value: number): void;
    protected appendUint8(value: number): void;
    private advance;
    private reset;
    private appendValues;
    private appendSensor;
}
export {};
//# sourceMappingURL=ThematicSensors.d.ts.map