/// <reference types="react" />
import { AsyncApiPlugin, ComponentSlotProps, EventListener, MessageBus, PluginContext, PluginSlot } from '../types';
declare class PluginManager implements MessageBus {
    private readonly plugins;
    private readonly pendingInstalls;
    private readonly cancelledInstalls;
    private readonly slotComponents;
    private readonly eventListeners;
    private context;
    constructor(initialContext: PluginContext);
    register(plugin: AsyncApiPlugin): Promise<boolean>;
    unregister(pluginName: string): void;
    private removePluginComponents;
    private createPluginAPI;
    on(eventName: string, callback: (data: unknown) => void): void;
    off(eventName: string, callback: (data: unknown) => void): void;
    emit(eventName: string, data: unknown): void;
    listeners(eventName: string): EventListener[];
    eventNames(): string[];
    getComponentsForSlot(slot: PluginSlot): React.ComponentType<ComponentSlotProps>[];
    updateContext(updates: PluginContext): void;
    getPlugin(name: string): AsyncApiPlugin | undefined;
    listPlugins(): {
        name: string;
        version: string;
    }[];
}
export { PluginManager };
//# sourceMappingURL=pluginManager.d.ts.map