/*
 * RCCallUni - v5.30.0
 * CommitId - cf4b2f0ffe2ae11c39bbfc216890745f254753c9
 * Tue Dec 02 2025 16:50:41 GMT+0800 (China Standard Time)
 * ©2020 RongCloud, Inc. All rights reserved.
 */
/**
 * 摄像头类型
 */
declare enum RCCallIWCamera {
    NONE = 0,
    /**
     * 前置摄像头
     */
    FRONT = 1,
    /**
     * 后置摄像头
     */
    BACK = 2
}
/**
 * 通话媒体类型
 */
declare enum RCCallIWMediaType {
    /**
     * 音频通话
     */
    AUDIO = 0,
    /**
     * 视频通话
     */
    AUDIO_VIDEO = 1
}
declare enum RCUNICallErrorCode {
    SUCCESS = 0,
    ENGINE_NOT_FOUND = 1,
    NETWORK_UNAVAILABLE = 2,
    ONE_CALL_EXISTED = 3,
    OPERATION_UNAVAILABLE = 4,
    INVALID_PARAM = 5,
    NETWORK_UNSTABLE = 6,
    MEDIA_REQUEST_FAILED = 7,
    MEDIA_SERVER_NOT_READY = 8,
    MEDIA_SERVER_NOT_INITIALIZED = 9,
    MEDIA_REQUEST_TIMEOUT = 10,
    MEDIA_UNKOWN_ERROR = 11,
    MEDIA_KICKED_BY_SERVER_ERROR = 12,
    MEDIA_SERVER_CLOSED_ERROR = 13,
    MEDIA_SERVER_PUBLISH_ERROR = 14,
    MEDIA_SERVER_SUBSCRIBE_ERROR = 15,
    MEDIA_JOIN_ROOM_REFUSE_ERROR = 16
}
declare enum RCCallIWCallDisconnectedReason {
    CANCEL = 0,
    REJECT = 1,
    HANGUP = 2,
    BUSY_LINE = 3,
    NO_RESPONSE = 4,
    ENGINE_UNSUPPORTED = 5,
    NETWORK_ERROR = 6,
    RESOURCE_GET_ERROR = 7,
    RESOURCE_PUBLISH_ERROR = 8,
    RESOURCE_SUBSCRIBE_ERROR = 9,
    REMOTE_CANCEL = 10,
    REMOTE_REJECT = 11,
    REMOTE_HANGUP = 12,
    REMOTE_BUSY_LINE = 13,
    REMOTE_NO_RESPONSE = 14,
    REMOTE_ENGINE_UNSUPPORTED = 15,
    REMOTE_NETWORK_ERROR = 16,
    REMOTE_RESOURCE_GET_ERROR = 17,
    REMOTE_RESOURCE_PUBLISH_ERROR = 18,
    REMOTE_RESOURCE_SUBSCRIBE_ERROR = 19,
    KICKED_BY_OTHER_CALL = 20,
    IN_OTHER_CALL = 21,
    KICKED_BY_SERVER = 22,
    REMOTE_KICKED_BY_OTHER_CALL = 23,
    REMOTE_IN_OTHER_CALL = 24,
    REMOTE_KICKED_BY_SERVER = 25,
    ACCEPT_BY_OTHER_CLIENT = 26,
    HANGUP_BY_OTHER_CLIENT = 27,
    REJECTED_BY_BLACKLIST = 28,
    SERVICE_NOT_OPENED = 29,
    DROP_TO_OBSERVER = 30,
    INIT_VIDEO_ERROR = 31,
    OTHER_DEVICE_HAD_ACCEPTED = 32,
    SERVICE_DISCONNECTED = 33
}
/**
 * 音频编译类型
 */
declare enum RCCallIWAudioCodecType {
    PCMU = 0,
    OPUS = 111
}
/**
 * 音源类型
 */
