/// <reference path="ngeohash.d.ts" />
/// <reference path="geolib.d.ts" />
import { DotDto } from 'hunter-news-interfaces';
export declare class LatLongEngine {
    /** Valida que la latitud sea válida. Lanza un error en caso de no ser válido */
    private validateLatitude(latitude);
    /** Valida que la longitud sea válida. Lanza un error en caso de no ser válido */
    private validateLongitude(longitude);
    /** Valida que el punto sea válido. Lanza un error en caso de no ser válido */
    private validateDot(dot);
    /** Contiene los rangos de distancias y la precisión del hash que debiera utilizarse */
    private getDistanceRange();
    /** Obtiene el vértice mínimo de un cuadrilatero */
    private getMinDot(dot1, dot2, dot3, dot4);
    /** Obtiene el vertice superior de un cuadrilatero */
    private getMaxDot(dot1, dot2, dot3, dot4);
    /** Obtiene la precisión del hash */
    private getHashPrecision(start, end);
    /** calcula el GeoHash de un punto dado */
    makeGeoHash(point: DotDto): string;
    /** Calcula el punto dado a partir de un GeoHash */
    makeDot(hash: string): DotDto;
    /** Calcula los GeoHash para la zona visible */
    getHashFromVisibleArea(dot1: DotDto, dot2: DotDto, dot3: DotDto, dot4: DotDto): string[];
    /** Obtiene la precisión del hash */
    getHashPrecisionByDots(dot1: DotDto, dot2: DotDto, dot3: DotDto, dot4: DotDto): number;
    /** Calcula la distancia entre dos puntos */
    calculateDistance(start: DotDto, end: DotDto): number;
}
