import type { NobjcObject } from "objc-js";
import type { _SKNode } from "./SKNode.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCoder } from "../Foundation/NSCoder.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _SCNNode } from "../SceneKit/SCNNode.js";
import type { _SCNScene } from "../SceneKit/SCNScene.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGSize } from "../structs/CGSize.js";
export declare class _SK3DNode extends _SKNode {
    static alloc(): _SK3DNode;
    static new(): _SK3DNode;
    init(): _SK3DNode;
    /** Create a 3D Node with the viewport size the 3D content will be rendered with. */
    static nodeWithViewportSize$(viewportSize: CGSize): _SK3DNode;
    /**
     * Designated initializer. Initialize a 3D Node with the viewport size the 3D content will be rendered with.
     */
    initWithViewportSize$(viewportSize: CGSize): _SK3DNode;
    /** Support coding and decoding via NSKeyedArchiver. */
    initWithCoder$(aDecoder: _NSCoder): _SK3DNode | null;
    /**
     * @method hitTest:options: @abstract Returns an array of SCNHitTestResult for each node that contains a specified point. @param point A point in the coordinate system of the receiver. @param options Optional parameters (see the "Hit test options" group for the available options).
     */
    hitTest$options$(point: CGPoint, options: _NSDictionary | null): _NSArray;
    /**
     * @method projectPoint @abstract Projects a point in the world coordinate system using the receiver's current point of view and viewport. @param point The world position to be projected. @discussion A point projected from the near (resp. far) clip plane will have a z component of 0 (resp. 1).
     */
    projectPoint$(point: NobjcObject): NobjcObject;
    /**
     * @method unprojectPoint @abstract Unprojects a screenspace 2D point with depth info using the receiver's current point of view and viewport. @param point The screenspace position to be unprojected. @discussion A point whose z component is 0 (resp. 1) is unprojected on the near (resp. far) clip plane.
     */
    unprojectPoint$(point: NobjcObject): NobjcObject;
    /** The viewport size that the 3D content will be rendered with */
    viewportSize(): CGSize;
    setViewportSize$(value: CGSize): void;
    /** A SceneKit scene */
    scnScene(): _SCNScene | null;
    setScnScene$(value: _SCNScene | null): void;
    /** @property sceneTime @abstract Specifies the current time to display the scene. */
    sceneTime(): number;
    setSceneTime$(value: number): void;
    /** @property playing @abstract Returns YES if the scene is playing, NO otherwise. */
    playing(): boolean;
    setPlaying$(value: boolean): void;
    /**
     * @property loops @abstract Indicates whether the receiver restarts playback when it reaches the end of its content. Default: YES. @discussion YES when the receiver restarts playback when it finishes, NO otherwise.
     */
    loops(): boolean;
    setLoops$(value: boolean): void;
    /**
     * @property pointOfView @abstract Specifies the point of view used to render the scene. @discussion A point of view must have either a camera or a spot light attached.
     */
    pointOfView(): _SCNNode | null;
    setPointOfView$(value: _SCNNode | null): void;
    /**
     * @property autoenablesDefaultLighting @abstract Specifies whether the receiver should automatically light up scenes that have no light source. The default is NO. @discussion When enabled, a diffuse light is automatically added and placed while rendering scenes that have no light or only ambient lights.
     */
    autoenablesDefaultLighting(): boolean;
    setAutoenablesDefaultLighting$(value: boolean): void;
}