declare enum RCCallIWAudioSource {
    /**
     * 默认音频源
     */
    DEFAULT = 0,
    /**
     * 麦克风
     */
    MIC = 1,
    /**
     * 语音呼叫上行音频源
     */
    VOICE_UPLINK = 2,
    /**
     * 语音呼叫下行音频源
     */
    VOICE_DOWNLINK = 3,
    /**
     * 语音呼叫音频源
     */
    VOICE_CALL = 4,
    /**
     * 同方向的相机麦克风，若相机无内置相机或无法识别，则使用预设的麦克风
     */
    CAMCORDER = 5,
    /**
     * 进过语音识别后的麦克风音频源
     */
    VOICE_RECOGNITION = 6,
    /**
     * 针对VoIP调整后的麦克风音频源
     */
    VOICE_COMMUNICATION = 7
}
/*!
 通话视频参数
 */
declare enum RCCallIWVideoProfile {
    /**
     * 144x256, 15fps, 120~240kbps
     */
    PROFILE_144_256 = 0,
    /**
     * 240x240, 15fps, 120~280kbps
     */
    PROFILE_240_240 = 1,
    /**
     * 240x320, 15fps, 120~400kbps
     */
    PROFILE_240_320 = 2,
    /**
     * 360x480, 15fps, 150~650kbps
     */
    PROFILE_360_480 = 3,
    /**
     * 360x640, 15fps, 180~800kbps
     */
    PROFILE_360_640 = 4,
    /**
     * 480x640, 15fps, 200~900kbps
     */
    PROFILE_480_640 = 5,
    /**
     * 480x720, 15fps, 200~1000kbps
     */
    PROFILE_480_720 = 6,
    /**
     * 720x1280, 15fps, 250~2200kbps
     */
    PROFILE_720_1280 = 7,
    /**
     * 1080x1920, 15fps, 400~4000kbps
     */
    PROFILE_1080_1920 = 8,
    /**
     * 144x256, 30fps, 240~480kbps
     */
    PROFILE_144_256_HIGH = 9,
    /**
     * 240x240, 30fps, 240~360kbps
     */
    PROFILE_240_240_HIGH = 10,
    /**
     * 240x320, 30fps, 240~800kbps
     */
    PROFILE_240_320_HIGH = 11,
    /**
     * 360x480, 30fps, 300~1300kbps
     */
    PROFILE_360_480_HIGH = 12,
    /**
     * 360x640, 30fps, 360~1600kbps
     */
    PROFILE_360_640_HIGH = 13,
    /**
     * 480x640, 30fps, 400~1800kbps
     */
    PROFILE_480_640_HIGH = 14,
    /**
     * 480x720, 30fps, 400~2000kbps
     */
    PROFILE_480_720_HIGH = 15,
    /**
     * 720x1080, 30fps, 500~4400kbps
     */
    PROFILE_720_1280_HIGH = 16,
    /**
     * 1080x1920, 30fps, 800~8000kbps
     */
    PROFILE_1080_1920_HIGH = 17
}
/**
 * 摄像头方向
 */
declare enum RCCallIWCameraOrientation {
    /**
     * home 键在下
     */
    PORTRAIT = 0,
    /**
     * home 键在上
     */
    PORTRAIT_UPSIDE_DOWN = 1,
    /**
     * home 键在右
     */
    LANDSCAPE_RIGHT = 2,
    /**
     * home 键在左
     */
    LANDSCAPE_LEFT = 3
}
declare enum RCCallIWVideoBitrateMode {
    CQ = 0,
    VBR = 1,
    CBR = 2
}
declare enum RCCallIWNetworkQuality {
    UNKNOWN = 0,
    EXCELLENT = 1,
    GOOD = 2,
    POOR = 3,
    BAD = 4,
    TERRIBLE = 5
}
/**
 * 华为推送级别
 */
declare enum RCCallIWImportanceHW {
    NORMAL = 0,
    LOW = 1
}
/**
 * 通话类型
 */
