import { Camera, CanvasTexture, Clock, PerspectiveCamera, ShaderMaterial, Vector2, WebGLRenderer, WebGLRenderTarget } from 'three';
import { FullscreenRenderer } from '../../rendering/fullscreen-renderer';
import { AnnotationInstance } from './types';
export declare class AnnotationsRenderer {
    maxVisible: number;
    camera: PerspectiveCamera;
    clock: Clock;
    pointer: Vector2;
    ctx: CanvasRenderingContext2D;
    overlayTexture: CanvasTexture | null;
    annotationsTexSize: number;
    annotationsRenderTarget: WebGLRenderTarget;
    annotationsBuffer: Uint8Array;
    annotationsMaterial: ShaderMaterial;
    fullscreenRenderer: FullscreenRenderer;
    annotationsData: AnnotationInstance[];
    isBusy: boolean;
    dataTextureNeedsUpdate: boolean;
    unsubscribeListeners: () => void;
    constructor(camera: Camera, clock: Clock, pointer: Vector2, maxVisible?: number);
    updateAnnotationsData(buffer: Uint8Array): void;
    updateOverlayTexture(inViewSpace: AnnotationInstance[]): void;
    updateDataTexture(): void;
    dispose(): void;
    render(renderer: WebGLRenderer, buffer: WebGLRenderTarget | null): void;
}
