import type { GPUInteractionShapeCode } from '../GPUInteractionLayout.cjs'; import type { TSLFunction, TSLUintNode, TSLVec3Node, TSLVec4Node } from '../../../types/tsl.cjs'; export type InteractionVector3 = [number, number, number]; export type InteractionQuaternion = [number, number, number, number]; export type InteractionShapeData = [number, number, number, number]; export interface InteractionKinematicColliderCPU { position?: InteractionVector3 | undefined; quaternion?: InteractionQuaternion | undefined; linearVelocity?: InteractionVector3 | undefined; angularVelocity?: InteractionVector3 | undefined; } export interface InteractionColliderCPU extends InteractionKinematicColliderCPU { shapeType: GPUInteractionShapeCode; shapeData: InteractionShapeData; } export interface InteractionShapeQueryCPUResult { readonly distance: number; readonly normal: InteractionVector3; readonly point: InteractionVector3; } export interface InteractionMaterialCPU { readonly friction: number; readonly restitution: number; } type RotateVectorArguments = [vector: TSLVec3Node, quaternion: TSLVec4Node]; type QueryInteractionShapeArguments = [ point: TSLVec3Node, shapeType: TSLUintNode, position: TSLVec3Node, quaternion: TSLVec4Node, shapeData: TSLVec4Node ]; type ColliderSurfaceVelocityArguments = [ point: TSLVec3Node, center: TSLVec3Node, linearVelocity: TSLVec3Node, angularVelocity: TSLVec3Node ]; declare function queryInteractionShapeCPU(point: InteractionVector3, collider: InteractionColliderCPU): Readonly; declare function getColliderSurfaceVelocityCPU(collider: InteractionKinematicColliderCPU, point: InteractionVector3): InteractionVector3; declare function combineInteractionMaterialCPU(simulationFriction: number, simulationRestitution: number, colliderFriction: number, colliderRestitution: number): Readonly; declare const rotateVectorByQuaternion: TSLFunction; declare const inverseRotateVector: TSLFunction; declare const queryInteractionShape: TSLFunction; declare const getColliderSurfaceVelocity: TSLFunction; export { combineInteractionMaterialCPU, getColliderSurfaceVelocity, getColliderSurfaceVelocityCPU, inverseRotateVector, queryInteractionShape, queryInteractionShapeCPU, rotateVectorByQuaternion };