import { IZPoint2d } from './point.mjs'; /** * Represents a object of 4 side values. * * @param T - * Value type. Typically number. */ export interface IZQuadrilateral { /** * Bottom value. */ bottom: T; /** * Left value. */ left: T; /** * Right value. */ right: T; /** * Top value. */ top: T; } /** * Represents an object that can describe a quadrilateral. * * Note that there will be limitations on what you can describe * when building Quadrilaterals of Quadrilaterals, or Quadrilaterals * of Point2d's which is not supported and has undefined behavior. */ export type ZQuadrilateralLike = T | Partial> | Partial> | null | undefined; /** * Represents a builder for a quadrilateral object. */ export declare class ZQuadrilateralBuilder { private _quad; /** * Initializes a new instance of this object. * * @param start - * The starting value. */ constructor(start: T); /** * Sets the bottom value. * * @param bottom - * The bottom value. * * @returns * This object. */ bottom(bottom: T): this; /** * Sets the left value. * * @param left - * The left value. * * @returns * This object. */ left(left: T): this; /** * Sets the right value. * * @param right - * The right value. * * @returns * This object. */ right(right: T): this; /** * Sets the top value. * * @param top - * The top value. * * @returns * This object. */ top(top: T): this; /** * Sets the left and right value. * * @param x - * The left and right value. * * @returns * This object. */ x(x: T): this; /** * Sets the top and bottom value. * * @param y - * The top and bottom value. * * @returns * This object. */ y(y: T): this; /** * Constructs a full quadrilateral from an object that describes a quadrilateral. * * Note the limitations of this method. If T is of type Quadrilateral or Point2d, * then this method's behavior is undefined and it will most likely build a * corrupt object. * * @param other - * The object to build from. * * @returns * This object. */ from(other: ZQuadrilateralLike): this; /** * Copies another quadrilateral object into the current instance. * * @param other - * The quadrilateral object to copy. * * @returns * This object. */ copy(other: IZQuadrilateral): this; /** * Returns the built quadrilateral object. * * @returns * The built quadrilateral. */ build(): IZQuadrilateral; }