import { PluginInfo, FormatterPluginClass, ConverterPluginClass, FilterPluginClass } from '../index.js';
/**
 * Registry for all available plugins (formatters, converters, filters).
 */
export declare class PluginRegistry {
    private static formatters;
    private static converters;
    private static filters;
    private static pluginInfos;
    /**
     * Registers a formatter plugin class. Uses PluginInfo.id as key.
     */
    static registerFormatter(pluginCtor: new () => FormatterPluginClass): void;
    /**
     * Retrieves a registered formatter plugin constructor by ID.
     */
    static getFormatter(id: string): new () => FormatterPluginClass | undefined;
    /**
     * Lists all registered formatter plugin IDs.
     */
    static listFormatters(): string[];
    /**
     * Registers a converter plugin class.
     */
    static registerConverter(pluginCtor: new () => ConverterPluginClass): void;
    /**
     * Retrieves a registered converter plugin constructor by ID.
     */
    static getConverter(id: string): new () => ConverterPluginClass | undefined;
    /**
     * Lists all registered converter plugin IDs.
     */
    static listConverters(): string[];
    /**
     * Registers a filter plugin class.
     */
    static registerFilter(pluginCtor: new () => FilterPluginClass): void;
    /**
     * Retrieves a registered filter plugin constructor by ID.
     */
    static getFilter(id: string): new () => FilterPluginClass | undefined;
    /**
     * Lists all registered filter plugin IDs.
     */
    static listFilters(): string[];
    /**
     * Retrieves the PluginInfo for a registered plugin by ID.
     * @param id The ID of the plugin.
     * @returns The PluginInfo object if found, otherwise undefined.
     */
    static getPluginInfo(id: string): PluginInfo | undefined;
}
//# sourceMappingURL=PluginRegistry.d.ts.map