import { Component } from 'vue'; import { MapController } from '../core/MapController'; export interface ComponentInfo { /** 组件实例 */ component: Component; /** 组件名称 */ name: string; /** 组件描述 */ description?: string; /** 是否需要地图对象 */ needsMapController?: boolean; /** 默认属性 */ defaultProps?: Record; } declare class ComponentRegistry { private components; private mapController; /** * 注册一个动态组件 * @param name 组件名称 * @param componentInfo 组件信息 */ registerComponent(name: string, componentInfo: ComponentInfo): void; /** * 获取已注册的组件 * @param name 组件名称 * @returns 组件信息或undefined */ getComponent(name: string): ComponentInfo | undefined; /** * 获取所有已注册的组件 * @returns 所有组件信息 */ getAllComponents(): ComponentInfo[]; /** * 检查组件是否已注册 * @param name 组件名称 * @returns 是否已注册 */ hasComponent(name: string): boolean; /** * 取消注册组件 * @param name 组件名称 */ unregisterComponent(name: string): void; /** * 设置地图控制器(用于传递给需要地图对象的组件) * @param mapController 地图控制器实例 */ setMapController(mapController: MapController): void; /** * 获取地图控制器 * @returns 地图控制器实例 */ getMapController(): MapController | null; /** * 为组件生成属性对象 * @param componentName 组件名称 * @param configProps 配置中的属性 * @returns 最终的属性对象 */ generateProps(componentName: string, configProps?: Record): Record; /** * 清空所有注册的组件 */ clear(): void; } export declare const componentRegistry: ComponentRegistry; export declare const registerComponent: (name: string, componentInfo: ComponentInfo) => void; export declare const getComponent: (name: string) => ComponentInfo | undefined; export declare const hasComponent: (name: string) => boolean; export declare const unregisterComponent: (name: string) => void; export declare const getAllComponents: () => ComponentInfo[]; export declare const setMapController: (mapController: MapController) => void; export declare const getMapController: () => MapController | null; export declare const generateComponentProps: (componentName: string, configProps?: Record) => Record; export {};