agora-meeting-sdk
Version:
For publishing npm package agora-metting-sdk (Web). Get more information from https://docs.agora.io
179 lines (178 loc) • 7.03 kB
TypeScript
import { ApiBase, ApiBaseInitializerParams } from './base';
import { EduUser, StreamType, DeleteStreamType, AgoraFetchParams, ClassroomStateParams, UserQueryParams, StreamQueryParams, EduStreamParams, EduStream, ChannelMessageParams, PeerMessageParams, EduUserData, EduStreamData, EduCourseState } from '../../interfaces';
import { EntryRequestParams, UserStreamResponseData, UserStreamList, EduJoinRoomParams, JoinRoomResponseData } from './interface';
export declare type CauseType = Record<string, any>;
export declare type BatchStreamAttribute = {
streamUuid: string;
userUuid: string;
};
export declare type EduStreamAttribute = {
streamUuid: string;
userUuid: string;
videoSourceType: number;
audioSourceType: number;
hasVideo: number;
hasAudio: number;
};
export declare type BatchAttributes = {
properties: Record<any, any>;
cause?: CauseType;
};
export interface ILocalUserInfo {
userUuid: string;
userToken: string;
rtmToken: string;
rtcToken: string;
}
declare type PeerChatMessageParams = {
message: string;
remoteUser: EduUser;
roomUuid: string;
};
declare type RoomChatMessageParams = {
message: string;
roomUuid: string;
};
declare type CreateBizStreamParams = {
roomUuid: string;
userUuid: string;
streamName: string;
streamUuid: string;
audioState: number;
videoState: number;
videoSourceType: number;
audioSourceType: number;
};
declare type UpdateBizStreamParams = {
roomUuid: string;
userUuid: string;
streamName: string;
streamUuid: string;
audioState: number;
videoState: number;
videoSourceType: number;
audioSourceType: number;
generateToken: boolean;
};
declare type DeleteBizStreamParams = {
roomUuid: string;
userUuid: string;
streamUuid: string;
};
declare type RemoteMediaParams = {
roomUuid: string;
userUuid: string;
streamUuid: string;
};
declare type UpsertStreamsParams = {
roomUuid: string;
streams: Array<StreamType>;
};
declare type DeleteStreamsParams = {
roomUuid: string;
streams: Array<DeleteStreamType>;
};
export declare class AgoraEduApi extends ApiBase {
roomUuid: string;
appId: string;
authorization: string;
nextId?: string;
localInfo?: ILocalUserInfo;
latestTime: number;
private lastUserListTime;
private lastStreamListTime;
constructor(params: ApiBaseInitializerParams);
updateLastTime(t: number): void;
wait(time: number): Promise<void>;
fetch(params: AgoraFetchParams): Promise<any>;
getRoomConfig(roomId: string): Promise<any>;
updateClassroomState(roomId: string, params: ClassroomStateParams): Promise<any>;
getUserList(roomUuid: string, params: UserQueryParams): Promise<any>;
getStreamList(roomUuid: string, params: StreamQueryParams): Promise<any>;
createStream(roomId: string, params: EduStreamParams): Promise<any>;
updatePublishStream(roomId: string, streamId: string, stream: EduStream): Promise<any>;
removePublishStream(roomId: string, streamId: string, stream: EduStream): Promise<any>;
sendChannelMessage(data: ChannelMessageParams): Promise<any>;
sendPeerMessage(data: PeerMessageParams): Promise<any>;
exitRoom(roomId: string): Promise<any>;
entryRoom(params: EntryRequestParams): Promise<any>;
fetchUsersStreams(nextId: string, count: number, updateTimeOffset?: number, includeOffline?: number): Promise<UserStreamResponseData>;
fetchAllOfflineUsersStream(): Promise<UserStreamList>;
fetchAllOnlineUserStream(): Promise<UserStreamList>;
syncUserList(roomUuid: string): Promise<EduUserData[]>;
syncStreamList(roomUuid: string): Promise<EduStreamData[]>;
subRoomData(params: any): Promise<any>;
joinRoom(params: EduJoinRoomParams): Promise<JoinRoomResponseData>;
upsertBizStream(args: CreateBizStreamParams): Promise<any>;
createBizStream(args: CreateBizStreamParams): Promise<any>;
updateBizStream(args: UpdateBizStreamParams): Promise<any>;
deleteBizStream(args: DeleteBizStreamParams): Promise<any>;
sendRoomChatMessage(args: RoomChatMessageParams): Promise<any>;
sendUserChatMessage(args: PeerChatMessageParams): Promise<any>;
updateCourseState(params: {
roomUuid: string;
courseState: EduCourseState;
}): Promise<any>;
updateRoomProperties({ roomUuid, key, value, cause, }: {
roomUuid: string;
key: string;
value: string;
cause?: string;
}): Promise<any>;
updateRoomBatchProperties({ roomUuid, properties, cause, }: {
roomUuid: string;
properties: object;
cause?: string;
}): Promise<any>;
allowStudentChatByRole(args: {
enable: boolean;
roomUuid: string;
roles: string[];
}): Promise<any>;
stopShareScreen(roomUuid: string, streamUuid: string, userUuid: string): Promise<void>;
allowRemoteStudentChat({ roomUuid, userUuid, muteChat, }: any): Promise<any>;
kickUser(args: {
roomUuid: string;
userUuid: string;
}): Promise<any>;
inviteUserPublishStream({ roomUuid, userUuid, streamUuid, }: RemoteMediaParams): Promise<any>;
remoteStartStudentCamera({ roomUuid, userUuid, streamUuid, }: RemoteMediaParams): Promise<any>;
remoteCloseStudentStream({ roomUuid, userUuid, streamUuid, }: RemoteMediaParams): Promise<any>;
remoteStopStudentCamera({ roomUuid, userUuid, streamUuid, }: RemoteMediaParams): Promise<any>;
remoteStartStudentMicrophone({ roomUuid, userUuid, streamUuid, }: RemoteMediaParams): Promise<any>;
remoteStopStudentMicrophone({ roomUuid, userUuid, streamUuid, }: RemoteMediaParams): Promise<any>;
batchUpsertStream({ roomUuid, streams }: UpsertStreamsParams): Promise<any>;
batchDeleteStream({ roomUuid, streams }: DeleteStreamsParams): Promise<any>;
login(userUuid: string): Promise<any>;
syncSnapShot(roomUuid: string): Promise<any>;
syncSequence(roomUuid: string, seqId: number, count?: number): Promise<any>;
/**
* 批量移除用户属性
* @param roomUuid 房间id
* @param userUuid 用户id
*/
batchRemoveUserAttributes(roomUuid: string, userUuid: string, cause?: CauseType): Promise<any>;
/**
* 批量更新房间属性
* @param roomUuid roomUuid: string
* @param properties properties: Object
*/
batchUpdateRoomAttributes(roomUuid: string, properties: BatchAttributes, cause?: CauseType): Promise<any>;
/**
* 批量移除房间属性
* @param roomUuid roomUuid: string
*/
batchRemoveRoomAttributes(roomUuid: string, cause?: CauseType): Promise<any>;
/**
* 批量移除流属性
* @param streamUuid
*/
batchRemoveStreamAttributes(streams: BatchStreamAttribute[], cause?: CauseType): Promise<any>;
/**
* 批量更新流属性
* @param streamUuid
* @param properties
*/
batchUpdateStreamAttributes(streams: EduStreamAttribute[], cause?: CauseType): Promise<any>;
}
export {};