/** * Groups Hook * * React hook for plugin groups state management. * * @since v1.28.0 */ import { type GroupStatus, type PluginGroup, type PluginStatusItem, type TagColor } from '../../core/tags/index.js'; /** * Hook return type */ interface UseGroupsResult { /** All defined groups */ groups: PluginGroup[]; /** Number of groups */ groupCount: number; /** Get a group by ID */ getGroup: (id: string) => PluginGroup | null; /** Check if group exists */ hasGroup: (id: string) => boolean; /** Create a new group */ createGroup: (name: string, color?: TagColor, description?: string, icon?: string) => PluginGroup; /** Update a group */ updateGroup: (id: string, updates: Partial>) => void; /** Delete a group */ deleteGroup: (id: string) => void; /** Add plugin to group */ addToGroup: (groupId: string, pluginName: string) => void; /** Remove plugin from group */ removeFromGroup: (groupId: string, pluginName: string) => void; /** Move plugin between groups */ moveToGroup: (pluginName: string, fromGroupId: string, toGroupId: string) => void; /** Check if plugin is in group */ isInGroup: (groupId: string, pluginName: string) => boolean; /** Get groups for a plugin */ getPluginGroups: (pluginName: string) => PluginGroup[]; /** Get group IDs for a plugin */ getPluginGroupIds: (pluginName: string) => string[]; /** Get plugins in a group */ getGroupPlugins: (groupId: string) => string[]; /** Get ungrouped plugins */ getUngroupedPlugins: (allPlugins: string[]) => string[]; /** Toggle group expanded state */ toggleExpanded: (groupId: string) => boolean; /** Set group expanded state */ setExpanded: (groupId: string, expanded: boolean) => void; /** Expand all groups */ expandAll: () => void; /** Collapse all groups */ collapseAll: () => void; /** Get group status */ getGroupStatus: (groupId: string, plugins: PluginStatusItem[]) => GroupStatus; /** Reorder group in list */ reorderGroup: (groupId: string, newIndex: number) => void; /** Set plugins in group */ setGroupPlugins: (groupId: string, pluginNames: string[]) => void; /** Clear group plugins */ clearGroup: (groupId: string) => void; /** Serialize for persistence */ serialize: () => string; } /** * Hook options */ interface UseGroupsOptions { /** Initial serialized data to load */ initialData?: string; } /** * React hook for managing plugin groups */ export declare function useGroups(options?: UseGroupsOptions): UseGroupsResult; export {}; //# sourceMappingURL=useGroups.d.ts.map