import type { IBound } from '../consts.js'; import type { IVec } from './vec.js'; import { type SerializedXYWH, type XYWH } from './xywh.js'; export declare class Bound implements IBound { x: number; y: number; w: number; h: number; constructor(x?: number, y?: number, w?: number, h?: number); static fromXYWH(xywh: XYWH): Bound; static from(arg1: IBound): Bound; static fromDOMRect({ left, top, width, height }: DOMRect): Bound; static fromPoints(points: IVec[]): Bound; static fromCenter(center: IVec, width: number, height: number): Bound; get points(): IVec[]; get midPoints(): IVec[]; get center(): IVec; get minX(): number; get minY(): number; get maxX(): number; get maxY(): number; get tl(): IVec; get tr(): number[]; get bl(): number[]; get br(): number[]; get verticalLine(): IVec[]; get horizontalLine(): IVec[]; get upperLine(): IVec[]; get lowerLine(): IVec[]; get leftLine(): IVec[]; get rightLine(): IVec[]; containsPoint([x, y]: IVec): boolean; intersectLine(sp: IVec, ep: IVec, infinite?: boolean): IVec[] | null; isIntersectWithBound(bound: Bound, epsilon?: number): boolean; isOverlapWithBound(bound: Bound, epsilon?: number): boolean; unite(bound: Bound): Bound; include(point: IVec): Bound; getRelativePoint([x, y]: IVec): IVec; toRelative([x, y]: IVec): IVec; serialize(): SerializedXYWH; clone(): Bound; isHorizontalCross(bound: Bound): boolean; isVerticalCross(bound: Bound): boolean; horizontalDistance(bound: Bound): number; verticalDistance(bound: Bound): number; expand(left: number, top?: number, right?: number, bottom?: number): Bound; isPointInBound([x, y]: IVec, tolerance?: number): boolean; isPointNearBound([x, y]: IVec, tolerance?: number): boolean; contains(bound: Bound): boolean; getVerticesAndMidpoints(): IVec[]; static deserialize(s: string): Bound; } export declare function getCommonBound(bounds: IBound[]): Bound | null; export declare function getElementsBound(bounds: IBound[]): Bound; export declare function getBoundFromPoints(points: number[][]): Bound; export declare function inflateBound(bound: IBound, delta: number): Bound; export declare function transformPointsToNewBound(points: T[], oldBound: IBound, oldMargin: number, newBound: IBound, newMargin: number): { points: T[]; bound: Bound; }; //# sourceMappingURL=bound.d.ts.map