import { Point2D } from './core';
export declare function add(v1: Point2D, v2: Point2D): Point2D;
export declare function add<T extends Point2D>(v1: Point2D, v2: Point2D, target: T): T;
export declare function subtract(v1: Point2D, v2: Point2D): Point2D;
export declare function subtract<T extends Point2D>(v1: Point2D, v2: Point2D, target: T): T;
export declare function multiply(v1: Point2D, v2: Point2D): Point2D;
export declare function multiply<T extends Point2D>(v1: Point2D, v2: Point2D, target: T): T;
export declare function multiplyScalar(v: Point2D, scalar: number): Point2D;
export declare function multiplyScalar<T extends Point2D>(v: Point2D, scalar: number, target: T): T;
export declare function divide(v1: Point2D, v2: Point2D): Point2D;
export declare function divide<T extends Point2D>(v1: Point2D, v2: Point2D, target: T): T;
export declare function dot(v1: Point2D, v2: Point2D): number;
export declare function cross(v1: Point2D, v2: Point2D): number;
export declare function lengthSquared(v: Point2D): number;
export declare function length(v: Point2D): number;
export declare function distanceSquared(v1: Point2D, v2: Point2D): number;
export declare function distance(v1: Point2D, v2: Point2D): number;
export declare function normalize(v: Point2D): Point2D;
export declare function normalize<T extends Point2D>(v: Point2D, target: T): T;
export declare function rotate(v: Point2D, angle: number): Point2D;
export declare function rotate<T extends Point2D>(v: Point2D, angle: number, target: T): T;
export declare function angle(v: Point2D): number;
export declare function angleDegree(v: Point2D): number;
