import Vector3 from "../../Vector3";

export class AABB3 {
    x0: number
    y0: number
    z0: number
    x1: number
    y1: number
    z1: number

    readonly centerX: number
    readonly centerY: number
    readonly centerZ: number

    readonly width: number
    readonly height: number
    readonly depth: number

    constructor(x0?: number, y0?: number, z0?: number, x1?: number, y1?: number, z1?: number)

    setBounds(x0: number, y0: number, z0: number, x1: number, y1: number, z1: number): void

    setBoundsUnordered(x0: number, y0: number, z0: number, x1: number, y1: number, z1: number): void

    getCenter(target: Vector3): void

    getCenterX(): number

    getCenterY(): number

    getCenterZ(): number

    getExtents(target: Vector3): void

    getExtentsX(): number

    getExtentsY(): number

    getExtentsZ(): number

    expandToFit(box: AABB3): void

    _expandToFitPoint(x: number, y: number, z: number): boolean

    setNegativelyInfiniteBounds(): void

    setInfiniteBounds(): void

    distanceToBox(other: AABB3): number

    applyMatrix4(matrix: ArrayLike<number>): void

    equals(other: AABB3): boolean

    copy(other: AABB3): void

    _isBelowPlane(nx: number, ny: number, nz: number, constant: number): boolean
}
