import { OnModuleDestroy, OnModuleInit } from "@nestjs/common"; import { EventEmitter2 } from "@nestjs/event-emitter"; import { Server, Socket } from "socket.io"; import { AppModeConfig } from "../../appmode/constants/app.mode.constant"; import { AppLoggingService } from "../../logging/services/logging.service"; import { RedisClientStorageService } from "../../redis/services/redis.client.storage.service"; import { NotificationMessage, RedisMessagingService } from "../../redis/services/redis.messaging.service"; /** * WebSocket Service * * Manages WebSocket connections and message broadcasting * * Features: * - Client connection management * - User-specific messaging * - Company-wide broadcasting * - Global broadcast capabilities * - Redis pub/sub for multi-instance support * - Periodic cleanup of expired clients */ export declare class WebSocketService implements OnModuleInit, OnModuleDestroy { private readonly eventEmitter; private readonly appModeConfig; private readonly logger; private readonly redisClientStorage?; private readonly redisMessaging?; private server; private clients; private cleanupInterval?; constructor(eventEmitter: EventEmitter2, appModeConfig: AppModeConfig, logger: AppLoggingService, redisClientStorage?: RedisClientStorageService, redisMessaging?: RedisMessagingService); onModuleInit(): void; onModuleDestroy(): void; setServer(server: Server): void; addClient(userId: string, client: Socket): Promise; removeClient(userId: string, client: Socket): Promise; broadcast(event: string, data: any): Promise; private broadcastDirect; sendMessageToCompany(companyId: string, event: string, data: any): Promise; private sendMessageToCompanyDirect; sendMessageToUser(userId: string, event: string, data: any): Promise; private sendMessageToUserDirect; handleIncomingMessage(companyId: string, userId: string, message: { type: string; message: any; }): void; handleIncomingGoogleMeetPart(meetId: string, speakerName: string, timestamp: Date, message: any): void; handleRedisNotification(notification: NotificationMessage): Promise; } //# sourceMappingURL=websocket.service.d.ts.map