import { Point3dType } from "../utils/isPoint";
import Point3d from "./Point3d";
declare const math: {
    abs: (x: number) => number;
    log: (x: number) => number;
    sqrt: (x: number) => number;
    min: (...values: number[]) => number;
    max: (...values: number[]) => number;
    randomRange: (min: number, max: number) => number;
    mapRange: (value: number, minFrom: number, maxFrom: number, minTo: number, maxTo: number, constrain?: boolean | undefined) => number;
    ceil: (x: number) => number;
    floor: (x: number) => number;
    round: (x: number) => number;
    sign: (x: number) => number;
    sin: (x: number) => number;
    cos: (x: number) => number;
    tan: (x: number) => number;
    asin: (x: number) => number;
    acos: (x: number) => number;
    atan: (x: number) => number;
    atan2: (y: number, x: number) => number;
    radToDeg: (rad: number) => number;
    degToRad: (deg: number) => number;
    mToCM: (m: number) => number;
    cmToM: (cm: number) => number;
    lerp: (a: number, b: number, t: number) => number;
    inverseLerp: (a: number, b: number, t: number) => number;
    smoothStep: (a: number, b: number, t: number) => number;
    clamp: (val: number, min: number, max: number) => number;
    fraction: (val: number) => number;
    trunc: (val: number) => number;
    cross: (a: Point3dType, b: Point3dType) => Point3d;
    dot: (a: Point3dType, b: Point3dType) => number;
    length: (a: Point3dType) => number;
    distance: (a: Point3dType, b: Point3dType) => number;
    normalize: (a: Point3dType) => Point3d;
    reflect: (a: Point3dType, b: Point3dType) => Point3d;
    project: (a: Point3dType, b: Point3dType) => Point3d;
    angle: (a: Point3dType, b: Point3dType) => number;
    rotate: (a: Point3dType, axis: Point3dType, angle: number) => Point3d;
    rotateX: (a: Point3dType, angle: number) => Point3d;
    rotateY: (a: Point3dType, angle: number) => Point3d;
    rotateZ: (a: Point3dType, angle: number) => Point3d;
    rotateXY: (a: Point3dType, angle: number) => Point3d;
    rotateXZ: (a: Point3dType, angle: number) => Point3d;
    rotateYZ: (a: Point3dType, angle: number) => Point3d;
    multiply: (a: Point3dType, b: Point3dType | number) => Point3d;
};
export default math;
