import { Camera } from 'three/src/cameras/Camera'; import { TypedEventNode } from './_Base'; import { NodeParamsConfig } from '../utils/params/ParamsConfig'; import { BaseViewerType } from '../../viewers/_Base'; export interface CameraControls { name?: string; enabled: boolean; dispose: () => void; update: () => void; addEventListener: (eventName: string, callback: () => void) => void; removeEventListener: (eventName: string, callback: () => void) => void; } export declare abstract class TypedCameraControlsEventNode extends TypedEventNode { private _controls_by_viewer; apply_controls(camera: Camera, viewer: BaseViewerType): Promise; controls_id(): string; abstract update_required(): boolean; abstract setup_controls(controls: CameraControls): void; abstract dispose_controls_for_html_element_id(html_element_id: string): void; abstract create_controls_instance(camera: Camera, element: HTMLElement): Promise; } export declare type BaseCameraControlsEventNodeType = TypedCameraControlsEventNode;