import { ConversationType } from '@rongcloud/engine'; import { RCCallEndReason } from '../enums/RCCallEndReason'; import { RCCallMediaType } from '../enums/RCCallMediaType'; import { RCCallSessionState } from '../enums/RCCallSessionState'; import { RCCallUserState } from '../enums/RCCallUserState'; export interface IEndSummary { /** * 通话类型 */ conversationType: ConversationType; /** * 多组织 ID */ channelId: string; /** * 目标 ID */ targetId: string; /** * 通话媒体类型 */ mediaType: RCCallMediaType; /** * 通话开始时间戳 */ beginTimestamp: number; /** * 通话结束时间戳 */ endTimestamp: number; /** * 通话时间 */ duration: number; /** * 通话结束原因 */ endReason: RCCallEndReason; } export interface IUserProfile { /** * 用户名 */ name?: string; /** * 用户头像地址 */ portraitUri?: string; /** * user info 中附加信息 */ extra?: string; } /** * 通话发起者信息 */ export interface ISenderInfo extends IUserProfile { /** * 发起者 userId */ userId: string; } export interface IUserData extends IUserProfile { /** * 用户 ID */ userId: string; /** * 用户 状态 */ state: RCCallUserState; /** * 是否是通话发起者 */ isCaller: boolean; /** * 是否是远端用户 */ isRemote: boolean; /** * 用户 deviceId * 主要用于记录远端的用户的 deviceId, 用于处理多端消息 */ deviceId?: string; } export interface IUserStateChangeInfo { /** * 用户数据 */ user: IUserData; /** * 挂断原因( user.state 为 RCCallUserState.NONE 时返回) */ reason?: RCCallEndReason; } export interface IStateChangeInfo { /** * 状态 */ state: RCCallSessionState; /** * state 为 RCCallSessionState.END 时返回 */ reason?: RCCallEndReason; } export type IInvitedUsers = ISenderInfo; export interface IMemberModifyInfo { /** * 发起者信息 */ sender: ISenderInfo; /** * 被邀请用户 ID 列表 */ invitedUsers: IInvitedUsers[]; } export interface IMediaModifyInfo { /** * 发起者信息 */ sender: ISenderInfo; /** * 修改后的媒体类型 */ mediaType: RCCallMediaType; } export interface ICallStateMachineWatchers { /** * 用户状态变更 * @param info */ onUserStateChange: (info: IUserStateChangeInfo) => void; /** * 房间状态变更 * @param info */ onStateChange: (info: IStateChangeInfo) => void; /** * 收到响铃 * @param sender 发起用户信息 */ onRinging: (sender: ISenderInfo) => void; /** * 收到接听 * @param sender 发起用户信息 */ onAccept: (sender: ISenderInfo) => void; /** * 收到挂断 */ onHungup: (sender: ISenderInfo, reason: RCCallEndReason) => void; /** * 收到人员变更 * @param sender 发起用户信息 */ onMemberModify: (info: IMemberModifyInfo) => void; /** * 收到通话类型变更 * @param sender 发起用户信息 */ onMediaModify: (info: IMediaModifyInfo) => void; /** * 是否跨appkey * @param ifCross 是否为跨appkey通信 */ crossAppkey: (ifCross: boolean) => void; } /** * 发送邀请时的可选项 */ export interface IInviteOptions { /** * 消息的扩展信息 */ extra?: string; /** * 对方显示通知的标题 */ pushTitle?: string; /** * 对方显示的通知内容 */ pushContent?: string; } //# sourceMappingURL=IStateMachine.d.ts.map