/**
 * Plugin Registry for Modular FaceZK Architecture
 * Manages plugin registration and discovery
 */
import type { IPlugin, IPluginRegistry, PluginInfo } from './interfaces';
export declare class PluginRegistry implements IPluginRegistry {
    private plugins;
    private pluginTypes;
    /**
     * Register a plugin
     */
    register(plugin: IPlugin): void;
    /**
     * Unregister a plugin
     */
    unregister(pluginId: string): void;
    /**
     * Get a plugin by ID
     */
    getPlugin<T extends IPlugin>(pluginId: string): T | null;
    /**
     * Get all plugins of a specific type
     */
    getPluginsByType<T extends IPlugin>(type: string): T[];
    /**
     * List all registered plugins
     */
    listPlugins(): PluginInfo[];
    /**
     * Check if a plugin is registered
     */
    hasPlugin(pluginId: string): boolean;
    /**
     * Get plugin count
     */
    getPluginCount(): number;
    /**
     * Get plugin count by type
     */
    getPluginCountByType(type: string): number;
    /**
     * Clear all plugins
     */
    clear(): void;
    /**
     * Get plugin type from constructor name
     */
    private getPluginType;
}
//# sourceMappingURL=plugin-registry.d.ts.map