import { FeatureCollection, MultiPolygon, Polygon } from "geojson";
import { AdministrativeAreaFeatureCollection } from "./AdministrativeAreaFeature";
/**
 * 행정구역 GeoJSON 레포지토리
 */
export declare class KoreaAdministrativeAreaGeoJsonUtil {
    private readonly admSdGeoJson;
    private readonly admSggGeoJson;
    private readonly admAllGeoJson;
    private readonly unionAdministrativeAreaFeatureCache;
    constructor(admSdGeoJson: AdministrativeAreaFeatureCollection, admSggGeoJson: AdministrativeAreaFeatureCollection, admAllGeoJson: AdministrativeAreaFeatureCollection, option?: {
        cacheSize?: number;
    });
    /**
     * 대한민국 전체 경계 GeoJSON 조회
     */
    getKorea(): Promise<AdministrativeAreaFeatureCollection>;
    /**
     * 행정 구역 code 목록 => 행정구역 GeoJSON 목록 매핑
     * @param administrativeAreaCodes
     * @private
     */
    private getFeaturesByAreaCodes;
    /**
     * Feature 배열 병합
     * @param features
     * @private
     */
    private mergeFeatures;
    /**
     * 이어진 지역을 그룹화한 결과를 반환합니다.
     * @param administrativeAreaCodes
     */
    groupConnectedAreas(administrativeAreaCodes: string[]): Promise<{
        areaCodes: string[];
        centerFeature: import("@turf/helpers").Feature<import("@turf/helpers").Point, import("@turf/helpers").Properties>;
        mergedFeature: import("geojson").Feature<Polygon | MultiPolygon, import("geojson").GeoJsonProperties> | null;
    }[]>;
    /**
     * 주어진 행정구역 목록을 병합한 GeoJSON 조회
     */
    mergeAreas(administrativeAreaCodes: string[]): Promise<FeatureCollection<Polygon | MultiPolygon> | null>;
    /**
     * 캐시 초기화
     */
    clearCache(): void;
}
