import type { RenderMode } from '../utils/constants';
import { ColorServices } from './ColorServices';
import { GeometryFactory } from './GeometryFactory';
import type { Models } from './Models';
export interface ViewerRenderer {
    initialize(measureSet: number[], models: Models, colorService: ColorServices): void;
    autoClear: boolean;
    domElement: HTMLCanvasElement;
    clippingPlanes: any[];
    refresh: boolean;
    context: WebGLRenderingContext;
    getSize(): {
        width: number;
        height: number;
    };
    getPixelRatio(): number;
    getContext(): WebGLRenderingContext;
    getRenderTarget(): THREE.WebGLRenderTarget;
    setRenderTarget(renderTarget: THREE.WebGLRenderTarget): void;
    clear(): void;
    setSize(width: number, height: number): void;
    render(scene: THREE.Scene, camera: THREE.Camera): void;
    cleanBuffer(): void;
    textures: {
        picking: THREE.WebGLRenderTarget;
    };
    readRenderTargetPixels(renderTarget: THREE.WebGLRenderTarget, x: number, y: number, width: number, height: number, buffer: Uint8Array): void;
    setRenderMode(mode: RenderMode): void;
    getRenderMode(): string;
    setDetailsParams(detailsParam: {
        detailsInMotion: number;
        detailsAtRest: number;
    }): void;
    getRenderingStage(): string;
    dispose(): void;
    enableBackFaceFillColor(state: boolean): void;
    loadMeshShader(): void;
    renderSection(scene: THREE.Scene, camera: THREE.Camera): void;
    getWebGLRenderer(): THREE.WebGLRenderer;
    setGeometryFactory(geometryFactory: GeometryFactory): void;
}
