/** * WebSocket event broadcaster */ import type { ServerWebSocket } from "bun"; import type { ServerEvent, ClientMessage } from "../types.js"; import type { ResolvedServerConfig } from "../config/types.js"; import type { ConversationStore } from "../conversations/store.js"; type WebSocketData = { subscriptions: Set; authSubscriptions?: Set; chatRequests?: Map; userId?: string; }; export interface WebSocketClient { ws: ServerWebSocket; subscriptions: Set; } export interface Broadcaster { addClient(ws: ServerWebSocket): void; removeClient(ws: ServerWebSocket): void; handleMessage(ws: ServerWebSocket, message: ClientMessage): void; broadcast(event: ServerEvent): void; broadcastToSpec(specId: string, event: ServerEvent): void; getClientCount(): number; } export interface BroadcasterDeps { config: ResolvedServerConfig; conversationStore?: ConversationStore; getRepoPath?: (repoId: string) => string | undefined; } export declare function createBroadcaster(deps: BroadcasterDeps): Broadcaster; export {}; //# sourceMappingURL=broadcaster.d.ts.map