export interface Vector2 { x: number y: number } export interface Vector3 extends Vector2 { z: number } export interface Vector4 extends Vector3 { w: number } export type Vector = Vector2 | Vector3 | Vector4 export type VectorKey = 'x' | 'y' | 'z' | 'w'