import { NonConstructiable } from '../foundation'; import type { Point } from './point'; import type { Size } from './size'; export interface Rect extends Size { readonly left: number; readonly right: number; readonly top: number; readonly bottom: number; } export declare class Rect extends NonConstructiable { static fromLTWH(left: number, top: number, width: number, height: number): Rect; static fromLTRB(left: number, top: number, right: number, bottom: number): Rect; static roundOut(rect: Rect): Rect; static fromSize(size: Size): Rect; static fromOffsetAndSize(offset: Point, size: Size): Rect; static expandToInclude(lhs: Rect, rhs: Rect): Rect; static inflate(lhs: Rect, size: Size): Rect; static isEmpty(rect: Rect): boolean; static shift(rect: Rect, offset: Point): Rect; static eq(lhs: Rect, rhs: Rect): boolean; static clone({ left, top, right, bottom, width, height, }: Rect): { left: number; top: number; right: number; bottom: number; width: number; height: number; }; static overlaps(lhs: Rect, rhs: Rect): boolean; static intersect(lhs: Rect, rhs: Rect): Rect; static contains(lhs: Rect, offset: Point): boolean; static readonly zero: Rect; }