import type { _SCNPhysicsBehavior } from "./SCNPhysicsBehavior.js";
import type { _SCNPhysicsBody } from "./SCNPhysicsBody.js";
import type { CATransform3D } from "../structs/CATransform3D.js";
export declare class _SCNPhysicsConeTwistJoint extends _SCNPhysicsBehavior {
    static alloc(): _SCNPhysicsConeTwistJoint;
    static new(): _SCNPhysicsConeTwistJoint;
    init(): _SCNPhysicsConeTwistJoint;
    /**
     * Initializes and returns a physics cone-twist joint. The joint attaches bodyA and bodyB on frameA and frameB respectively.
     */
    static jointWithBodyA$frameA$bodyB$frameB$(bodyA: _SCNPhysicsBody, frameA: CATransform3D, bodyB: _SCNPhysicsBody, frameB: CATransform3D): _SCNPhysicsConeTwistJoint;
    /**
     * Initializes and returns a physics cone-twist joint. The joint attaches "body" to the 3d location specified by "frame" and relative to the node that owns the body.
     */
    static jointWithBody$frame$(body: _SCNPhysicsBody, frame: CATransform3D): _SCNPhysicsConeTwistJoint;
    /** the first body attached to the slider joint */
    bodyA(): _SCNPhysicsBody;
    frameA(): CATransform3D;
    setFrameA$(value: CATransform3D): void;
    /** the second body attached to the slider joint */
    bodyB(): _SCNPhysicsBody | null;
    frameB(): CATransform3D;
    setFrameB$(value: CATransform3D): void;
    /** The maximum angular limits in radians in each cone tangent directions */
    maximumAngularLimit1(): number;
    setMaximumAngularLimit1$(value: number): void;
    maximumAngularLimit2(): number;
    setMaximumAngularLimit2$(value: number): void;
    /** Maximum twist angle alon the cone axis */
    maximumTwistAngle(): number;
    setMaximumTwistAngle$(value: number): void;
}
