import WebSocket from "ws"; import { RedisHandler } from "./lib/redis/RedisHandler"; import { MessagePayload } from "./models/MessagePayload"; import { Participant } from "./models/Participant"; import { WebSocketServerStartRequest } from "./models/WebSocketServerStartRequest"; import { SFUHandler } from "./sfu/SFUHandler"; import { WebSocketHandler } from "./websocket/WebSocketHandler"; import { RtpCapabilities } from "mediasoup/node/lib/rtpParametersTypes"; import { BroadcastPortResponse } from "./interface/BroadcastDataSource"; export interface PlainTransportPayload { remoteIpAddress: string; isAudioRequired: boolean; isVideoRequired: boolean; extraData?: any; } export interface PlainTransportCreatedCallback { roomId: string; plainTransportPayload: PlainTransportPayload; broadcastPortResponse?: BroadcastPortResponse; rtpCapabilities?: RtpCapabilities; } export declare class ServerHandler { serverStartRequest: WebSocketServerStartRequest; rediHandler?: RedisHandler; webSocketHandler?: WebSocketHandler; sfuHandler?: SFUHandler; isRedisConnected: boolean; testWebSocket?: WebSocket; serverUUID: string; static instance: ServerHandler; static getInstance(): ServerHandler; constructor(); initWithServerStartRequest(serverStartRequest: WebSocketServerStartRequest): Promise; checkIfRedisConnected: () => Promise; startPlainTransportForBroadcasting(plainTransportPayload: PlainTransportPayload, forRoomid: string): Promise; resumePlainTransportForBroadcasting(forRoomid: string): Promise; getAllOnGoingMeetingRoomIds(): Promise; sendMessage(messagePayload: MessagePayload): Promise; getAllParticipatnsForRoomId(roomId: string): Promise; isServerWorking: () => Promise; closeTheRoomForcefully: (roomId: string) => Promise; }