import { Server as HttpServer } from 'http'; import { ChatAggregate } from '../../Domain/Chat/ChatAggregate'; export declare class WebSocketService { private io; private jwtService; private chatRepository; private chatArchiveRepository; private userRepository; private redisService; private connectedUsers; private chatTimeout; private maxMessagesPerUser; private messageCleanupWeeks; private userMessageCounts; constructor(httpServer: HttpServer); private initializeRedis; private setupSocketHandlers; private handleConnection; private handleJoinChat; private handleLeaveChat; private handleSendMessage; private handleCreateGroup; private handleCreateDirectChat; private handleCreateGameChat; private handleGetChatHistory; private handleDeleteChat; private handleDeleteChatArchive; private handleDeleteMessage; private handleDisconnection; private calculateUnreadMessages; private pruneMessages; private notifyOfflineUsers; private setupArchivingScheduler; createGameChat(gameId: string, gameName: string, playerIds: string[]): Promise; getConnectedUserCount(): number; isUserConnected(userId: string): boolean; cleanup(): Promise; /** * Manually trigger cleanup of old messages and chats * This can be called by admin endpoints for maintenance */ triggerManualCleanup(): Promise<{ deletedArchives: number; deletedChats: number; }>; /** * Clean up old messages from archived chats based on messageCleanupWeeks setting */ private cleanupOldMessages; /** * Check if user has exceeded message rate limit * @param userId User ID to check * @returns true if within limit, false if exceeded */ private checkMessageRateLimit; /** * Delete a specific message from chat history * This can be used for moderation purposes */ deleteMessage(chatId: string, messageId: string, moderatorUserId: string): Promise; /** * Clean up old user message count entries (called periodically) */ private cleanupMessageCounts; } //# sourceMappingURL=WebSocketService.d.ts.map