/// import * as Rapier from "@dimforge/rapier3d-compat"; import { Vector3, Quaternion, ArrowHelper } from "three"; import { World } from '../core/World'; interface PhysicsWorldProps { gravity: Vector3; debug: boolean; } export declare const PhysicsWorldComponent: import("../threecs").MapComponent; export declare function addPhysicsWorldComponent(world: World, eid: number, props?: Partial): void; export declare const physicsWorldQuery: import("bitecs").Query; export declare const mainPhysicsWorldQuery: (world: World) => number; export declare const newPhysicsWorldsQuery: import("bitecs").Query; interface InternalPhysicsWorldProps { physicsWorld: Rapier.World; colliderHandleToEntityMap: Map; } export declare const InternalPhysicsWorldComponent: import("../threecs").MapComponent; export declare enum PhysicsColliderShape { Box = "Box", Sphere = "Sphere", Capsule = "Capsule", Trimesh = "Trimesh" } export declare const RigidBodyType: typeof Rapier.RigidBodyType; export declare enum PhysicsGroups { None = 0, All = 65535 } export declare enum PhysicsInteractionGroups { None = 0, Default = 4294967295 } export declare function createInteractionGroup(groups: number, mask: number): number; export interface RigidBodyProps { translation: Vector3; rotation: Quaternion; shape?: PhysicsColliderShape; bodyType: Rapier.RigidBodyType; solverGroups: number; collisionGroups: number; lockRotations: boolean; friction: number; } export interface CapsuleRigidBodyProps extends RigidBodyProps { shape: PhysicsColliderShape.Capsule; halfHeight: number; radius: number; } export interface TrimeshRigidBodyProps extends RigidBodyProps { indices?: Uint32Array; vertices?: Float32Array; } export declare const RigidBodyComponent: import("../threecs").MapComponent; export declare function addRigidBodyComponent(world: World, eid: number, props?: Partial): void; export declare const rigidBodiesQuery: import("bitecs").Query; export declare const newRigidBodiesQuery: import("bitecs").Query; export interface InternalRigidBodyProps { body: Rapier.RigidBody; colliderShape: Rapier.Shape; } export declare const InternalRigidBodyComponent: import("../threecs").MapComponent; export interface PhysicsRaycasterProps { useObject3DTransform: boolean; transformNeedsUpdate: boolean; transformAutoUpdate: boolean; withIntersection: boolean; withNormal: boolean; origin: Vector3; dir: Vector3; colliderEid?: number; toi?: number; intersection: Vector3; normal: Vector3; maxToi: number; groups: number; debug: boolean; } export declare const PhysicsRaycasterComponent: import("../threecs").MapComponent; export declare function addPhysicsRaycasterComponent(world: World, eid: number, props?: Partial>): void; export declare const physicsRaycasterQuery: import("bitecs").Query; export declare const newPhysicsRaycastersQuery: import("bitecs").Query; export interface InternalPhysicsRaycasterProps { ray: Rapier.Ray; arrowHelper?: ArrowHelper; } export declare const InternalPhysicsRaycasterComponent: import("../threecs").MapComponent; export declare function loadPhysicsSystem(): Promise; export {};