/** * PluginContext * * Provides plugin data, selection state, tags, groups, server scan data, * and export/import handlers to components via React Context. * * @since v2.10.0 */ import { type ReactNode } from 'react'; import type { ImportPreview } from '../../../core/export/export-types.js'; import type { PluginGroup, Tag, TagColor } from '../../../core/tags/index.js'; import type { CombinedPlugin, Plugin, ScannedPlugin } from '../../../core/types/index.js'; import type { ExportDialogOptions } from '../../components/dialogs/ExportDialog.js'; import type { PluginComparison, ServerStats as ServersStats } from '../../hooks/useServers.js'; export interface PluginContextValue { plugins: CombinedPlugin[]; allPlugins: Plugin[]; prodPlugins: ScannedPlugin[]; testPlugins: ScannedPlugin[]; searchQuery: string; setSearchQuery: (v: string) => void; selectedPlugins: Set; selectedPluginObjects: CombinedPlugin[]; togglePluginSelect: (pluginName: string) => void; selectAllPlugins: () => void; deselectAllPlugins: () => void; toggleFavorite: (name: string) => void; pluginsLoading: boolean; batchOperationLoading: boolean; showFavoritesOnly: boolean; refreshPluginsFromCache: () => Promise; tagsHook: { tags: Tag[]; getPluginTagIds: (name: string) => string[]; getPluginTags: (name: string) => Tag[]; toggleTag: (pluginName: string, tagId: string) => boolean; createTag: (name: string, color: TagColor, description?: string) => Tag; assignTag: (pluginName: string, tagId: string) => void; }; groupsHook: { groups: PluginGroup[]; getPluginGroupIds: (name: string) => string[]; isInGroup: (groupId: string, pluginName: string) => boolean; removeFromGroup: (groupId: string, pluginName: string) => void; addToGroup: (groupId: string, pluginName: string) => void; createGroup: (name: string, color?: TagColor, description?: string, icon?: string) => PluginGroup; }; comparisons: PluginComparison[]; stats: ServersStats; serversLoading: boolean; scanServers: () => Promise; handleExport: (options: ExportDialogOptions) => Promise; handleImport: (filePath: string, mode: import('../../../core/export/export-types.js').ImportMode) => Promise; handleImportPreview: (filePath: string) => Promise; handleExportManual: () => Promise; } export declare function PluginProvider({ children, value }: { children: ReactNode; value: PluginContextValue; }): React.ReactElement; export declare function usePluginContext(): PluginContextValue; //# sourceMappingURL=plugin-context.d.ts.map