fcr-core
Version:
Core APIs for building online scenes
488 lines (487 loc) • 15.8 kB
TypeScript
import { AgoraRestfulClient, AgoraRteEntryRoomResponse } from '../imports';
import { FcrCloudRecordingConfig, FcrGroupCreateConfig, FcrGroupUpdateOptions, FcrLiveStreamingLayoutType, FcrLiveStreamingConfig, FcrSharePermissionProps, FcrAllowWatermarkPayloadBody, FcrAnnotationProps, FcrLanguageConfig, FcrLanguage } from '../type';
import { AgoraRteRegion } from '../imports';
import { FcrCheckInParams, FcrChatRoomTokenResData } from './type';
import { FcrPrivilegeUserRole, FcrPrivilegeUserRoleToStringMap, FcrSecuritySendChatPayload } from '../room-control/privilege-control/type';
import { FcrUserKickedOutType } from '../room-control/user-control/type';
import { AgoraRteAudioSourceType, AgoraRteMediaPublishState, AgoraRteVideoSourceType } from '../imports';
import { FcrObjectForgeInitConfig } from '../room-control/whiteboard-control-v2/type';
import { FcrSharePermissionState } from '../room-control/sharing-control/type';
export declare class FcrCoreServiceApi {
private _client;
protected logger: import("agora-foundation/lib/logger/type").Logger;
private _pathPrefix;
constructor(_client: AgoraRestfulClient, appId: string, region: AgoraRteRegion, pathIncludeRegion?: boolean);
setRestfulClient(client: AgoraRestfulClient): void;
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;
targetRoles?: (typeof FcrPrivilegeUserRoleToStringMap)[keyof typeof FcrPrivilegeUserRoleToStringMap][];
}): Promise<any>;
deleteRoomSession(params: {
userId: string;
sessionId: string;
sessionKey: string;
receiverIds: string[];
target: 1 | 2;
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: FcrCheckInParams): Promise<{
data: AgoraRteEntryRoomResponse;
ts: number;
}>;
checkInInternal(params: FcrCheckInParams): Promise<{
data: AgoraRteEntryRoomResponse;
ts: number;
}>;
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>;
allowJoinWithPromptSound({ roomId, enable, targetRoles, }: {
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>;
allowJoinWithMutedVideo({ 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>;
claimHost({ roomId, userId, hostKey, }: {
roomId: string;
hostKey: string;
userId: 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: FcrObjectForgeInitConfig;
}>;
/**
* @description 获取批注token
*/
getAnnotationToken({ roomId, userId }: {
roomId: string;
userId: string;
}): Promise<{
data: FcrObjectForgeInitConfig;
}>;
/**
* @description 开启/关闭屏幕共享标注权限
*/
toggleAnnotationActivityState(roomId: string, state: FcrSharePermissionState): Promise<any>;
/**
* @description 开启/关闭屏幕共享标注权限
*/
syncScreenShareOwnerAnnotationOpenDone(roomId: string): 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 设置'启用/禁用屏幕共享&白板'的用户列表
*/
toggleShareEnableByUserIds(params: {
roomId: string;
enable: boolean;
toUserUuids: 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 开 / 关白板
*/
toggleWhiteboardActivityState(roomId: string, state: FcrSharePermissionState): Promise<any>;
/**
* @description 启用/禁用屏幕共享&白板
*/
toggleAnnotation(params: {
roomId: string;
enable: boolean;
targetRoles: string[];
payload: FcrAnnotationProps;
}): 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;
annotation?: {
size: {
width: number;
height: 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>;
createStreamBatch(roomUuid: string, streams: {
streamName?: string;
userUuid?: string;
streamUuid?: string;
videoState?: AgoraRteMediaPublishState;
audioState?: AgoraRteMediaPublishState;
videoSourceType?: AgoraRteVideoSourceType;
audioSourceType?: AgoraRteAudioSourceType;
videoSourceUuid?: string;
audioSourceUuid?: string;
}[]): Promise<any>;
updateStreamBatch(roomUuid: string, streams: {
streamName?: string;
userUuid?: string;
streamUuid?: string;
videoState?: AgoraRteMediaPublishState;
audioState?: AgoraRteMediaPublishState;
videoSourceType?: AgoraRteVideoSourceType;
audioSourceType?: AgoraRteAudioSourceType;
videoSourceUuid?: string;
audioSourceUuid?: string;
}[]): Promise<any>;
updateStreamBatchByCondition({ roomUuid, videoState, audioState, includeRoles, excludeRoles, condition, }: {
roomUuid: string;
videoState?: number;
audioState?: number;
includeRoles?: string[];
excludeRoles?: string[];
condition?: {
videoSourceType?: number;
audioSourceType?: number;
};
}): Promise<any>;
deleteStreamBatch(roomUuid: string, streams: {
streamUuid: string;
}[]): Promise<any>;
startCaption(params: {
roomUuid: string;
userUuid: string;
config: FcrLanguageConfig;
}): Promise<any>;
stopCaption(params: {
roomUuid: string;
userUuid: string;
}): Promise<any>;
startTranscribing(params: {
roomUuid: string;
userUuid: string;
config: FcrLanguageConfig;
}): Promise<any>;
stopTranscribing(params: {
roomUuid: string;
userUuid: string;
}): Promise<any>;
updateSourceLanguage(params: {
roomUuid: string;
userUuid: string;
language: FcrLanguage;
}): Promise<any>;
subscribeTranscribingLanguage(params: {
roomUuid: string;
userUuid: string;
language: FcrLanguage;
}): Promise<any>;
unsubscribeTranscribingLanguage(params: {
roomUuid: string;
userUuid: string;
}): Promise<any>;
allowStartCaption(params: {
roomUuid: string;
enable: boolean;
targetRoles: string[];
}): Promise<any>;
allowStartTranscribing(params: {
roomUuid: string;
enable: boolean;
targetRoles: string[];
}): Promise<any>;
allowUpdateSttSourceLanguage(params: {
roomUuid: string;
enable: boolean;
targetRoles: string[];
}): Promise<any>;
}