/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// export type Libraries = ("services" | "clusterer" | "drawing")[]; export interface LoaderOptions { /** * script 객체 생성시 사용자 정의 id */ id?: string; /** * 발급 받은 Kakao 지도 Javscript API 키. * * @see [준비하기](https://apis.map.kakao.com/web/guide/#ready) */ appkey: string; /** * 사용하는 라이브러리 목록 * * Kakao 지도 Javascript API 는 지도와 함께 사용할 수 있는 라이브러리 를 지원하고 있습니다. * 라이브러리는 javascript API와 관련되어 있지만 조금 특화된 기능을 묶어둔 것을 말합니다. 이 기능은 추가로 불러와서 사용할 수 있도록 되어있습니다. * 현재 사용할 수 있는 라이브러리는 다음과 같습니다. * * clusterer: 마커를 클러스터링 할 수 있는 클러스터러 라이브러리 입니다. * services: 장소 검색 과 주소-좌표 변환 을 할 수 있는 services 라이브러리 입니다. * drawing: 지도 위에 마커와 그래픽스 객체를 쉽게 그릴 수 있게 그리기 모드를 지원하는 drawing 라이브러리 입니다. * 라이브러리는 계속해서 추가될 예정입니다. */ libraries?: Libraries; /** * 사용자 정의 Kakao 지도 javascript 경로 지정 * * @default "//dapi.kakao.com/v2/maps/sdk.js" */ url?: string; /** * 보안을 위한 nonce 값 설정 */ nonce?: string; /** * 스크립트 로드 재시도 횟수 */ retries?: number; } export declare enum LoaderStatus { INITIALIZED = 0, LOADING = 1, SUCCESS = 2, FAILURE = 3 } export type LoaderErorr = Event | string; /** * Kakao Map Api Loader * * `new Loader(options).load()` 함수를 이용하여 Api를 비동기적으로 삽입할 수 있습니다. * * 해당 Loader를 이용시 `react-kakao-maps-sdk` 내부에서 injection 되는 이벤트를 감지하여 kakao map api 로딩 이후에 렌더링을 진행합니다. */ export declare class Loader { private static instance; private static loadEventCallback; readonly id: string; readonly appkey: string; readonly url: string; readonly libraries: Libraries; readonly nonce: string | undefined; readonly retries: number; private callbacks; private done; private loading; private errors; private onEvent; constructor({ appkey, id, libraries, nonce, retries, url, }: LoaderOptions); get options(): { appkey: string; id: string; libraries: Libraries; nonce: string | undefined; retries: number; url: string; }; static addLoadEventLisnter(callback: (err?: LoaderErorr) => void): (err?: LoaderErorr) => void; static removeLoadEventLisnter(callback: (err?: LoaderErorr) => void): boolean; load(): Promise; get status(): LoaderStatus; private get failed(); private loadCallback; private resetIfRetryingFailed; private reset; private execute; private setScript; private loadErrorCallback; createUrl(): string; private deleteScript; private callback; private static equalOptions; }