export interface MapOptions { center: LatLng; zoom: number; styleUrl: string; tileUrl: string; } export interface GeoPoint { x: number; y: number; } export interface Zone { id: string; name?: string; color?: string; opacity?: number; polygon: GeoPoint[]; shippingFee?: number; deliverySchedule?: string; } export interface Address { line1: string; line2?: string; postalCode: string; subdivision: string; city: string; country: string; shippingFee?: number; deliverySchedule?: string; } export type LatLng = [number, number]; export declare function getLngLat(latLng: LatLng): [number, number]; export interface IMapAdapter { init(container: HTMLElement, options: MapOptions): void; setCenter(latLng: LatLng): void; setZoom(zoom: number): void; addMarker(latLng: LatLng, options?: { id?: string; color?: string }): void; removeMarker(id?: string): void; destroy(): void; addZone(zone: Zone[]): void; updateZone(zone: Zone[]): void; openZonePopup(zone: Zone) : void openAddressPopup(address: Address): void; closePopup(): void; on( type: string, event: (e: any) => void, ): void; }