import type { Bounds4, Point } from '../../types/scene';
/**
 * An interface for a vector with 4 components, considered to be a pair of vector2 coordinates. This can represent a
 * line with a start and end point, or two opposite corners of a box. There is no inherent ordering of the values
 * for each component, though positional functions such as `topCenter` will consider the min or max of each pair
 * of `x` and `y` components.
 */
/**
 * Get the vector2 at the start of a vector4.
 */
export declare function start(a: Bounds4): Point;
/**
 * Get the vector2 at the end of a vector4.
 */
export declare function end(a: Bounds4): Point;
/**
 * Get the vector2 at top center of a vector4.
 */
export declare function topCenter(a: Bounds4): Point;
/**
 * Get the vector2 at center of a vector4.
 */
export declare function center(a: Bounds4): Point;
/**
 * Get the vector2 at bottom center of a vector4.
 */
export declare function bottomCenter(a: Bounds4): Point;
/**
 * Get the absolute width of a vector4.
 */
export declare function width(a: Bounds4): number;
/**
 * Get the absolute height of a vector4.
 */
export declare function height(a: Bounds4): number;
/**
 * Round each component of the vector4 to the nearest integer.
 */
export declare function round(a: Bounds4): Bounds4;
/**
 * Clone a vector4.
 */
export declare function clone(a: Bounds4): Bounds4;
export declare function collides(a: Bounds4, b: Bounds4): boolean;
export declare function normalise(a: Bounds4): Bounds4;
/**
 * Create a vector4 from an `x1`, `y1`, `x2` and `y2`.
 */
export declare function from(x1: number, y1: number, x2: number, y2: number): Bounds4;
/**
 * Create a vector4 from a bounding box.
 */
export declare function from(bbox: {
    x: number;
    y: number;
    width: number;
    height: number;
}): Bounds4;
/**
 * Create a vector4 at the origin point (0,0).
 */
export declare function origin(): Bounds4;
