export interface IVector2D {
    get x(): number;
    get y(): number;
    distanceTo(position: IVector2D): number;
    squaredDistanceTo(position: IVector2D): number;
    isInRange(position: IVector2D, range: number): boolean;
}
export interface IVector3D extends IVector2D {
    get z(): number;
    distanceTo(position: IVector3D): number;
    squaredDistanceTo(position: IVector3D): number;
    isInRange(position: IVector3D, range: number): boolean;
}
export declare class Vector2D implements IVector2D {
    private readonly _x;
    private readonly _y;
    get x(): number;
    get y(): number;
    constructor(x: number, y: number);
    distanceTo(position: Vector2D): number;
    squaredDistanceTo(position: Vector2D): number;
    isInRange(position: Vector2D, range: number): boolean;
}
export declare class Vector3D extends Vector2D implements IVector3D {
    private readonly _z;
    get z(): number;
    constructor(x: number, y: number, z: number);
    distanceTo(position: Vector3D): number;
    squaredDistanceTo(position: Vector3D): number;
    isInRange(position: Vector3D, range: number): boolean;
}
