import { Object3D } from "three";
import IPhysicsObjectManager, { PhysicsOptions } from "../../interface/IPhysicsObjectManager";
import Nullable from "../../interface/utils/Nullable";
import MeshAppendable from "./MeshAppendable";
import VisibleObjectManager from "./VisibleObjectManager";
import JointBase from "./JointBase";
export default class PhysicsObjectManager<T extends Object3D = Object3D> extends VisibleObjectManager<T> implements IPhysicsObjectManager {
    $actor?: any;
    $capsuleHeight?: number;
    $controller?: any;
    $convexGeometry?: any;
    private _mass?;
    get mass(): number;
    set mass(val: number);
    gravity: Nullable<boolean>;
    get velocityX(): number;
    set velocityX(val: number);
    get velocityY(): number;
    set velocityY(val: number);
    get velocityZ(): number;
    set velocityZ(val: number);
    addForce(x: number, y: number, z: number): void;
    addLocalForceAtPos(x: number, y: number, z: number, posX?: number, posY?: number, posZ?: number): void;
    addLocalForceAtLocalPos(x: number, y: number, z: number, posX?: number, posY?: number, posZ?: number): void;
    addTorque(x: number, y: number, z: number): void;
    private _joints?;
    get $joints(): Set<JointBase>;
    $initActor(actor: any): any;
    protected disposeNode(): void;
    $getPxShape(_: PhysicsOptions, actor: any): any;
    private _physics?;
    get physics(): PhysicsOptions;
    set physics(val: PhysicsOptions);
    private _jointCount?;
    get $jointCount(): number;
    set $jointCount(val: number);
    hitTest(target: MeshAppendable | PhysicsObjectManager): any;
}
