import Vector3D from "openfl/geom/Vector3D";
import Point from "openfl/geom/Point";
declare namespace starling.utils {
/**
* A utility class containing methods you might need for math problems.
*/
export class MathUtil {
/**
* Calculates the intersection point between the xy-plane and an infinite line
* * that is defined by two 3D points in the same coordinate system.
*/
static intersectLineWithXYPlane(pointA: Vector3D, pointB: Vector3D, out?: Point): Point;
/**
* Calculates if the point p is inside the triangle a-b-c.
*/
static isPointInTriangle(p: Point, a: Point, b: Point, c: Point): boolean;
/**
* Moves a radian angle into the range [-PI, +PI], while keeping the direction intact.
*/
static normalizeAngle(angle: number): number;
/**
* Returns the next power of two that is equal to or bigger than the specified number.
*/
static getNextPowerOfTwo(number: number): number;
/**
* Indicates if two float (Number) values are equal, give or take epsilon.
*/
static isEquivalent(a: number, b: number, epsilon?: number): boolean;
/**
* Returns the larger of the two values. Different to the native Math.max,
* * this doesn't create any temporary objects when using the AOT compiler.
*/
static max(a: number, b: number): number;
/**
* Returns the smaller of the two values. Different to the native Math.min,
* * this doesn't create any temporary objects when using the AOT compiler.
*/
static min(a: number, b: number): number;
/**
* Moves value into the range between min and max.
*/
static clamp(value: number, min: number, max: number): number;
/**
* Returns the smallest value in an array.
*/
static minValues(values: Array): number;
/**
* Converts an angle from degrees into radians.
*/
static deg2rad(deg: number): number;
/**
* Converts an angle from radians into degrees.
*/
static rad2deg(rad: number): number;
static toFixed(value: number, precision: number): string;
}
}
export default starling.utils.MathUtil;