import { Box3, Matrix3, Matrix4, Plane, Ray, Sphere, Vector3 } from 'three'

export class OBB {
  center: Vector3
  halfSize: Vector3
  rotation: Matrix3

  constructor(center?: Vector3, halfSize?: Vector3, rotation?: Matrix3)
  set(center: Vector3, halfSize: Vector3, rotation: Matrix3): this
  copy(obb: OBB): this
  clone(): this
  getSize(result: Vector3): Vector3
  clampPoint(point: Vector3, result: Vector3): Vector3
  containsPoint(point: Vector3): boolean
  intersectsBox3(box3: Box3): boolean
  intersectsSphere(sphere: Sphere): boolean
  intersectsOBB(obb: OBB, epsilon?: number): boolean
  intersectsPlane(plane: Plane): boolean
  intersectRay(ray: Ray, result: Vector3): Vector3 | null
  intersectsRay(ray: Ray): boolean
  fromBox3(box3: Box3): this
  equals(obb: OBB): boolean
  applyMatrix4(matrix: Matrix4): this
}
