import type { Fn, Maybe } from "@thi.ng/api";
import type { ReadonlyVec, VecPair } from "@thi.ng/vectors";
import type { AABBLike, IShape } from "../api.js";
/**
 * Computes the total bounds for the given shape collection, which should either
 * contain only 2D or 3D types. No mixed dimensions are allowed! Currently the
 * {@link bounds} function MUST be passed in as arg to avoid circular module
 * dependencies. Returns 2-tuple of `[pos, size]`.
 *
 * @param shapes - input shapes
 * @param bounds - bbox function
 */
export declare const __collBounds: (shapes: IShape[], bounds: Fn<IShape, Maybe<AABBLike>>) => import("@thi.ng/vectors").Vec[] | undefined;
/**
 * Takes the position and size vectors of 2 {@link AABBLike}s and returns
 * 2-tuple of `[pos,size]` of their union bounds.
 *
 * @param apos - bbox 1 min pos
 * @param asize - bbox1 size
 * @param bpos - bbox 2 min pos
 * @param bsize - bbox 2 size
 */
export declare const __unionBounds: (apos: ReadonlyVec, asize: ReadonlyVec, bpos: ReadonlyVec, bsize: ReadonlyVec) => VecPair;
//# sourceMappingURL=bounds.d.ts.map