import { PluginConfig, BuiltinPluginType } from '../types/plugin';
import { MapConfig } from '../types';
import { Component } from 'vue';

export declare const PLUGIN_COMPONENTS: Record<string, Component>;
export declare class PluginFactory {
    /**
     * 创建工具栏插件配置
     */
    static createToolbarPlugin(options?: {
        position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
        mapConfig?: MapConfig;
        visible?: boolean;
        zIndex?: number;
    }): PluginConfig;
    /**
     * 创建地图控件插件配置
     */
    static createControlsPlugin(options?: {
        position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
        direction?: "horizontal" | "vertical";
        controls?: {
            zoom?: boolean;
            rotation?: boolean;
            fullscreen?: boolean;
            location?: boolean;
            overview?: boolean;
            zoomToExtent?: boolean;
        };
        size?: "large" | "default" | "small";
        visible?: boolean;
        zIndex?: number;
    }): PluginConfig;
    /**
     * 创建搜索插件配置
     */
    static createSearchPlugin(options?: {
        position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
        searchConfig?: {
            placeholder?: string;
            size?: "large" | "default" | "small";
            searchApi?: "tianditu" | "amap" | "custom";
            showHistory?: boolean;
            showResults?: boolean;
            maxResults?: number;
        };
        visible?: boolean;
        zIndex?: number;
    }): PluginConfig;
    /**
     * 创建默认插件配置集合
     */
    static createDefaultPlugins(mapConfig?: MapConfig): PluginConfig[];
    /**
     * 根据类型创建插件配置
     */
    static createPlugin(type: BuiltinPluginType, options?: any): PluginConfig;
}
export declare const PLUGIN_PRESETS: {
    readonly basic: readonly [PluginConfig];
    readonly standard: readonly [PluginConfig, PluginConfig];
    readonly full: readonly [PluginConfig, PluginConfig, PluginConfig];
};
export type PluginPresetType = keyof typeof PLUGIN_PRESETS;
/**
 * 获取预设插件配置
 */
export declare function getPluginPreset(preset: PluginPresetType): PluginConfig[];
/**
 * 验证插件配置
 */
export declare function validatePluginConfig(config: PluginConfig): boolean;
/**
 * 获取插件组件
 */
export declare function getPluginComponent(componentName: string): Component | undefined;
declare const _default: {
    PluginFactory: typeof PluginFactory;
    PLUGIN_COMPONENTS: Record<string, Component>;
    PLUGIN_PRESETS: {
        readonly basic: readonly [PluginConfig];
        readonly standard: readonly [PluginConfig, PluginConfig];
        readonly full: readonly [PluginConfig, PluginConfig, PluginConfig];
    };
    getPluginPreset: typeof getPluginPreset;
    validatePluginConfig: typeof validatePluginConfig;
    getPluginComponent: typeof getPluginComponent;
};
export default _default;
//# sourceMappingURL=index.d.ts.map