import { type Vec3 } from "./Shape.js";
import type { RigidBody } from "./RigidBody.js";
export type ConstraintType = "fixed" | "hinge" | "slider" | "spring";
export type ConstraintDescriptor = {
    readonly type: ConstraintType;
    readonly bodyA: RigidBody;
    readonly bodyB: RigidBody;
    readonly localAnchorA?: Vec3;
    readonly localAnchorB?: Vec3;
    readonly restLength?: number;
    readonly stiffness?: number;
    readonly axis?: Vec3;
};
export declare class Constraint {
    readonly type: ConstraintType;
    readonly bodyA: RigidBody;
    readonly bodyB: RigidBody;
    readonly localAnchorA: Vec3;
    readonly localAnchorB: Vec3;
    readonly restOffset: Vec3;
    readonly restLength: number;
    readonly stiffness: number;
    readonly axis: Vec3;
    constructor(descriptor: ConstraintDescriptor);
    solve(): void;
    private anchorAWorld;
    private anchorBWorld;
    private applyError;
    private applyVelocityError;
}
//# sourceMappingURL=Constraint.d.ts.map