import type { BroadcastGroup, BroadcastStrategy } from "./types.js"; /** * Manages broadcast groups for the gateway */ export declare class BroadcastGroupManager { private groups; constructor(); /** * Create a new broadcast group */ createGroup(name: string, createdBy: string, description?: string, strategy?: BroadcastStrategy): BroadcastGroup; /** * Get a group by ID */ getGroup(groupId: string): BroadcastGroup | undefined; /** * Get a group by name */ getGroupByName(name: string): BroadcastGroup | undefined; /** * Get or create a group by name */ getOrCreateGroup(name: string, createdBy: string, description?: string, strategy?: BroadcastStrategy): BroadcastGroup; /** * Update group strategy */ setGroupStrategy(groupId: string, strategy: BroadcastStrategy): boolean; /** * Get group strategy */ getGroupStrategy(groupId: string): BroadcastStrategy | undefined; /** * Delete a group */ deleteGroup(groupId: string): boolean; /** * Add a node to a group */ addNodeToGroup(groupId: string, nodeId: string): boolean; /** * Remove a node from a group */ removeNodeFromGroup(groupId: string, nodeId: string): boolean; /** * Remove a node from all groups */ removeNodeFromAllGroups(nodeId: string): void; /** * Get all groups a node is a member of */ getNodeGroups(nodeId: string): BroadcastGroup[]; /** * Get all groups */ getAllGroups(): BroadcastGroup[]; /** * Get group member IDs */ getGroupMembers(groupId: string): string[]; /** * Generate a unique group ID */ private generateGroupId; /** * Get statistics */ getStats(): { totalGroups: number; groups: { id: string; name: string; memberCount: number; createdAt: number; }[]; }; }