import { AmmoPhysicsContext } from "../physics-context";
import { Quaternion, Vector3 } from "three";
import { UpdateBodyOptions, UUID } from "../../three-ammo/lib/types";
export interface RigidbodyApi {
    updateBodyOptions(options: UpdateBodyOptions): void;
    getPosition(): Vector3;
    setPosition(position: Vector3): any;
    getRotation(): Quaternion;
    setRotation(rotation: Quaternion): any;
    setMotionState(position: Vector3, rotation: Quaternion): void;
    setLinearVelocity(velocity: Vector3): void;
    applyImpulse(impulse: Vector3, relativeOffset?: Vector3): void;
    applyForce(force: Vector3, relativeOffset?: Vector3): void;
    setShapesOffset(offset: Vector3): any;
}
export declare function createRigidBodyApi(physicsContext: AmmoPhysicsContext, bodyUUID: UUID, shapesUUID: UUID): {
    updateBodyOptions(options: UpdateBodyOptions): void;
    getPosition(): Vector3;
    setPosition(position: Vector3): void;
    getRotation(): Quaternion;
    setRotation(rotation: Quaternion): void;
    setMotionState(position: Vector3, rotation: Quaternion): void;
    setLinearVelocity(velocity: Vector3): void;
    applyImpulse(impulse: Vector3, relativeOffset?: Vector3 | undefined): void;
    applyForce(force: Vector3, relativeOffset?: Vector3 | undefined): void;
    setShapesOffset(offset: Vector3): void;
};
