import { HttpClient } from '@angular/common/http';
import { DataSource } from '../datasource';
import { Observable } from 'rxjs';
import { GeoPoint } from '../map/geopoint';
import * as i0 from "@angular/core";
interface SearchResult {
    place_id: number;
    lat: number;
    lon: number;
    display_name: string;
    icon: string;
}
export declare class GeolocationService {
    private http;
    private debouncePeriodMs;
    private cacheSize;
    private lastQueriesWithResults;
    private lastQueriesLru;
    private currentSearch$;
    private currentQuery$;
    constructor(http: HttpClient);
    searchGeolocation(query: string): Observable<SearchResult[]>;
    getLabels(instance: GeolocationService, keys: GeoPoint[]): Observable<DataSource<GeoPoint, string>>;
    getData(instance: GeolocationService, search: string): Observable<DataSource<GeoPoint, string>>;
    private getFromCache;
    private addToCache;
    private revomeFromCache;
    private getLatestQuery;
    static ɵfac: i0.ɵɵFactoryDeclaration<GeolocationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<GeolocationService>;
}
export {};
