import { MatrixArray } from './matrix'; 
 | 
export interface PointLike { 
 | 
    x: number; 
 | 
    y: number; 
 | 
} 
 | 
export default class Point { 
 | 
    x: number; 
 | 
    y: number; 
 | 
    constructor(x?: number, y?: number); 
 | 
    copy(other: PointLike): this; 
 | 
    clone(): Point; 
 | 
    set(x: number, y: number): this; 
 | 
    equal(other: PointLike): boolean; 
 | 
    add(other: PointLike): this; 
 | 
    scale(scalar: number): void; 
 | 
    scaleAndAdd(other: PointLike, scalar: number): void; 
 | 
    sub(other: PointLike): this; 
 | 
    dot(other: PointLike): number; 
 | 
    len(): number; 
 | 
    lenSquare(): number; 
 | 
    normalize(): this; 
 | 
    distance(other: PointLike): number; 
 | 
    distanceSquare(other: Point): number; 
 | 
    negate(): this; 
 | 
    transform(m: MatrixArray): this; 
 | 
    toArray(out: number[]): number[]; 
 | 
    fromArray(input: number[]): void; 
 | 
    static set(p: PointLike, x: number, y: number): void; 
 | 
    static copy(p: PointLike, p2: PointLike): void; 
 | 
    static len(p: PointLike): number; 
 | 
    static lenSquare(p: PointLike): number; 
 | 
    static dot(p0: PointLike, p1: PointLike): number; 
 | 
    static add(out: PointLike, p0: PointLike, p1: PointLike): void; 
 | 
    static sub(out: PointLike, p0: PointLike, p1: PointLike): void; 
 | 
    static scale(out: PointLike, p0: PointLike, scalar: number): void; 
 | 
    static scaleAndAdd(out: PointLike, p0: PointLike, p1: PointLike, scalar: number): void; 
 | 
    static lerp(out: PointLike, p0: PointLike, p1: PointLike, t: number): void; 
 | 
} 
 |