export interface IVector2D {
    x: number;
    y: number;
}
export interface IVector3D extends IVector2D {
    z: number;
}
export interface IVector4D extends IVector3D {
    t: number;
}
/**
 * Vector2D
 * Uses pooling for speed performance
 */
export declare class Vector2D implements IVector2D {
    x: number;
    y: number;
    private static _pool;
    static readonly poolCount: number;
    static new(x?: number, y?: number): Vector2D;
    constructor(x?: number, y?: number);
    set(x: number, y: number): this;
    /**
     * @deprecated
     */
    move(x: number, y: number): this;
    from(vector: IVector2D): this;
    free(): void;
    valueOf(): {
        x: number;
        y: number;
    };
    clone(): Vector2D;
    add(vector: Vector2D, isClone?: boolean): Vector2D;
    deduct(vector: IVector2D, isClone?: boolean): Vector2D;
    measureDistance(vector: IVector2D, xAxis?: boolean, yAxis?: boolean): number;
    comparePoint(vector: IVector2D): boolean;
    empty(): void;
}
export declare class Vector3D implements IVector3D {
    x: number;
    y: number;
    z: number;
    private static _pool;
    static readonly poolCount: number;
    static new(x?: number, y?: number, z?: number): Vector3D;
    constructor(x?: number, y?: number, z?: number);
    set(x: number, y: number, z: number): this;
    free(): void;
    valueOf(): {
        x: number;
        y: number;
        z: number;
    };
}
export declare class Vector4D implements IVector4D {
    x: number;
    y: number;
    z: number;
    t: number;
    private static _pool;
    static readonly poolCount: number;
    static new(x?: number, y?: number, z?: number, t?: number): Vector4D;
    constructor(x?: number, y?: number, z?: number, t?: number);
    set(x: number, y: number, z: number, t: number): this;
    free(): void;
    valueOf(): {
        x: number;
        y: number;
        z: number;
        t: number;
    };
}
//# sourceMappingURL=vector.d.ts.map