import type { ApiClientPlugin } from '@scalar/types/api-reference';
export type { ApiClientPlugin };
type PluginInstance = ReturnType<ApiClientPlugin>;
type HookFunctions = NonNullable<PluginInstance['hooks']>;
type OnBeforeRequestHook = NonNullable<HookFunctions['onBeforeRequest']>;
type OnResponseReceivedHook = NonNullable<HookFunctions['onResponseReceived']>;
type ExecuteHook = {
    (event: 'onBeforeRequest', ...args: Parameters<OnBeforeRequestHook>): Promise<Array<Awaited<ReturnType<OnBeforeRequestHook>>>>;
    (event: 'onResponseReceived', ...args: Parameters<OnResponseReceivedHook>): Promise<Array<Awaited<ReturnType<OnResponseReceivedHook>>>>;
};
type CreatePluginManagerParams = {
    plugins?: ApiClientPlugin[];
};
/**
 * Create the plugin manager store
 *
 * This store manages all plugins registered with the API client
 */
export declare const createPluginManager: ({ plugins }: CreatePluginManagerParams) => {
    /**
     * Get all components for a specific view
     */
    getViewComponents: (view: keyof NonNullable<ReturnType<ApiClientPlugin>["views"]>) => {
        component: unknown;
        title?: string | undefined;
        props?: Record<string, any> | undefined;
    }[];
    /**
     * Execute a hook for a specific event
     */
    executeHook: ExecuteHook;
};
export type PluginManager = ReturnType<typeof createPluginManager>;
//# sourceMappingURL=plugin-manager.d.ts.map