/// <reference types="@types/amap-js-api" />
import { NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { AmapPluginLoaderService } from '../../shared/amap-plugin-loader.service';
import { EventBinderService } from '../../shared/event-binder.service';
import { LoggerService } from '../../shared/logger/logger.service';
import { Getter } from '../../base/interfaces';
export declare namespace AMapAutocomplete {
    type DataType = 'all' | 'bus' | 'poi' | 'busline';
    interface Options {
        /**
         * 输入提示时限定POI类型，多个类型用“|”分隔
         */
        type?: string;
        /**
         * 输入提示时限定城市
         */
        city?: string;
        /**
         * 返回的数据类型
         */
        datatype?: DataType;
        /**
         * 是否强制限制在设置的城市内搜索
         */
        citylimit?: boolean;
        /**
         * 指定输入框
         */
        input?: string | HTMLInputElement;
        /**
         * 指定输出面板
         */
        output?: string | HTMLDivElement;
        /**
         * 是否在input位于页面较下方的时候自动将输入面板显示在input上方以避免被遮挡
         */
        outPutDirAuto?: boolean;
    }
    interface Tip {
        /**
         * 名称
         */
        name: string;
        /**
         * 所属区域
         */
        district: string;
        /**
         * 区域编码
         */
        adcode: string;
        /**
         * 地址
         */
        address: string;
        /**
         * 城市
         */
        city: any[];
        /**
         * ID
         */
        id: string;
        /**
         * 坐标经纬度
         */
        location: AMap.LngLat;
        /**
         * 类型编码
         */
        typecode: string;
    }
    interface SearchResult {
        /**
         * 查询状态说明
         */
        info: string;
        /**
         * 输入提示条数
         */
        count: number;
        /**
         * 输入提示列表
         */
        tips: Tip[];
    }
    type SearchStatus = 'complete' | 'error' | 'no_data';
}
export interface AutocompleteSearchResult {
    status: AMapAutocomplete.SearchStatus;
    result: string | AMapAutocomplete.SearchResult;
}
export declare class AmapAutocompleteService implements Getter<any> {
    private plugin;
    private binder;
    private logger;
    private ngZone;
    private ac;
    private ac$;
    constructor(plugin: AmapPluginLoaderService, binder: EventBinderService, logger: LoggerService, ngZone: NgZone);
    /**
     * 获取插件
     */
    get(): Observable<any>;
    /**
     * 侦听事件
     */
    on(event: string): import("@angular/core").EventEmitter<any>;
    /**
     * 创建插件
     */
    create(options: AMapAutocomplete.Options): Observable<any>;
    /**
     * 搜索
     */
    search(address: string): Observable<AutocompleteSearchResult>;
}
