import type { Vector2Like } from './Vector2';
import { Vector2 } from './Vector2';
export interface RectangleLike {
    x: number;
    y: number;
    width: number;
    height: number;
}
/**
 * AxisAlignedBoundingBox2D
 */
export declare class Aabb2D implements RectangleLike {
    get x(): number;
    set x(val: number);
    get y(): number;
    set y(val: number);
    get left(): number;
    set left(val: number);
    get top(): number;
    set top(val: number);
    get right(): number;
    set right(val: number);
    get bottom(): number;
    set bottom(val: number);
    get width(): number;
    set width(val: number);
    get height(): number;
    set height(val: number);
    readonly max: Vector2;
    readonly min: Vector2;
    readonly size: Vector2;
    constructor();
    constructor(rect: RectangleLike);
    constructor(pointArray: Vector2Like[]);
    constructor(min: Vector2Like, size: Vector2Like);
    constructor(x: number, y: number, width: number, height: number);
    update(): this;
    overlapsOnAxis(rect: Aabb2D, axis?: 'horizontal' | 'vertical'): boolean;
    containsPoint(point: Vector2Like): boolean;
    getIntersectionRect(target: Aabb2D): Aabb2D;
    getArea(): number;
    toMinmax(): {
        min: Vector2;
        max: Vector2;
    };
    toCssStyle(): {
        left: string;
        top: string;
        width: string;
        height: string;
    };
    toArray(): number[];
    toJSON(): RectangleLike;
    clone(): Aabb2D;
}
