UNPKG

open-collaboration-server

Version:

Open Collaboration Server implementation, part of the Open Collaboration Tools project

40 lines 1.56 kB
import { CredentialsManager } from './credentials-manager.js'; import { Peer, Room, User } from './types.js'; import { Info, Event, Disposable, JoinRoomResponse, JoinRoomPollResponse } from 'open-collaboration-protocol'; import { Logger } from './utils/logging.js'; export interface PreparedRoom { id: string; jwt: string; } export interface RoomClaim { room: string; roomClock: number; user: User; host?: boolean; } export declare function isRoomClaim(obj: unknown): obj is RoomClaim; export interface RoomJoinInfo extends Info { failure: boolean; } export interface JoinPollResult extends Disposable { update(result: JoinRoomResponse | JoinRoomPollResponse): void; onUpdate: Event<JoinRoomResponse | JoinRoomPollResponse>; result?: JoinRoomResponse | JoinRoomPollResponse; } export declare class RoomManager { protected rooms: Map<string, Room>; protected peers: Map<string, Room>; protected pollResults: Map<string, JoinPollResult>; private readonly messageRelay; protected readonly credentials: CredentialsManager; protected logger: Logger; closeRoom(id: string): Promise<void>; prepareRoom(user: User): Promise<PreparedRoom>; join(peer: Peer, roomId: string): Promise<Room>; leaveRoom(peer: Peer): Promise<void>; getRoomById(id: string): Room | undefined; getRoomByPeerId(id: string): Room | undefined; requestJoin(room: Room, user: User): Promise<string>; pollJoin(responseId: string): JoinPollResult | undefined; } //# sourceMappingURL=room-manager.d.ts.map