import '../../globals.js';
import Vector2 from '../../dot/js/Vector2.js';
import { Node, NodeOptions } from '../../scenery/js/imports.js';
import ThreeStage, { ThreeStageOptions } from './ThreeStage.js';
import Vector3 from '../../dot/js/Vector3.js';
type SelfOptions = {
    fov?: number;
};
export type ThreeNodeOptions = SelfOptions & ThreeStageOptions & NodeOptions;
export default class ThreeNode extends Node {
    readonly stage: ThreeStage;
    private layoutWidth;
    private layoutHeight;
    private offsetProperty;
    readonly backgroundEventTarget: Node;
    private domNode;
    constructor(width: number, height: number, providedOptions?: ThreeNodeOptions);
    /**
     * Projects a 3d point in the global coordinate frame to one within the 2d global coordinate frame.
     */
    projectPoint(point: Vector3): Vector2;
    /**
     * Given a screen point, returns a 3D ray representing the camera's position and direction that point would be in the
     * 3D scene.
     */
    private getRayFromScreenPoint;
    layout(): void;
    /**
     * Renders the simulation to a specific rendering target
     *
     * @param target - undefined for the default target
     */
    render(target: THREE.WebGLRenderTarget | undefined): void;
    /**
     * Releases references.
     */
    dispose(): void;
}
export {};
//# sourceMappingURL=ThreeNode.d.ts.map