/** * This is a utility type used by polybool, in order to get an alternative representation * or the roblox equivalent Vector2 class, then you will want to use `intoVector2` * * @example * ``` * import { intoVector2, Vec2 } from "@rbxts/polybool"; * * const vec2: Vec2 = [0.5, 0.5]; * const vector2 = intoVector2(vec2); * ``` */ export type Vec2 = [x: number, y: number]; export type Vec6 = [number, number, number, number, number, number]; export declare function lerp(a: number, b: number, t: number): number; export declare function lerpVec2(a: Vec2, b: Vec2, t: number): Vec2; export declare function boundingBoxesIntersect(bbox1: [Vec2, Vec2], bbox2: [Vec2, Vec2]): boolean; export declare abstract class Geometry { abstract snap0(v: number): number; abstract snap01(v: number): number; abstract isCollinear(p1: Vec2, p2: Vec2, p3: Vec2): boolean; abstract solveCubic(a: number, b: number, c: number, d: number): number[]; abstract isEqualVec2(a: Vec2, b: Vec2): boolean; abstract compareVec2(a: Vec2, b: Vec2): number; } export declare class GeometryEpsilon extends Geometry { readonly epsilon: number; constructor(epsilon?: number); snap0(v: number): number; snap01(v: number): number; isCollinear(p1: Vec2, p2: Vec2, p3: Vec2): boolean; private solveCubicNormalized; solveCubic(a: number, b: number, c: number, d: number): number[]; isEqualVec2(a: Vec2, b: Vec2): boolean; compareVec2(a: Vec2, b: Vec2): 0 | 1 | -1; } export declare function isVector2(u: unknown): u is Vector2; export declare function isVec2(u: unknown): u is Vec2; export declare function isVec6(u: unknown): u is Vec2; export declare function intoVec2(vector2: Vector2): Vec2; export declare function intoVector2(vec2: Vec2): Vector2; export declare function intoVector2(vec2: Vec6): Vector2; export declare function intoVector2(vec2: Vec2 | Vec6): Vector2;