import { Repository } from 'typeorm'; import type { Cache } from 'cache-manager'; import { PlaceSyria } from './entities/place-syria.entity'; import { PlaceJordan } from './entities/place-jordan.entity'; import { PlaceEgypt } from './entities/place-egypt.entity'; import { BasePlace } from './entities/base-place.entity'; import { OsmArea } from './entities/osm-area.entity'; import { OsmPointWithArea } from './entities/osm-point-with-area.entity'; export declare class GeocodingService { private placesSyriaRepository; private placesJordanRepository; private placesEgyptRepository; private osmAreasRepository; private osmPointsRepository; private cacheManager; private readonly logger; private readonly DB_TIMEOUT_MS; constructor(placesSyriaRepository: Repository, placesJordanRepository: Repository, placesEgyptRepository: Repository, osmAreasRepository: Repository, osmPointsRepository: Repository, cacheManager: Cache); private getRepositoryForCoords; private identifyRegion; private getTableNameForRepo; searchPlaces(query: string, lat?: number, lon?: number, radius?: number, country?: string): Promise<{ results: any; source: string; did_you_mean?: undefined; } | { results: never[]; did_you_mean: any; source?: undefined; } | { results: any[]; source?: undefined; did_you_mean?: undefined; }>; private formatResults; private getRepoByTableName; private logFailedSearch; autocomplete(query: string, country?: string): Promise<{ results: any; source: string; } | { results: any; source?: undefined; }>; reverseGeocode(lat: number, lng: number): Promise; addPlace(data: Partial): Promise; upsertPlace(data: Partial): Promise<{ id: any; action: string; }>; upsertBatch(places: Partial[]): Promise<{ total: number; processed: number; created: number; updated: number; }>; getRecentPlaces(limit?: number): Promise; getAllPlacesGeoJSON(): Promise<{ type: string; features: any; }>; deletePlacesByName(name: string, country: string): Promise<{ success: boolean; affected: any; }>; deletePlaceById(id: number, country: string): Promise<{ success: boolean; affected: any; }>; private getRepoByCountry; }