import { BaseWidget, EventHandler } from '../../core'; import { PlaceDetailOptions, LocalResultPoiType } from '../../types'; /** * 地点详情 load 事件抛出的数据 * 仅包含约定字段,便于业务使用。 * @category 类型 */ export interface PlaceDetailEventData { /** 名称/标题 */ title: string; /** 地址 */ address: string; /** 地点唯一标识 */ uid?: string; /** 坐标 { lng, lat } */ point?: { lng: number; lat: number; }; /** 电话 */ tel?: string; } /** * 地点详情组件 * 根据 uid 或本地检索 POI 展示详情;通过 on('load') 监听详情加载完成。 * @category 功能 */ export declare class PlaceDetail extends BaseWidget { private readonly options; private detailWrap; /** * @param container 挂载容器选择器或 DOM 元素 * @param options 配置项,map 必传 */ constructor(container: string | HTMLElement, options: PlaceDetailOptions); /** * 设置当前展示的地点 * @param uidOrPoi 地点 uid(将请求详情接口)或本地检索 POI 对象(直接渲染) */ setPlace(uidOrPoi: string | LocalResultPoiType): void; /** 清空详情区域,恢复为空状态占位 */ clear(): void; /** * 监听事件,支持 `load` 事件 * @param event 事件名 * @param handler 事件处理函数 * @returns 组件实例 */ on(event: 'load', handler: EventHandler): this; /** * 移除事件监听,支持 `load` 事件 * @param event 事件名 * @param handler 可选,要移除的回调;不传则移除该事件的全部监听 * @returns 组件实例 */ off(event: 'load', handler?: EventHandler): this; destroy(): void; protected render(): void; private fetchDetailByUid; }