fcr-core
Version:
Core APIs for building online scenes
404 lines (403 loc) • 12.8 kB
TypeScript
import { AgoraRestfulClient } from '../imports';
import { FcrCloudRecordingConfig, FcrGroupCreateConfig, FcrGroupUpdateOptions, FcrLiveStreamingLayoutType, FcrLiveStreamingConfig, FcrSharePermissionProps, FcrAllowWatermarkPayloadBody } from '../type';
import { AgoraRteRegion } from '../imports';
import { FcrChatRoomTokenResData } from './type';
import { FcrBoardRegion, FcrSharePermissionState } from '../room-control/whiteboard-control/enums';
import { FcrPrivilegeUserRole, FcrSecuritySendChatPayload } from '../room-control/privilege-control/type';
import { FcrUserKickedOutType } from '../room-control/user-control/type';
export declare class FcrCoreServiceApi {
private _client;
protected logger: import("agora-foundation/lib/logger").Logger;
constructor(_client: AgoraRestfulClient, appId: string, region: AgoraRteRegion, pathIncludeRegion?: boolean);
addGroups(params: FcrGroupCreateConfig[], opts: {
roomId: string;
startTime: number;
inProgress?: boolean;
}): Promise<void>;
updateGroups(params: FcrGroupUpdateOptions[], opts: {
roomId: string;
}): Promise<void>;
deleteGroups(groupIds: string[], opts: {
roomId: string;
}): Promise<void>;
deleteAllGroups(opts: {
roomId: string;
}): Promise<void>;
addUsers(userList: string[], groupId: string, opts: {
roomId: string;
inProgress?: boolean;
}): Promise<void>;
removeUsers(userList: string[], groupId: string, opts: {
roomId: string;
inProgress?: boolean;
}): Promise<void>;
moveUsers(userList: string[], fromGroupId: string, toGroupId: string, opts: {
roomId: string;
inProgress?: boolean;
}): Promise<void>;
/*** merge audio ****/
mergeAudioStream(userId: string, opts: {
roomId: string;
}): Promise<any>;
/*** split audio ****/
splitAudioStream(userId: string, opts: {
roomId: string;
}): Promise<any>;
/*** user control****/
kickOut(userId: string, type: FcrUserKickedOutType, opts: {
roomId: string;
}): Promise<any>;
kickOutByUserRoles(type: FcrUserKickedOutType, opts: {
roomId: string;
}, userRoles: string[]): Promise<void>;
kickOutByUserIds(userId: string[], type: FcrUserKickedOutType, opts: {
roomId: string;
}): Promise<void>;
/** room control **/
startRoom(roomId: string): Promise<any>;
endRoom(roomId: string): Promise<any>;
closeRoom(roomId: string): Promise<any>;
startCloudRecording(config: FcrCloudRecordingConfig, roomId: string): Promise<any>;
pauseCloudRecording(roomId: string): Promise<any>;
resumeCloudRecording(roomId: string): Promise<any>;
stopCloudRecording(roomId: string): Promise<any>;
setCloudRecordingReady(roomId: string): Promise<any>;
/** room session */
updateRoomSession(params: {
userId: string;
sessionId: string;
sessionKey: string;
duration: number;
payload: unknown;
targetId: string;
}): Promise<any>;
deleteRoomSession(params: {
userId: string;
sessionId: string;
sessionKey: string;
receiverIds: string[];
action: 1 | 2;
payload: unknown;
}): Promise<any>;
/** peer session */
updatePeerSession(params: {
userId: string;
sessionId: string;
sessionKey: string;
duration: number;
payload: unknown;
targetId: string;
}): Promise<any>;
deletePeerSession(params: {
userId: string;
sessionId: string;
sessionKey: string;
receiverIds: string[];
action: 1 | 2;
payload: unknown;
}): Promise<any>;
checkIn(params: {
roomId: string;
userName: string;
userRole: string;
userId: string;
platform?: number;
/** Primary Stream | 主流 */
stream?: {
videoSourceUuid?: string;
audioSourceUuid?: string;
streamName?: string;
audioState: number;
videoState: number;
videoSourceType: number;
audioSourceType: number;
audioSourceState?: number;
videoSourceState?: number;
};
streams?: {
videoSourceUuid?: string;
audioSourceUuid?: string;
streamName?: string;
audioState: number;
videoState: number;
videoSourceType: number;
audioSourceType: number;
audioSourceState?: number;
videoSourceState?: number;
}[];
userProperties?: Record<string, unknown>;
password?: string;
version: string;
}): Promise<{
data: any;
ts: any;
}>;
checkInInternal(params: {
roomId: string;
userName: string;
userRole: string;
userId: string;
platform?: number;
/** Primary Stream | 主流 */
stream?: {
videoSourceUuid?: string;
audioSourceUuid?: string;
streamName?: string;
audioState: number;
videoState: number;
videoSourceType: number;
audioSourceType: number;
audioSourceState?: number;
videoSourceState?: number;
};
streams?: {
videoSourceUuid?: string;
audioSourceUuid?: string;
streamName?: string;
audioState: number;
videoState: number;
videoSourceType: number;
audioSourceType: number;
audioSourceState?: number;
videoSourceState?: number;
}[];
userProperties?: Record<string, unknown>;
password?: string;
version: string;
ticket?: string;
}): Promise<{
data: any;
ts: any;
}>;
updateUserName(params: {
roomId: string;
userId: string;
userName: string;
}): Promise<any>;
updateUserProperties({ roomId, userUuid, properties, increments, cause, }: {
roomId: string;
userUuid: string;
properties?: unknown;
increments?: unknown;
cause?: unknown;
}): Promise<any>;
deleteUserProperties({ roomId, userUuid, properties, cause, }: {
roomId: string;
userUuid: string;
properties: string[];
cause?: unknown;
}): Promise<any>;
updateRoomProperties({ roomId, properties, increments, cause, }: {
roomId: string;
properties?: unknown;
increments?: unknown;
cause?: unknown;
}): Promise<any>;
deleteRoomProperties({ roomId, properties, cause, }: {
roomId: string;
properties: string[];
cause?: unknown;
}): Promise<any>;
getChatRoomToken(roomId: string, userId: string): Promise<FcrChatRoomTokenResData>;
getUserToken(userId: string): Promise<FcrChatRoomTokenResData>;
enableLockedRoom({ roomId, enable, targetRoles, }: {
roomId: string;
enable: boolean;
targetRoles: FcrPrivilegeUserRole[];
}): Promise<any>;
enablePassword({ roomId, enable, password, }: {
roomId: string;
enable: boolean;
password?: string;
}): Promise<any>;
enableWaitingRoom({ roomId, enable }: {
roomId: string;
enable: boolean;
}): Promise<any>;
moveToWaitingRoomByUserIds(userIds: string[], roomId: string): Promise<any>;
moveToWaitingRoomByUserRoles(toRoles: string[], roomId: string): Promise<any>;
moveToMainRoomByUserIds(userIds: string[], roomId: string): Promise<any>;
moveToMainRoomByUserRoles(toRoles: string[], roomId: string): Promise<any>;
allowSendChat({ roomId, enable, targetRoles, payload, }: {
roomId: string;
enable: boolean;
targetRoles: string[];
payload?: FcrSecuritySendChatPayload;
}): Promise<any>;
allowChangeName({ roomId, enable, targetRoles, }: {
roomId: string;
enable: boolean;
targetRoles: string[];
}): Promise<any>;
allowStartAudio({ roomId, enable, targetRoles, }: {
roomId: string;
enable: boolean;
targetRoles: string[];
}): Promise<any>;
allowWatermark(params: {
roomId: string;
enable: boolean;
targetRoles: string[];
payload: FcrAllowWatermarkPayloadBody;
}): Promise<any>;
allowChangeUserName(params: {
roomId: string;
enable: boolean;
targetRoles: string[];
}): Promise<any>;
allowStartVideo({ roomId, enable, targetRoles, }: {
roomId: string;
enable: boolean;
targetRoles: string[];
}): Promise<any>;
allowJoinWithMuteAudio({ roomId, enable, targetRoles, }: {
roomId: string;
enable: boolean;
targetRoles: string[];
}): Promise<any>;
updateUserRole({ roomId, localRole, remoteRole, userId, }: {
roomId: string;
userId: string;
remoteRole: string;
localRole?: string;
}): Promise<any>;
revokeUserRole({ roomId, remoteRole, localRole, userId, }: {
roomId: string;
userId: string;
remoteRole: string;
localRole: string;
}): Promise<any>;
stopLiveStreaming(roomId: string): Promise<any>;
updateLiveStreamingLayout(roomId: string, layoutType: FcrLiveStreamingLayoutType): Promise<any>;
startLiveStreaming(roomId: string, data: FcrLiveStreamingConfig): Promise<any>;
callIp({ roomId, callType, ipAddress, }: {
roomId: string;
callType: string;
ipAddress: string;
}): Promise<any>;
callPstn({ roomId, userName, userId, callNumber, }: {
roomId: string;
userId?: string;
userName: string;
callNumber: string;
}): Promise<any>;
hangup({ roomId, userId, callId }: {
roomId: string;
userId: string;
callId: string;
}): Promise<any>;
/**
* @description 获取白板信息
*/
getWhiteboardToken({ roomId, userId }: {
roomId: string;
userId: string;
}): Promise<{
data: {
boardAppId: string;
boardId: string;
boardRegion: FcrBoardRegion;
boardToken: string;
};
}>;
/**
* @description 开 / 关白板
*/
toggleWhiteboardActivityState(roomId: string, state: FcrSharePermissionState): Promise<any>;
/**
* @description 启用/禁用屏幕共享&白板
*/
toggleShareEnable(params: {
roomId: string;
enable: boolean;
targetRoles: string[];
payload?: FcrSharePermissionProps;
}): Promise<{
msg: string;
data: Record<string, FcrSharePermissionProps>;
code: number;
ts: number;
}>;
/**
* @description 开启 / 关闭屏幕共享
*/
toggleScreenShare(params: {
roomId: string;
userId: string;
enable: boolean;
data: {
videoState: number;
videoSourceState: number;
videoSourceType: number;
audioState: number;
audioSourceState: number;
audioSourceType: number;
};
}): Promise<{
msg: string;
code: number;
ts: number;
}>;
/**
* @description 修改白板背景
*/
setBackgroundColor(params: {
roomId: string;
backgroundColor: string;
}): Promise<{
msg: string;
code: number;
}>;
startShareScreen(params: {
roomId: string;
userId: string;
config: {
videoState: number;
videoSourceType: number;
audioState: number;
audioSourceType: number;
videoSourceUuid?: string;
audioSourceUuid?: string;
videoSourceState?: number;
audioSourceState?: number;
};
}): Promise<{
data: {
rtcToken: string;
streamUuid: string;
};
}>;
stopShareScreen(params: {
roomId: string;
userId: string;
}): Promise<any>;
openInterpreter(params: {
roomId: string;
data: {
interpreters: {
userUuid: string;
languagePair: string[];
}[];
};
}): Promise<{
code: number;
msg: string;
ts: number;
}>;
updateInterpreter(params: {
roomId: string;
data: {
interpreters: {
userUuid: string;
languagePair: string[];
}[];
};
}): Promise<{
code: number;
msg: string;
ts: number;
}>;
closeInterpreter(params: {
roomId: string;
}): Promise<any>;
}