/**
 * 初始化和加载baidu地图
 */
import React from 'react';
declare global {
    interface Window {
        BMap: any;
        [index: string]: () => any;
    }
}
export interface APILoaderConfig {
    /**
     * akay 密钥
     * 您需先申请密钥（ak）才可使用该服务，接口无使用次数限制，请开发者放心使用。
     * 文档说明地址：http://lbsyun.baidu.com/index.php?title=jspopular3.0/guide/getkey
     * 申请秘钥地址：http://lbs.baidu.com/apiconsole/key?application=key
     */
    akay?: string;
    /**
     * SDK 包版本
     * @default 3.0
     */
    version?: string;
    /**
     * 协议，默认是根据当前网站协议的
     */
    protocol?: 'http' | 'https';
    /**
     * 请求 SDK 的前半部分
     * http://api.map.baidu.com/api?v=2.0&ak=E480562045
     * @default api.map.baidu.com/api
     */
    hostAndPath?: string;
    /**
     * JSONP 回调函数
     */
    callbackName?: string;
    /**
     * 百度地图JavaScript API GL v1.0是一套由JavaScript语言编写的应用程序接口，可帮助您在网站中构建功能丰富、交互性强的地图应用，支持PC端和移动端基于浏览器的地图应用开发，且支持HTML5特性的地图开发。
     * JavaScript API GL使用了WebGL对地图、覆盖物等进行渲染，支持3D视角展示地图。 GL版本接口基本向下兼容，迁移成本低。目前v1.0版本支持了基本的3D地图展示、基本地图控件和覆盖物。
     */
    type?: 'webgl';
    /**
     * 禁用 SDK 加载，当你使用本地自己加载 SDK 可以设置为 true
     * ```html
     * <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
     * ```
     */
    disableScripts?: boolean;
}
export declare function delay(time: number): Promise<undefined>;
export interface APILoaderProps extends APILoaderConfig {
    /**
     * 用于展示加载中或错误状态
     */
    fallback?: (error?: Error) => React.ReactNode;
}
interface State {
    loaded: boolean;
    error?: Error;
}
/**
 * APILoader 用于加载百度地图依赖
 */
export default class APILoader extends React.Component<React.PropsWithChildren<APILoaderProps>, State> {
    static defaultProps: {
        akay: string;
        hostAndPath: string;
        version: string;
        callbackName: string;
        type: string;
    };
    private isMountedOk;
    /**
     * 全局可能存在多个Loader同时渲染, 但是只能由一个负责加载
     */
    private static waitQueue;
    /**
     * 等待BMap就绪
     */
    static ready(): Promise<unknown>;
    constructor(props: APILoaderProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
    private getScriptSrc;
    /**
     * load BaiduMap in script tag
     */
    private loadMap;
    private handleError;
    private finish;
}
export {};
