import { Vector3 } from "three";
import { Behaviour } from "./Component.js";
import { Rigidbody } from "./RigidBody.js";
/**
 * Base class for physics joints connecting two rigid bodies.
 * @summary Connect two Rigidbodies
 * @category Physics
 * @group Components
 */
export declare abstract class Joint extends Behaviour {
    connectedBody?: Rigidbody;
    get rigidBody(): Rigidbody | null;
    private _rigidBody;
    onEnable(): void;
    private create;
    protected abstract createJoint(self: Rigidbody, other: Rigidbody): any;
}
export declare class FixedJoint extends Joint {
    protected createJoint(self: Rigidbody, other: Rigidbody): void;
}
export declare class HingeJoint extends Joint {
    anchor?: Vector3;
    axis?: Vector3;
    protected createJoint(self: Rigidbody, other: Rigidbody): void;
}
