UNPKG

fcr-core

Version:

Core APIs for building online scenes

49 lines (48 loc) 1.8 kB
import { FcrInterpreterRoomControlImpl } from '../room-control/interpreter-control/room'; import { FcrJoinBeforeHostWaitingRoomControlImpl } from '../room-control/join-before-host-waitingroom-control'; import { FcrMainRoomControlImpl } from '../room-control/mainroom-control'; import { FcrJoinBeforeHostWaitingRoomControl, FcrMainRoomControl, FcrRoomJoinOptions, FcrRoomType, FcrWaitingRoomControl } from '../room-control/type'; import { FcrWaitingRoomControlImpl } from '../room-control/waitingroom-control'; import { FcrError } from '../utilities/error'; export type FcrRoomControlType = FcrMainRoomControl | FcrWaitingRoomControl | FcrJoinBeforeHostWaitingRoomControl; export interface FcrRoomRouterObserver { /** * 房间路由离开 */ onRoomRouteSwitched?: (nextRoomRoute: FcrRoomRoute) => void; /** * 房间路由加入 */ onRoomJoined?: (roomControl: FcrRoomControlType) => void; /** * 房间路由切换错误 */ onErrorOccurred?: (error: FcrError) => void; } export interface FcrRoomRoute { roomId: string; roomType: FcrRoomType; isJoined: boolean; } export interface FcrRoomRouter { /** * 当前的roomControl */ /** * 初始化默认房间路由 */ /** * 加入会议 */ joinRoom(options: FcrRoomJoinOptions): Promise<void>; /** * 离开会议 */ leaveRoom(): Promise<void>; addObserver(observer: FcrRoomRouterObserver): void; removeObserver(observer: FcrRoomRouterObserver): void; } export type FcrRoomControlImplType = typeof FcrWaitingRoomControlImpl | typeof FcrJoinBeforeHostWaitingRoomControlImpl | typeof FcrMainRoomControlImpl | typeof FcrInterpreterRoomControlImpl; export declare const ROOM_ROUTER_CONSTANTS: { MAX_JOIN_ATTEMPTS: 10; };