declare enum RCCallIWCallType {
    /**
     * 单聊
     */
    SINGLE = 0,
    /**
     * 群聊
     */
    GROUP = 1
}
/**
 * 用户身份类型
 */
declare enum RCCallIWUserType {
    /**
     * 普通身份
     */
    NORMAL = 0,
    /**
     * 观察者身份
     */
    OBSERVER = 1
}

interface UniListenerResult<T> {
    module: string;
    type: string;
    data: T;
}
interface ListenerNullData {
}
interface ListenerOnCallDisconnectedData {
    /**
     * 通话挂断原因
     */
    reason?: RCCallIWCallDisconnectedReason;
}
interface ListenerResultError {
    reason?: RCUNICallErrorCode;
}
interface ListenerNetworkQualityData {
    /**
     * 用户信息
     */
    user?: RCCallIWUserProfile;
    /**
     * 网络质量
     */
    quality: RCCallIWNetworkQuality;
}
interface ListenerOnSwitchCameraData {
    /**
     * 摄像头类型
     */
    camera: RCCallIWCamera;
}
interface ListenerOnEnableCameraData {
    /**
     * 摄像头类型
     */
    camera: RCCallIWCamera;
    /**
     * 打开状态
     */
    enable: boolean;
}
interface ListenerOnRemoteUserInvitedData {
    /**
     * 用户 id
     */
    userId: string;
    /**
     * 媒体类型
     */
    mediaType: RCCallIWMediaType;
}
interface ListenerOnRemoteUserLeftData {
    /**
     * 用户 id
     */
    userId: string;
    /**
     * 原因
     */
    reason: RCCallIWCallDisconnectedReason;
}
interface ListenerOnRemoteUserRingingData {
    /**
     * 用户 id
     */
    userId: string;
}
interface ListenerOnRemoteUserMediaTypeChangedData {
    /**
     * 用户信息
     */
    user: RCCallIWUserProfile;
    /**
     * 媒体类型
     */
    mediaType: RCCallIWMediaType;
}
interface ListenerOnRemoteUserCameraStateChangedData {
    /**
     * 用户信息
     */
    user: RCCallIWUserProfile;
    /**
     * 摄像头是否打开
     */
    enable: boolean;
}
interface ListenerOnRemoteUserMicrophoneStateChangedData {
    /**
     * 用户信息
     */
    user: RCCallIWUserProfile;
    /**
     * 麦克风是否打开
     */
    enable: boolean;
}
interface RCCallIWAudioConfig {
    /**
     * 是否禁用麦克风
     * 仅 Android 平台生效
     */
    enableMicrophone?: boolean;
    /**
     * 音频是否支持立体声
     * 仅 Android 平台生效
     */
    enableStereo?: boolean;
    /**
     * 音源类型
     */
    audioSource?: RCCallIWAudioSource;
    /**
     * 音频比特率
     */
    audioBitrate?: number;
    /**
     * 音频采样率
     * 8000, 16000, 32000, 44100, 48000
     * 仅 Android 平台生效
     */
    audioSampleRate?: number;
    /**
     * 音频编译类型
     * 0: PCMU , 111: OPUS;
     * 仅 Android 平台生效
     */
    type?: RCCallIWAudioCodecType;
}
/**
 *  视频配置
 */
