import { Constructor, valueof } from '../../../types/GlobalTypes'; import { Camera } from 'three/src/cameras/Camera'; import { ThreejsCameraControlsController } from './utils/cameras/ControlsController'; import { LayersController } from './utils/LayersController'; import { PostProcessController } from './utils/cameras/PostProcessController'; import { RenderController } from './utils/cameras/RenderController'; import { TransformController } from './utils/TransformController'; import { ChildrenDisplayController } from './utils/ChildrenDisplayController'; import { DisplayNodeController } from '../utils/DisplayNodeController'; import { NodeContext } from '../../poly/NodeContext'; import { ThreejsViewer, ThreejsViewerProperties } from '../../viewers/Threejs'; import { FlagsControllerD } from '../utils/FlagsController'; import { BaseParamType } from '../../params/_Base'; import { BaseNodeType } from '../_Base'; import { BaseSopNodeType } from '../sop/_Base'; import { TypedObjNode } from './_Base'; import { BaseViewerType } from '../../viewers/_Base'; import { HierarchyController } from './utils/HierarchyController'; import { GeoNodeChildrenMap } from '../../poly/registers/nodes/Sop'; import { ParamsInitData } from '../utils/io/IOController'; import { Raycaster } from 'three/src/core/Raycaster'; import { Vector2 } from 'three/src/math/Vector2'; export interface OrthoOrPerspCamera extends Camera { near: number; far: number; updateProjectionMatrix: () => void; getFocalLength?: () => void; } export declare const BASE_CAMERA_DEFAULT: { near: number; far: number; }; export declare enum UpdateFromControlsMode { ON_END = "on move end", ALWAYS = "always", NEVER = "never" } export declare const UPDATE_FROM_CONTROLS_MODES: UpdateFromControlsMode[]; import { NodeParamsConfig } from '../utils/params/ParamsConfig'; export declare function CameraMasterCameraParamConfig(Base: TBase): { new (...args: any[]): { setMasterCamera: import("../utils/params/ParamsConfig").ParamTemplate; }; } & TBase; export declare function ThreejsCameraTransformParamConfig(Base: TBase): { new (...args: any[]): { camera: import("../utils/params/ParamsConfig").ParamTemplate; controls: import("../utils/params/ParamsConfig").ParamTemplate; updateFromControlsMode: import("../utils/params/ParamsConfig").ParamTemplate; near: import("../utils/params/ParamsConfig").ParamTemplate; far: import("../utils/params/ParamsConfig").ParamTemplate; display: import("../utils/params/ParamsConfig").ParamTemplate; }; } & TBase; declare const BaseCameraObjParamsConfig_base: { new (...args: any[]): { setMasterCamera: import("../utils/params/ParamsConfig").ParamTemplate; }; } & typeof NodeParamsConfig; export declare class BaseCameraObjParamsConfig extends BaseCameraObjParamsConfig_base { } declare const BaseThreejsCameraObjParamsConfig_base: { new (...args: any[]): { doPostProcess: import("../utils/params/ParamsConfig").ParamTemplate; postProcessNode: import("../utils/params/ParamsConfig").ParamTemplate; }; } & { new (...args: any[]): { render: import("../utils/params/ParamsConfig").ParamTemplate; setScene: import("../utils/params/ParamsConfig").ParamTemplate; scene: import("../utils/params/ParamsConfig").ParamTemplate; setRenderer: import("../utils/params/ParamsConfig").ParamTemplate; renderer: import("../utils/params/ParamsConfig").ParamTemplate; setCssRenderer: import("../utils/params/ParamsConfig").ParamTemplate; cssRenderer: import("../utils/params/ParamsConfig").ParamTemplate; }; } & { new (...args: any[]): { transform: import("../utils/params/ParamsConfig").ParamTemplate; keepPosWhenParenting: import("../utils/params/ParamsConfig").ParamTemplate; rotationOrder: import("../utils/params/ParamsConfig").ParamTemplate; t: import("../utils/params/ParamsConfig").ParamTemplate; r: import("../utils/params/ParamsConfig").ParamTemplate; s: import("../utils/params/ParamsConfig").ParamTemplate; scale: import("../utils/params/ParamsConfig").ParamTemplate; matrixAutoUpdate: import("../utils/params/ParamsConfig").ParamTemplate; updateTransformFromObject: import("../utils/params/ParamsConfig").ParamTemplate; tlookAt: import("../utils/params/ParamsConfig").ParamTemplate; lookAtPos: import("../utils/params/ParamsConfig").ParamTemplate; up: import("../utils/params/ParamsConfig").ParamTemplate; }; } & { new (...args: any[]): { layer: import("../utils/params/ParamsConfig").ParamTemplate; }; } & { new (...args: any[]): { camera: import("../utils/params/ParamsConfig").ParamTemplate; controls: import("../utils/params/ParamsConfig").ParamTemplate; updateFromControlsMode: import("../utils/params/ParamsConfig").ParamTemplate; near: import("../utils/params/ParamsConfig").ParamTemplate; far: import("../utils/params/ParamsConfig").ParamTemplate; display: import("../utils/params/ParamsConfig").ParamTemplate; }; } & { new (...args: any[]): { setMasterCamera: import("../utils/params/ParamsConfig").ParamTemplate; }; } & typeof NodeParamsConfig; export declare class BaseThreejsCameraObjParamsConfig extends BaseThreejsCameraObjParamsConfig_base { } export declare abstract class TypedCameraObjNode extends TypedObjNode { readonly render_order: number; protected _object: O; protected _aspect: number; get object(): O; cook(): Promise; on_create(): void; on_delete(): void; prepare_raycaster(mouse: Vector2, raycaster: Raycaster): void; camera(): O; update_camera(): void; static PARAM_CALLBACK_setMasterCamera(node: BaseCameraObjNodeType): void; set_as_master_camera(): void; setup_for_aspect_ratio(aspect: number): void; protected _update_for_aspect_ratio(): void; update_transform_params_from_object(): void; abstract createViewer(element: HTMLElement): BaseViewerType; static PARAM_CALLBACK_update_from_param(node: BaseCameraObjNodeType, param: BaseParamType): void; } export declare class TypedThreejsCameraObjNode extends TypedCameraObjNode { readonly flags: FlagsControllerD; readonly hierarchy_controller: HierarchyController; readonly transform_controller: TransformController; protected _controls_controller: ThreejsCameraControlsController | undefined; get controls_controller(): ThreejsCameraControlsController; protected _layers_controller: LayersController | undefined; get layers_controller(): LayersController; protected _render_controller: RenderController | undefined; get renderController(): RenderController; protected _post_process_controller: PostProcessController | undefined; get post_process_controller(): PostProcessController; readonly children_display_controller: ChildrenDisplayController; readonly display_node_controller: DisplayNodeController; protected _children_controller_context: NodeContext; initializeBaseNode(): void; createNode(node_class: S, params_init_value_overrides?: ParamsInitData): GeoNodeChildrenMap[S]; createNode>(node_class: Constructor, params_init_value_overrides?: ParamsInitData): K; children(): BaseSopNodeType[]; nodesByType(type: K): GeoNodeChildrenMap[K][]; prepare_raycaster(mouse: Vector2, raycaster: Raycaster): void; cook(): Promise; static PARAM_CALLBACK_update_near_far_from_param(node: BaseThreejsCameraObjNodeType, param: BaseParamType): void; update_near_far(): void; setup_for_aspect_ratio(aspect: number): void; createViewer(element: HTMLElement, viewer_properties?: ThreejsViewerProperties): ThreejsViewer; static PARAM_CALLBACK_reset_effects_composer(node: BaseThreejsCameraObjNodeType): void; } export declare type BaseCameraObjNodeType = TypedCameraObjNode; export declare abstract class BaseCameraObjNodeClass extends TypedCameraObjNode { } export declare type BaseThreejsCameraObjNodeType = TypedThreejsCameraObjNode; export declare class BaseThreejsCameraObjNodeClass extends TypedThreejsCameraObjNode { PARAM_CALLBACK_update_effects_composer(node: BaseNodeType): void; } export {};