import type { IPoint } from './index.js';
export declare class Point {
    x: number;
    y: number;
    constructor(x?: number, y?: number);
    static from(point: IPoint | number[] | number, y?: number): Point;
    set(x: number, y: number): void;
    equals({ x, y }: Point): boolean;
    add(point: IPoint): Point;
    scale(factor: number): Point;
    subtract(point: IPoint): Point;
    /**
     * Returns a copy of the point.
     */
    clone(): Point;
    cross(point: IPoint): number;
    lerp(point: IPoint, t: number): Point;
    toArray(): number[];
    /**
     * Compares and returns the minimum of two points.
     */
    static min(a: Point, b: Point): Point;
    /**
     * Compares and returns the maximum of two points.
     */
    static max(a: Point, b: Point): Point;
    /**
     * Restrict a value to a certain interval.
     */
    static clamp(p: Point, min: Point, max: Point): Point;
}
export declare class Rect {
    min: Point;
    max: Point;
    constructor(left: number, top: number, right: number, bottom: number);
    get width(): number;
    set width(w: number);
    get height(): number;
    set height(h: number);
    get left(): number;
    set left(x: number);
    get top(): number;
    set top(y: number);
    get right(): number;
    set right(x: number);
    get bottom(): number;
    set bottom(y: number);
    center(): Point;
    extend_with(point: Point): void;
    extend_with_x(x: number): void;
    extend_with_y(y: number): void;
    equals({ min, max }: Rect): boolean;
    contains({ min, max }: Rect): boolean;
    intersects({ left, top, right, bottom }: Rect): boolean;
    isPointIn({ x, y }: Point): boolean;
    isPointDown({ x, y }: Point): boolean;
    isPointUp({ x, y }: Point): boolean;
    isPointLeft({ x, y }: Point): boolean;
    isPointRight({ x, y }: Point): boolean;
    intersect(other: Rect): Rect;
    clamp(p: Point): Point;
    clone(): Rect;
    toDOMRect(): DOMRect;
    static fromLTRB(left: number, top: number, right: number, bottom: number): Rect;
    static fromLWTH(left: number, width: number, top: number, height: number): Rect;
    static fromXY(x: number, y: number): Rect;
    static fromPoint(point: Point): Rect;
    static fromPoints(start: Point, end: Point): Rect;
    static fromDOMRect({ left, top, right, bottom }: DOMRect): Rect;
    static fromDOM(dom: Element): Rect;
}
//# sourceMappingURL=rect.d.ts.map