/// import { immerable } from 'immer'; import * as t from 'io-ts'; import { Angle } from './angle'; export declare const VectorLike: t.TypeC<{ x: t.NumberC; y: t.NumberC; }>; export declare type VectorLike = t.TypeOf; export declare const VectorType: t.Type; export declare class Vector implements VectorLike { [immerable]: boolean; readonly x: number; readonly y: number; constructor(x: number, y: number); static fromVectorLike(v: VectorLike): Vector; protected factory(x: number, y: number): Vector; private apply; add(other: VectorLike): Vector; subtract(other: VectorLike): Vector; times(other: VectorLike): Vector; div(other: VectorLike): Vector; dot(other: VectorLike): number; rotate(radians: number | Angle): Vector; scale(scale: number): Vector; normalize(targetLength?: number): Vector; get lengthSquared(): number; get length(): number; get unitVector(): Vector; lengthenBy(c: number): Vector; shortenToLength(c: number): Vector; get angle(): Angle; }