export default Canvas;
declare class Canvas extends React.Component<any, any, any> {
    constructor(props: any);
    sceneRef: React.RefObject<any>;
    cameraControls: React.RefObject<any>;
    state: {
        isCanvasReady: boolean;
        error: any;
    };
    onResize(width: any, height: any, targetRef: any): void;
    defaultCameraControlsHandler(action: any): void;
    defaultCaptureControlsHandler(action: any): Blob;
    keyboardEventHandler(event: any): void;
    constructorFromProps(props: any): void;
    captureControlsRef: React.RefObject<any>;
    componentDidMount(): Promise<void>;
    threeDEngine: ThreeDEngine;
    recorder: Recorder;
    handleEngineUpdate(data: any): Promise<void>;
    shouldComponentUpdate(nextProps: any, nextState: any, nextContext: any): any;
    componentDidUpdate(prevProps: any, prevState: any, snapshot: any): Promise<void>;
    componentWillUnmount(): void;
    isResizeRequired(): boolean;
    getCanvasElement(): any;
    render(): import("react/jsx-runtime").JSX.Element;
}
declare namespace Canvas {
    namespace defaultProps {
        namespace cameraOptions {
            const angle: number;
            const near: number;
            const far: number;
            const baseZoom: number;
            const reset: boolean;
            const autorotate: boolean;
            const wireframe: boolean;
            const initialZoomTo: any[];
            const initialFlip: any[];
            const movieFilter: boolean;
            const depthWrite: boolean;
            namespace spotlightPosition {
                const x: number;
                const y: number;
                const z: number;
            }
            namespace cameraControls {
                export { CameraControls as instance };
                export namespace props {
                    const wireframeButtonEnabled: boolean;
                    const cameraControlsHandler: any;
                    namespace buttonStyles {
                        const color: string;
                    }
                }
                export namespace incrementsPan {
                    const x_1: number;
                    export { x_1 as x };
                    const y_1: number;
                    export { y_1 as y };
                }
                export namespace incrementRotation {
                    const x_2: number;
                    export { x_2 as x };
                    const y_2: number;
                    export { y_2 as y };
                    const z_1: number;
                    export { z_1 as z };
                }
                export const incrementZoom: number;
                const reset_1: boolean;
                export { reset_1 as reset };
            }
            namespace trackballControls {
                const rotationSpeed: number;
                const zoomSpeed: number;
                const panSpeed: number;
            }
        }
        namespace captureOptions {
            namespace captureControls {
                export const instance: any;
                export namespace props_1 {
                    export const captureControlsHandler: any;
                    export namespace buttonStyles_1 {
                        const color_1: string;
                        export { color_1 as color };
                    }
                    export { buttonStyles_1 as buttonStyles };
                }
                export { props_1 as props };
                export namespace incrementPan {
                    const x_3: number;
                    export { x_3 as x };
                    const y_3: number;
                    export { y_3 as y };
                }
                export namespace incrementRotation_1 {
                    const x_4: number;
                    export { x_4 as x };
                    const y_4: number;
                    export { y_4 as y };
                    const z_2: number;
                    export { z_2 as z };
                }
                export { incrementRotation_1 as incrementRotation };
                const incrementZoom_1: number;
                export { incrementZoom_1 as incrementZoom };
            }
            namespace recorderOptions {
                namespace mediaRecorderOptions {
                    const mimeType: string;
                }
                namespace blobOptions {
                    const type: string;
                }
            }
        }
        const backgroundColor: number;
        const pickingEnabled: boolean;
        const linesThreshold: number;
        const threeDObjects: any[];
        function cameraHandler(): void;
        function setColorHandler(): boolean;
        function onSelection(): void;
        const selectionStrategy: (selectedMap: any) => string[];
        const onHoverListeners: {};
        function onMount(): void;
        function onUpdateStart(): void;
        function onUpdateEnd(): void;
        const dracoDecoderPath: string;
    }
    namespace propTypes {
        export const data: any;
        const cameraOptions_1: any;
        export { cameraOptions_1 as cameraOptions };
        const captureOptions_1: any;
        export { captureOptions_1 as captureOptions };
        const threeDObjects_1: any;
        export { threeDObjects_1 as threeDObjects };
        const cameraHandler_1: any;
        export { cameraHandler_1 as cameraHandler };
        const setColorHandler_1: any;
        export { setColorHandler_1 as setColorHandler };
        const backgroundColor_1: any;
        export { backgroundColor_1 as backgroundColor };
        const pickingEnabled_1: any;
        export { pickingEnabled_1 as pickingEnabled };
        const linesThreshold_1: any;
        export { linesThreshold_1 as linesThreshold };
        const onHoverListeners_1: any;
        export { onHoverListeners_1 as onHoverListeners };
        const onSelection_1: any;
        export { onSelection_1 as onSelection };
        const selectionStrategy_1: any;
        export { selectionStrategy_1 as selectionStrategy };
        const onMount_1: any;
        export { onMount_1 as onMount };
        const onUpdateStart_1: any;
        export { onUpdateStart_1 as onUpdateStart };
        const onUpdateEnd_1: any;
        export { onUpdateEnd_1 as onUpdateEnd };
        const dracoDecoderPath_1: any;
        export { dracoDecoderPath_1 as dracoDecoderPath };
    }
}
import React from "react";
import ThreeDEngine from "./threeDEngine/ThreeDEngine";
import { Recorder } from "./captureManager/Recorder";
import CameraControls from "../camera-controls/CameraControls";
