import { h } from '../../stencil-public-runtime'; import { DepthBuffer } from '../../lib/types'; import { FrameCameraBase } from '../../lib/types/frame'; export type ViewerDomRendererDrawMode = '2d' | '3d'; /** * The `ViewerDomRenderer` is responsible for managing a * `` element. This element supports drawing DOM * objects in a local 3D scene that is synced with a remote rendered scene. */ export declare class ViewerDomRenderer { /** * Specifies the drawing mode for the renderer. * * When in `3d` mode, elements are positioned using CSS 3D transforms and will * scale and rotate with the camera. In `2d` mode, a simpler 2D transform is * used, and elements will not scale or rotate with camera changes. */ drawMode: ViewerDomRendererDrawMode; /** * Specifies whether to propagate events to the viewer's interaction handlers * * When `true` this will be registered as a valid event target * for the viewer. This enables camera interactions to be initiated from elements within this renderer. * * When `false` this will *not* be registered as a target * for the viewer. */ propagateEventsToViewer: boolean; /** * The viewer synced to this renderer. This property will automatically be * assigned if the renderer is a child of ``. */ viewer?: HTMLVertexViewerElement; /** * The current camera of the frame. * * This property will automatically be set when supplying a viewer to the * component, or when added as a child to ``. */ camera?: FrameCameraBase; /** * The current depth buffer of the frame. * * This property will automatically be set when supplying a viewer to the * component, or when added as a child to ``. */ depthBuffer?: DepthBuffer; private viewport; private invalidateFrameCounter; private interactionDisposables; private hostEl; /** * @ignore */ protected componentWillLoad(): void; /** * @ignore */ render(): h.JSX.IntrinsicElements; /** * @ignore */ protected componentWillRender(): void; /** * @ignore */ protected handleViewerChange(newViewer: HTMLVertexViewerElement | undefined, oldViewer: HTMLVertexViewerElement | undefined): void; /** * @ignore */ protected handlePropertyChange(): void; private invalidateFrame; /** * disposes any existing disposables, and registers new handlers on the newly provided viewer. * @param newViewer */ private handleEventPropagationToViewer; private updateElements; private handleViewerFrameDrawn; private handleResize; private handleChildrenChange; private updatePropsFromViewer; }