interface RCCallIWVideoConfig {
    /**
     * 通话视频参数
     */
    profile?: RCCallIWVideoProfile;
    /**
     * 默认打开的摄像头
     */
    defaultCamera?: RCCallIWCamera;
    /**
     * 摄像头方向
     */
    cameraOrientation?: RCCallIWCameraOrientation;
    /**
     * 本地摄像头采集是否镜像
     * 前置摄像头默认: YES，后置摄像头默认: NO
     */
    isPreviewMirror?: boolean;
    /**
     * 是否采用硬解码
     * 仅 Android 生效
     */
    enableHardwareDecoder?: boolean;
    /**
     *
     * 仅 Android 生效
     */
    hardwareDecoderColor?: number;
    /**
     * 设备是否采用硬编码
     * 仅 Android 生效
     */
    enableHardwareEncoder?: boolean;
    /**
     * 设置硬编码压缩等级是否为 MediaCodecInfo.CodecProfileLevel.AVCProfileHigh
     * 仅 Android 生效
     */
    enableHardwareEncoderHighProfile?: boolean;
    /**
     * 设置硬解码颜色空间 该值必须是本设备H264解码器所支持的值,可以通过 获取本机所支持的编解码器、颜色空间信息
     * 仅 Android 生效
     */
    hardWareEncoderColor?: number;
    /**
     * 设置系统硬编码器的编码帧率
     * 仅 Android 生效
     */
    hardwareEncoderFrameRate?: number;
    /**
     * 设置硬编码码率控制模式 仅 Android 系统 5.0 及以上版本设置有效
     * 仅 Android 生效
     */
    hardwareEncoderBitrateMode?: RCCallIWVideoBitrateMode;
}
interface RCCallIWPushConfig {
    /**
     * 是否屏蔽通知标题
     * YES:  不显示通知标题
     * NO: 显示通知标题
     *
     * @discussion 默认情况下融云单聊消息通知标题为用户名、群聊消息为群名称，设置后不会再显示通知标题。
     * @discussion 此属性只针目标用户为 iOS 平台时有效，Android 第三方推送平台的通知标题为必填项，所以暂不支持。
     */
    disableTitle: boolean;
    /**
     * 推送标题
     * 如果没有设置，会使用下面的默认标题显示规则
     * 默认标题显示规则：
     *   内置消息：单聊通知标题显示为发送者名称，群聊通知标题显示为群名称。
     *   自定义消息：默认不显示标题。
     */
    title?: string;
    /**
     * 推送内容
     * 优先使用 MessagePushConfig 的 pushContent，如果没有，则使用 sendMessage 或者 sendMediaMessage 的 pushContent。
     */
    content?: string;
    /**
     * 远程推送附加信息
     * 优先使用 MessagePushConfig 的 pushData，如果没有，则使用 sendMessage 或者 sendMediaMessage 的 pushData。
     */
    data?: string;
    /**
     * 是否强制显示通知详情
     * 当目标用户通过 RCPushProfile 中的 updateShowPushContentStatus 设置推送不显示消息详情时，可通过此参数，强制设置该条消息显示推送详情。
     */
    forceShowDetailContent?: boolean;
    /**
     * 推送模板 ID，设置后根据目标用户通过 SDK RCPushProfile 中的 setPushLauguageCode 设置的语言环境，匹配模板中设置的语言内容进行推送，未匹配成功时使用默认内容进行推送，模板内容在“开发者后台-自定义推送文案”中进行设置。
     * 注：RCMessagePushConfig 中的 Title 和 PushContent 优先级高于模板 ID（templateId）中对应的标题和推送内容。
     */
    templateId?: string;
    /**
     * iOS 平台相关配置
     */
    iOSConfig?: RCCallIWIOSPushConfig;
    /**
     * Android 平台相关配置
     */
    androidConfig?: RCCallIWAndroidPushConfig;
}
interface RCCallIWAndroidPushConfig {
    /**
     * Android 平台 Push 唯一标识
     * 目前支持小米、华为推送平台，默认开发者不需要进行设置，当消息产生推送时，消息的 messageUId 作为 notificationId 使用。
     */
    notificationId?: string;
    /**
     * 小米的渠道 ID
     * 该条消息针对小米使用的推送渠道，如开发者集成了小米推送，需要指定 channelId 时，可向 Android 端研发人员获取，channelId 由开发者自行创建。
     */
    channelIdMi?: string;
    /**
     * 小米 Large icon 链接
     * Large icon 可以出现在大图版和多字版消息中，显示在右边。国内版仅 MIUI12 以上版本支持，以下版本均不支持；国际版支持。图片要求：大小 120 * 120px，格式为 png 或者 jpg 格式。
     */
    imageUrlMi?: string;
    /**
     * 华为的渠道 ID
     * 该条消息针对华为使用的推送渠道，如开发者集成了华为推送，需要指定 channelId 时，可向 Android 端研发人员获取，channelId 由开发者自行创建。
     */
    channelIdHW?: string;
    /**
     * 华为通知栏消息右侧大图标 URL
     * 如果不设置，则不展示通知栏右侧图标，URL 使用的协议必须是 HTTPS 协议。
     * 图标文件须小于 512KB，图标建议规格大小：40dp x 40dp，弧角大小为 8dp，超出建议规格大小的图标会存在图片压缩或显示不全的情况。
     */
    imageUrlHW?: string;
    /**
     * 华为推送消息级别
     */
    importanceHW?: RCCallIWImportanceHW;
    /**
     * 华为推送消息分类
     * 社交通讯:即时通讯[IM],音频、视频通话[VOIP]
     * 服务提醒:订阅[SUBSCRIPTION],出行[TRAVEL],健康[HEALTH],工作事项提醒[WORK],帐号动态[ACCOUNT],订单&物流[EXPRESS],财务[FINANCE],系统提示[SYSTEM_REMINDER],邮件[MAIL]
     * 资讯营销类:内容资讯/新闻/财经动态/生活资讯/社交动态/调研/其他[MARKETING]
     * 营销活动:产品促销/功能推荐/运营活动/MARKETING
     * 更多信息请参考华为消息分类标准文档: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/message-classification-0000001149358835
     */
    categoryHW?: string;
    /**
     * OPPO 的渠道 ID
     * 该条消息针对 OPPO 使用的推送渠道，如开发者集成了 OPPO 推送，需要指定 channelId 时，可向 Android 端研发人员获取，channelId 由开发者自行创建。
     */
    channelIdOPPO?: string;
    /**
     * Vivo 推送通道类型
     * 开发者集成了 VIVO 推送，需要指定推送类型时，可进行设置。
     * 目前可选值 "0"(运营消息) 和  "1"(系统消息)
     */
    typeVivo?: string;
    /**
     * Vivo 推送消息分类
     * 系统消息分类
     * 即时消息[IM],账号与资产[ACCOUNT],日程待办[TODO],设备信息[DEVICE_REMINDER],订单与物流[ORDER],订阅提醒[SUBSCRIPTION]
     * 运营消息分类
     * 新闻[NEWS],内容推荐[CONTENT],运营活动[MARKETING],社交动态[SOCIAL]
     * 更多信息请参考 Vivo 消息分类标准文档: https://dev.vivo.com.cn/documentCenter/doc/359
     */
    categoryVivo?: string;
    /**
     * FCM 通知类型推送时所使用的分组 id
     */
    collapseKeyFCM?: string;
    /**
     * FCM 通知类型的推送所使用的通知图片 url
     */
    imageUrlFCM?: string;
    /**
     * FCM 通知的频道 ID
     * 该应用程序必须使用此频道 ID 创建一个频道，然后才能收到带有该频道 ID 的任何通知。
     * 如果您未在请求中发送此频道 ID，或者如果应用尚未创建提供的频道 ID，则 FCM 使用应用清单中指定的频道 ID。
     */
    channelIdFCM?: string;
}
interface RCCallIWIOSPushConfig {
    /**
     * iOS 平台通知栏分组 ID
     * 相同的 thread-id 推送分为一组
     * iOS10 开始支持
     */
    threadId?: string;
    /**
     * iOS 标识推送的类型
     * 如果不设置后台默认取消息类型字符串，如 RC:TxtMsg
     */
    category?: string;
    /**
     * iOS 平台通知覆盖 ID
     * apnsCollapseId 相同时，新收到的通知会覆盖老的通知，最大 64 字节
     * iOS10 开始支持
     */
    apnsCollapseId?: string;
    /**
     * iOS 富文本推送内容
     */
    richMediaUri?: string;
}
/**
 * 用户信息
 */
