fcr-core
Version:
Core APIs for building online scenes
49 lines (48 loc) • 1.8 kB
TypeScript
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;
};