import Vector2 from "../../Vector2";

export default class AABB2 {
    x0: number
    y0: number
    x1: number
    y1: number

    readonly centerX: number
    readonly centerY: number
    readonly width: number
    readonly height: number

    constructor(x0: number, y0: number, x1: number, y1: number)

    constructor()

    set(x0: number, y0: number, x1: number, y1: number): void

    copy(other: AABB2): void

    clone(): AABB2

    equals(other: AABB2): boolean

    hash():number

    setBoundsUnordered(x0: number, y0: number, x1: number, y1: number): void

    getCenter(result?: Vector2): Vector2

    getHeight(): number

    getWidth(): number

    computeArea(): number

    grow(size: number): void

    shrink(size: number): void

    _expandToFitPoint(x: number, y: number): void

    setNegativelyInfiniteBounds(): void

    lineIntersectionPoint(v0: Vector2, v1: Vector2, result: Vector2): boolean

    toJSON(): any

    fromJSON(json: any): void
}