interface RCCallIWUserProfile {
    /**
     * 用户身份类型
     */
    userType: RCCallIWUserType;
    /**
     * 通话媒体类型
     */
    mediaType: RCCallIWMediaType;
    /**
     * 用户id
     */
    userId: string;
    /**
     * 用户的通话媒体连接 ID
     */
    mediaId: string;
    /**
     * 用户是否开启摄像头
     */
    enableCamera: boolean;
    /**
     * 用户是否开启麦克风
     */
    enableMicrophone: boolean;
}
/**
 * 当前通话的会话信息
 */
interface RCCallIWCallSession {
    /**
     * 当前通话类型：单聊还是群聊
     */
    callType: RCCallIWCallType;
    /**
     * 通话媒体类型：音频还是视频
     */
    mediaType: RCCallIWMediaType;
    /**
     * 通话 ID
     */
    callId: string;
    /**
     * RTC 会话唯一标识, 用于 Server API
     */
    sessionId: string;
    /**
     * 通话目标 id
     */
    targetId: string;
    /**
     * 通话开始时间
     */
    startTime: number;
    /**
     * 通话接通时间
     */
    connectedTime: number;
    /**
     * 通话结束时间
     */
    endTime: number;
    /**
     * 通话发起人
     */
    caller: RCCallIWUserProfile;
    /**
     * 邀请当前用户到当前通话的邀请者
     */
    inviter: RCCallIWUserProfile;
    /**
     * 当前用户
     */
    mine: RCCallIWUserProfile;
    /**
     * 当前通话所有用户
     */
    users: RCCallIWUserProfile[];
    /**
     * 当前通话携带的扩展信息
     */
    extra: string;
}

