import { Camera, Matrix4, Vector3, WebGLCubeRenderTarget, WebGLMultipleRenderTargets, WebGLRenderer, WebGLRenderTarget } from 'three';
import { TypedArray } from 'type-fest';
export declare class RTEBuffers {
    private _cache;
    viewer: Vector3;
    viewerLow: Vector3;
    viewerHigh: Vector3;
    rteViewModelMatrix: Matrix4;
    shadowViewer: Vector3;
    shadowViewerLow: Vector3;
    shadowViewerHigh: Vector3;
    rteShadowViewModelMatrix: Matrix4;
    rteShadowMatrix: Matrix4;
    copy(from: RTEBuffers, to: RTEBuffers): void;
    push(): void;
    pop(): void;
}
export declare class SpeckleWebGLRenderer extends WebGLRenderer {
    RTEBuffers: RTEBuffers;
    updateRTEViewModel(camera: Camera): void;
    readRenderTargetPixels: (renderTarget: WebGLRenderTarget | WebGLCubeRenderTarget | WebGLMultipleRenderTargets, x: number, y: number, width: number, height: number, buffer: TypedArray, activeCubeFaceIndex?: number) => void;
    /** Taken from three since they hide it, thank you very much */
    private convert;
}
