import { MapboxCameraObjNode } from '../../../nodes/obj/MapboxCamera';
import { MapboxViewer } from '../../Mapbox';
import { Scene } from 'three/src/scenes/Scene';
import mapboxgl from 'mapbox-gl';
export declare class ThreejsLayer {
    private _camera_node;
    private _display_scene;
    private _viewer;
    readonly id: string;
    readonly type: 'custom';
    readonly renderingMode: '3d';
    private _camera;
    private _scene;
    private _renderer;
    private _map;
    private _gl;
    private _clock;
    private _delta;
    constructor(_camera_node: MapboxCameraObjNode, _display_scene: Scene, _viewer: MapboxViewer);
    onAdd(map: mapboxgl.Map, gl: WebGLRenderingContext): void;
    onRemove(): void;
    private createRenderer;
    resize(): void;
    render(gl: WebGLRenderingContext, matrix: number[]): Promise<void>;
    private _vX;
    private _vY;
    private _vZ;
    private mRX;
    private mRY;
    private mRZ;
    private s;
    private m;
    private l;
    _updateCameraMatrix(matrix: number[]): void;
    private _hack;
}