/**
* 初始化 SDK，只需要调用一次
*
* calllib初始化默认不传参数
*/
declare function init(): void;
/**
* 注销calllib
*
* 注销calllib默认不传参数
*/
declare function unInit(): void;
/**
* 添加通话呼入监听函数
*
* @param listener 回调函数
*/
declare function onCallReceived(listener: (result: UniListenerResult<RCCallIWCallSession>) => void): void;
/**
 * 移除监听-接收到通话呼入
 */
declare function removeCallReceivedListener(): void;
/**
* 添加连接监听函数
*
* @param listener 回调函数
*/
declare function onCallConnected(listener: (result: UniListenerResult<ListenerNullData>) => void): void;
/**
 * 移除监听-通话已接通
 */
declare function removeCallConnectedListener(): void;
/**
* 添加挂断监听函数
*
* @param listener 回调函数
*/
declare function onCallDisconnected(listener: (result: UniListenerResult<ListenerOnCallDisconnectedData>) => void): void;
/**
 * 移除监听-通话已结束
 * @param 挂断原因
 */
declare function removeCallDisconnectedListener(): void;
/**
* 通话中的某一个参与者，邀请好友加入通话
*
* @param listener 回调函数
*/
declare function onRemoteUserInvited(listener: (result: UniListenerResult<ListenerOnRemoteUserInvitedData>) => void): void;
/**
* 移除监听-有用户被邀请加入通话
*/
declare function removeRemoteUserInvited(): void;
/**
 * 对端用户加入了通话
 * @param listener 回调函数
 */
declare function onRemoteUserJoined(listener: (result: UniListenerResult<RCCallIWUserProfile>) => void): void;
/**
 * 移除监听-对端用户加入了通话
 */
declare function removeRemoteUserJoinedListener(): void;
/**
 * 远端用户离开 (只在群聊时用触发)
 * @param listener 回调函数
 */
declare function onRemoteUserLeft(listener: (result: UniListenerResult<ListenerOnRemoteUserLeftData>) => void): void;
/**
 * 移除监听-远端用户离开
 */
