import type { ClientPlugin } from '@scalar/oas-utils/helpers';
import type { ApiReferencePlugin as OriginalApiReferencePlugin, SpecificationExtension, ViewComponent } from '@scalar/types/api-reference';
export type ApiReferencePlugin = OriginalApiReferencePlugin;
type CreatePluginManagerParams = {
    plugins?: ApiReferencePlugin[];
};
/**
 * Create the plugin manager store
 *
 * This store manages all plugins registered with the API client
 */
export declare const createPluginManager: ({ plugins }: CreatePluginManagerParams) => {
    /**
     * Get all extensions with the given name from registered plugins
     */
    getSpecificationExtensions: (name: `x-${string}`) => SpecificationExtension[];
    /**
     * Get all components for a specific view from registered plugins
     */
    getViewComponents: (viewName: "content.end") => ViewComponent[];
    /**
     * Notify all plugins that the API Reference has been initialized
     */
    notifyInit: (config: Record<string, unknown>) => void;
    /**
     * Notify all plugins that the configuration has changed
     */
    notifyConfigChange: (config: Record<string, unknown>) => void;
    /**
     * Notify all plugins that the API Reference is being destroyed
     */
    notifyDestroy: () => void;
    /**
     * Get all client plugins provided by registered plugins
     */
    getApiClientPlugins: () => ClientPlugin[];
};
export type PluginManager = ReturnType<typeof createPluginManager>;
export {};
//# sourceMappingURL=plugin-manager.d.ts.map