declare function removeRemoteUserLeftListener(): void;
/**
 * 电话已拨出 主叫端拨出电话后，通过回调 onCallOutgoing 通知当前 call 的详细信息
 * @param listener 回调函数
 */
declare function onCallOutgoing(listener: (result: UniListenerResult<ListenerNullData>) => void): void;
/**
 * 移除监听-开始呼叫通话的回调
 */
declare function removeCallOutgoingListener(): void;
/**
 * 被叫端正在振铃，主叫端拨出电话，被叫端收到请求，发出振铃响应时监听
 * @param listener 回调函数
 */
declare function onRemoteUserRinging(listener: (result: UniListenerResult<ListenerOnRemoteUserRingingData>) => void): void;
/**
 * 移除监听-对端用户正在振铃
 */
declare function removeRemoteUserRingingListener(): void;
/**
 * 通话出现错误的回调
 * @param listener 回调函数
 */
declare function onError(listener: (result: UniListenerResult<ListenerResultError>) => void): void;
/**
 * 移除监听-通话出现错误的回调
 */
declare function removeErrorListener(): void;
/**
 * 对端用户切换了媒体类型
 * @param listener 回调函数
 */
declare function onRemoteUserMediaTypeChanged(listener: (result: UniListenerResult<ListenerOnRemoteUserMediaTypeChangedData>) => void): void;
/**
 * 移除监听-对端用户切换了媒体类型
 */
declare function removeRemoteUserMediaTypeChangedListener(): void;
/**
 * 对端用户开关摄像头
 * @param listener 回调函数
 */
declare function onRemoteUserCameraStateChanged(listener: (result: UniListenerResult<ListenerOnRemoteUserCameraStateChangedData>) => void): void;
/**
 * 移除监听- 远端摄像头状态变更
 */
declare function removeRemoteUserCameraStateChangedListener(): void;
/**
 * 对端用户开关麦克风
 * @param listener 回调函数
 */
declare function onRemoteUserMicrophoneStateChanged(listener: (result: UniListenerResult<ListenerOnRemoteUserMicrophoneStateChangedData>) => void): void;
/**
 * 移除监听- 远端麦克风状态变更
 */
declare function removeRemoteUserMicrophoneStateChangedListener(): void;
/**
 * 网络状态监测， 通话建立成功后才会有回调
 * @param listener
 */
declare function onNetworkQuality(listener: (result: UniListenerResult<ListenerNetworkQualityData>) => void): void;
/**
 * 移除监听 - 网络状态监测
 */
declare function removeNetworkQualityListener(): void;
/**
 * 开启或关闭摄像头的回调
 */
declare function onEnableCamera(listener: (result: UniListenerResult<ListenerOnEnableCameraData>) => void): void;
/**
 * 移除监听-开启或关闭摄像头的回调
 */
declare function removeEnableCameraListener(): void;
/**
 * 切换摄像头回调
 */
declare function onSwitchCamera(listener: (result: UniListenerResult<ListenerOnSwitchCameraData>) => void): void;
/**
 * 移除监听-切换摄像头回调
 */
declare function removeSwitchCameraListener(): void;
/**
* 获取当前calllib本地存储信息
*
* 默认不传参数
*/
declare function getCurrentCallSession(): RCCallIWCallSession;
/**
* 挂断calllib
*
* 默认不传参数
*/
declare function hangup(): void;
/**
* 接收calllib
*
* 默认不传参数
*/
declare function accept(): void;
/**
* 发起单聊呼叫
*
* @param targetId 目标ID
* @param type 呼叫类型（0:音频 1:音视频）
* @param extra 默认传''
*
*/
declare function startSingleCall(targetId: string, type: number, extra: null): void;
/**
* 发起组呼呼叫
*
* @param groupId 组ID
* @param userIds 群组成员
* @param observerUserIds 观察者ID默认为空数组
* @param type 呼叫类型（0:音频 1:音视频）
* @param extra 默认传''
*
*/
declare function startGroupCall(groupId: string, userIds: Array<string>, observerUserIds: Array<string>, type: number, extra: string): void;
/**
 * 邀请用户
 * @param userIds 被邀请用户id列表
 * @param observerUserIds 被邀请观察者id列表 (只能听或看，不能推流的用户)
 */
declare function inviteUsers(userIds: string[], observerUserIds: string[]): void;
/**
* 设置预览窗口，此方法需要在视图更新渲染完成后执行
*
* @param userId 用户id
* @param ref ref ID 对应组件的标识
* @param type 视频显示模式 0 铺满 1 自适应
* @param isZOrderOnTop android only 是否置顶
*/
declare function setVideoView(userId: string, ref: string, type: number, isZOrderOnTop?: boolean): void;
/**
* 设置callib是否开启扬声器
*
* @param isOpen 默认开启
*
*/
declare function enableSpeaker(isOpen: boolean): void;
/**
* 设置callib是否开启麦克风
*
* @param isOPen 默认开启
*
*/
declare function enableMicrophone(isOpen: boolean): void;
/**
* 切换摄像头
*
* 默认不传参数
*
*/
declare function switchCamera(): void;
/**
* 获取当前摄像头方式
*
* 默认不传参数
*/
declare function currentCamera(): any;
/**
* 开启摄像头摄像头
*
* @param isOpen 是否开启
* @param RCCallIWCamera 对端还是本端
*
*/
declare function enableCamera(isOpen: boolean, camera: RCCallIWCamera): void;
/**
 * 修改通话类型
 * @param type
 */
declare function changeMediaType(type: RCCallIWMediaType): void;
/**
 * 音频配置
 * @param config
 */
declare function setAudioConfig(config: RCCallIWAudioConfig): void;
/**
 * 视频配置
 * @param config
 */
declare function setVideoConfig(config: RCCallIWVideoConfig): void;
/**
 * 通话提醒消息推送配置（可在拨打电话前设置）
 * @param config 呼叫推送配置
 * @param hangupPushConfig 挂断推送配置
 */
declare function setPushConfig(config: RCCallIWPushConfig, hangupPushConfig: RCCallIWPushConfig): void;

export { RCCallIWAudioCodecType, RCCallIWAudioSource, RCCallIWCallDisconnectedReason, RCCallIWCallType, RCCallIWCamera, RCCallIWCameraOrientation, RCCallIWImportanceHW, RCCallIWMediaType, RCCallIWNetworkQuality, RCCallIWUserType, RCCallIWVideoBitrateMode, RCCallIWVideoProfile, RCUNICallErrorCode, accept, changeMediaType, currentCamera, enableCamera, enableMicrophone, enableSpeaker, getCurrentCallSession, hangup, init, inviteUsers, onCallConnected, onCallDisconnected, onCallOutgoing, onCallReceived, onEnableCamera, onError, onNetworkQuality, onRemoteUserCameraStateChanged, onRemoteUserInvited, onRemoteUserJoined, onRemoteUserLeft, onRemoteUserMediaTypeChanged, onRemoteUserMicrophoneStateChanged, onRemoteUserRinging, onSwitchCamera, removeCallConnectedListener, removeCallDisconnectedListener, removeCallOutgoingListener, removeCallReceivedListener, removeEnableCameraListener, removeErrorListener, removeNetworkQualityListener, removeRemoteUserCameraStateChangedListener, removeRemoteUserInvited, removeRemoteUserJoinedListener, removeRemoteUserLeftListener, removeRemoteUserMediaTypeChangedListener, removeRemoteUserMicrophoneStateChangedListener, removeRemoteUserRingingListener, removeSwitchCameraListener, setAudioConfig, setPushConfig, setVideoConfig, setVideoView, startGroupCall, startSingleCall, switchCamera, unInit };
