import { ExceptionData, QualityGrade } from "./../../src/common/zego.entity";
import { ZegoRTMEvent, ZegoUser } from "./ZegoExpressEntity.rtm";
/**
 * 低照度增强模式。
 *
 */
export declare enum ZegoLowlightEnhancementMode {
    Off = 0,
    On = 1
}
/**
 * 背景处理分割模式
 */
export declare enum Segmentation {
    PortraitSegmentation = 0
}
/**
 * 地理围栏类型。
 */
export declare enum ZegoGeoFenceType {
    /**
     * 不使用地理围栏。
     */
    ZegoGeoFenceTypeNone = 0,
    /**
     * 包括指定的地理围栏信息。
     */
    ZegoGeoFenceTypeInclude = 1,
    /**
     * 排除指定的地理围栏信息。
     */
    ZegoGeoFenceTypeExclude = 2
}
/**
 * 混流视频渲染模式
 *
 * 详情描述：混流视频渲染模式。
 *
 */
export declare enum ZegoMixStreamRenderMode {
    /**
     * 填充模式，等比填充布局，画面可能有部分被裁剪。
     */
    AspectFill = 0,
    /**
     * 适应模式，等比缩放画面，布局内可能有留白。
     */
    AspectFit = 1
}
/**
 * 混流中单条输入流的图片信息
 *
 * Note: 支持版本：2.24.0 及以上。
 *
 * Note: 详情描述：为单条输入流的内容设置图片，用于替代视频，即当使用图片时不显示视频。图片复用的 [ZegoMixerInput] 中的 layout 布局。
 *
 * Note: 业务场景：开发者在视频连麦过程中，需要暂时关闭摄像头显示图像，或音频连麦时，显示图片等。
 *
 * Note: 使用限制：图片大小限制在 1M 以内。
 *
 */
export interface ZegoMixerImageInfo {
    /**
     * 详情描述：图片路径，不为空显示图片，否则显示视频。支持 JPG 和 PNG 格式。支持 2 种使用方式：1. URI：将图片提供给 ZEGO 技术支持进行配置，配置完成后会提供图片 URI，例如：preset-id://xxx.jpg。2. URL：仅支持 HTTP 协议。
     */
    url: string;
    /**
     * 图片显示模式。
     * 0：默认值。当 url 不为空时，覆盖视频内容，显示图片。
     * 1：根据摄像头状态，判断是否显示图片。摄像头关闭，显示图片。摄像头打开，显示视频内容（无需手动清空 url 参数）。
     * 2：根据输入流是否为空流，判断是否显示图片。输入流连续3秒为空流时，显示图片。判断空流时长默认为3秒，若需额外配置请联系 ZEGO 技术支持。输入流有视频数据时，显示视频内容。
     */
    displayMode?: number;
}
/**
 * 字体类型。
 *
 */
export declare enum ZegoFontType {
    /**
     * 思源黑体。
     */
    ZegoFontTypeSourceHanSans = 0,
    /**
     * 阿里巴巴普惠体。
     */
    ZegoFontTypeAlibabaSans = 1,
    /**
     * 旁门正道标题体。
     */
    ZegoFontTypePangMenZhengDaoTitle = 2,
    /**
     * 站酷快乐体。
     */
    ZegoFontTypeHappyZcool = 3
}
/**
 * 字体风格。
 *
 * 详情描述: 字体风格配置，可用于配置字体类型、字体大小、字体颜色、字体透明度。
 *
 * 业务场景: 手动混流场景时，设置文字水印，比如多人连麦直播。
 *
 */
export interface ZegoFontStyle {
    /**
     * 是否必填: 否。
     *
     * 默认值: 思源黑体 [ZegoFontTypeSourceHanSans]。
     */
    type?: ZegoFontType;
    /**
     * 是否必填: 否。
     *
     * 默认值: 24。
     *
     * 取值范围: [12,100] 的整数。
     */
    size?: number;
    /**
     * 是否必填: 否。
     *
     * 默认值: 16777215（白色）。
     *
     * 取值范围: [0,16777215] 的整数。
     */
    color?: number;
    /**
     * 是否必填: 否。
     *
     * 默认值: 0。
     *
     * 取值范围: [0,100]，100 为完全不透明，0 为完全透明。
     */
    transparency?: number;
    /**
     * 是否必填: 否。
     * 默认值: 否。
     * 取值范围: 是/否。
     */
    border?: boolean;
    /**
     * 是否必填: 否。
     * 默认值: 0。
     * 取值范围: [0,16777215]。
     */
    borderColor?: number;
}
/**
 * 文本信息。
 *
 * 详情描述: 文本信息配置，可用于配置文本内容、文本位置、文本风格。
 *
 * 业务场景: 手动混流场景时，设置文字水印，比如多人连麦直播。
 *
 */
export interface ZegoLabelInfo {
    /**
     * 是否必填: 是。
     *
     * 取值范围: 最大支持显示100个中文字符，300 个英文字符。
     */
    text: string;
    /**
     * 是否必填: 否。
     *
     * 默认值: 0。
     */
    left?: number;
    /**
     * 是否必填: 否。
     *
     * 默认值: 0。
     */
    top?: number;
    /**
     * 是否必填: 否。
     */
    font?: ZegoFontStyle;
}
/**
 * 详情描述：SEI 类型。
 *
 */
export declare enum ZegoSEIType {
    /**
     * 采用 SEI (nalu type = 6,payload type = 243) 类型打包，此类型是 SEI 标准未规定的类型，跟视频编码器或者视频文件中的 SEI 不存在冲突性，用户不需要根据 SEI 的内容做过滤。
     * SDK 默认发送 SEI 采用此种类型
     */
    ZegoDefined = 0,
    /**
     * 采用 SEI (nalu type = 6,payload type = 5) 类型打包，H.264 标准对于此类型有规定的格式：startcode + nalu type(6) + payload type(5) + len + pay load(uuid + context)+ trailing bits；
     * 因为视频编码器自身会产生 payload type 为 5 的 SEI，或者使用视频文件推流时，视频文件中也可能存在这样的 SEI，所以使用此类型时，用户把 uuid + context 当作一段 buffer 塞给次媒体的发送接口；
     * 此时为了区别视频编码器自身产生的 SEI， App 在发送此类型 SEI 时，可以填写业务特定的uuid（uuid长度为16字节），接收方使用SDK 解析payload type为 5的SEI时，会根据设置的过滤字符串过滤出 uuid相符的 SEI 抛给业务，如果没有设置过滤字符串，SDK会把所有收到的SEI都抛给业务方；
     * uuid过滤字符串设置接口，setSEIConfig设置的uuid过滤字符串。
     */
    UserUnregister = 1
}
/**
 * ZegoCamera及ZegoSreen的分辨率、码率等配置的约束扩展。
 *
 * 详细描述：约束对象，当ZegoCamera和ZegoSreen的参数videoQuality 为4时，对分辨率、码率等进行设置。
 *
 * 业务场景：创建预览音视频流时约束扩展。
 *
 * 注意事项：
 * 对于四种形式，优先级为 exact > ideal >= max = min。即：
 * 1. 出现exact时，忽略其他选项。若无法满足，则采集失败
 * 2. 出现ideal，没有min、max时，尽量靠近ideal
 *     ⅰ. 若能达到，则可以浮动在 ideal ± 10
 *     ⅱ. 若不能达到，则选用最靠近的值
 * 3. 不出现exact，出现ideal，有min时，尽量靠近ideal的同时，大于min。若无法满足大于min，则采集失败
 * 4. 不出现exact，出现ideal，有max时，尽量靠近ideal的同时，小于max。若无法满足小于max，则采集失败
 * 5. 不出现exact，出现ideal，有min和max时，尽量靠近ideal的同时，大于min且小于max。若无法满足，则采集失败
 * 6. 不出现exact，不出现ideal，出现min时，大于min。若无法满足大于min，则采集失败
 * 7. 不出现exact，不出现ideal，出现max时，小于max。若无法满足小于max，则采集失败
 * 8. 不出现exact，不出现ideal，出现min和max时，大于min且小于max。若无法满足，则采集失败。
 *
 */
export interface ConstraintExtend {
    /**
     * 可选参数，出现该选项时忽略其他选项。严格指定采集设备最终输出的值，如果设备不支持指定的值，采集会失败。
     */
    exact?: number;
    /**
     * 可选参数，期望采集设备最终输出的值，如果设备不支持指定的值，会尽量输出一个最靠近的值。
     */
    ideal?: number;
    /**
     * 可选参数，采集设备最终输出的值上限。
     */
    max?: number;
    /**
     * 可选参数，采集设备最终输出的值下限。
     */
    min?: number;
}
/**
 * 音浪回调设置选项。
 *
 */
export interface SoundLevelDelegateOptions {
    /**
     * 详情描述：设置在页面隐藏时是否保持开启获取获取音浪和回调音浪回调，2.18.0 及以后版本默认为关闭。
     * 业务场景：在页面隐藏时关闭获取音浪可以减少性能消耗。
     */
    enableInBackground?: boolean;
}
/**
 * 音效播放器设置选项。
 *
 */
export interface ZegoAudioEffectPlayOptions {
    /**
     * 指定加载在线音频资源地址，如果 audioEffectID 上已经加载了音效，会直接使用加载好的音效。
     * 1. 在线音频文件需要符合 [浏览器的同源策略](https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy)。
     * 2. 支持 MP3、AAC 以及浏览器支持的其他音频格式。
     */
    path?: string;
}
/**
 * 自动切换摄像头接口相关配置约束
 *
 */
export interface ZegoAutoSwitchDeviceConfig {
    /**
     * 详情描述：是否开启摄像头设备的自动切换
     *
     * 是否必填：否
     */
    camera?: boolean;
    /**
     * 详情描述：是否开启麦克风设备的自动切换
     *
     * 是否必填：否
     */
    microphone?: boolean;
}
/**
 * 创建摄像头媒体流相关参数约束
 *
 * Note: 详情描述：该类用于约束接口 createStream 的参数 source.camera。
 *
 * Note: 业务场景：创建摄像头音视频流。
 *
 * Note: 注意事项：
 * 1. 创建流成功后拿到的 stream 为 mediaStream 对象，开发者可通过赋值给 <video> 或 <audio> 对象的 srcObject 属性进行渲染。
 * 2. audioInput 和 videoInput 不指定时使用默认设备。
 * 3. 降噪、自动增益、回声消除三者默认为开启，若无特殊情况，建议客户保持这三项取值为 true。
 * 4. 当 camera 的 videoQuality 为 4 时，camera 增加 width / height / frameRate / bitrate 属性，这几个参数只支持正整数，必须要把这四个属性也传递给 SDK。
 * 5. 如果设置了 facingMode 参数，会忽略 videoInput 参数。
 *
 */
export interface ZegoCamera {
    /**
     * 是否需要音频，默认为 true
     */
    audio?: boolean;
    /**
     * 音频输入设备，不传则为浏览器选择的默认设备
     */
    audioInput?: string;
    /**
     * 音频码率，默认为 48kbps
     */
    audioBitrate?: number;
    /**
     * 是否需要视频
     */
    video?: boolean;
    /**
     * 视频输入设备，不传则为浏览器选择的默认设备
     */
    videoInput?: string;
    /**
     * 视频质量等级，默认质量等级为 2：
     * 1：分辨率 320 * 240，帧率 15，码率 300 kbps
     * 2：分辨率 640 * 480，帧率:15，码率 800 kbps
     * 3：分辨率 1280 * 720，帧率:20，码率 1500 kbps
     * 4：分辨率 width * height，帧率 frameRate，码率:  bitrate（kbps）
     * 注：当 videoQuality 为 4 时，width、height、frameRate 和 bitrate 四个参数必填。
     */
    videoQuality?: 1 | 2 | 3 | 4;
    /**
     * 摄像头朝向，“user” 表示前置摄像头，“environment” 表示后置摄像头
     */
    facingMode?: "user" | "environment";
    /**
     * 声道数，1 为单声道，2 为双声道，默认为单声道
     */
    channelCount?: 1 | 2;
    /**
     * 是否开启降噪，默认
     */
    ANS?: boolean;
    /**
     * 是否开启自动增益，默认开启
     */
    AGC?: boolean;
    /**
     * 是否开启回声消除，默认开启
     */
    AEC?: boolean;
    /**
     * 分辨率宽，videoQuality 为 4 时生效
     */
    width?: number | ConstraintExtend;
    /**
     * 分辨率高，videoQuality 为 4 时生效
     */
    height?: number | ConstraintExtend;
    /**
     * 码率，videoQuality 为 4 时生效
     */
    bitrate?: number;
    /**
     * 帧率，videoQuality 为 4 时生效
     */
    frameRate?: number | ConstraintExtend;
    /**
     * 开始码率，默认为 “default”，环境要求：谷歌内核浏览器及 2.7.0 以上版本的 SDK 。
     * 值为 “default” 表示使用 webrtc 默认开始码率 300kbps  然后慢慢上升；值为 “target” 表示快速上升到已设置的目标码率。
     */
    startBitrate?: "default" | "target";
    /**
     * 视频优化模式，默认为 “default“ ；
     * 值为 “motion” 表示流畅模式，在大多数情况下，SDK 不会降低帧率，但是可能会降低发送分辨率。
     * 值为 ”detail“ 表示清晰模式，在大多数情况，SDK 不会降低发送分辨率，但是可能会降低帧率。
     */
    videoOptimizationMode?: "default" | "motion" | "detail";
    /**
     * 详情描述：推流码率最小值。当网络较差的时候可接受的视频质量下降码率的最小值。
     *
     * 业务场景：期望视频持续高质量则把 minBitrate设置为接近目标码率的值。视频质量要求不高的推流可以把 minBitrate 设置得较低。
     *
     * 默认值：默认最低码率是目标码率的 60%。
     */
    minBitrate?: number;
    /**
     * 详情描述：视频关键帧间隔时长，单位秒。
     *
     * 默认值：2 秒。
     *
     * 取值范围: [2, 6]。
     */
    keyFrameInterval?: number;
}
export interface ZegoCapabilityDetection {
    /**
     * 是否支持webRTC协议,true代表可以使用webRTC协议传输流
     */
    webRTC?: boolean;
    /**
     * 是否支持自定义流(不通过摄像头或者屏幕捕捉采集到的其他流, 比如video标签播放的mp4等)
     */
    customCapture?: boolean;
    /**
     * 摄像头是否有权限调用
     */
    camera?: boolean;
    /**
     * 麦克风是否有权限调用
     */
    microphone?: boolean;
    /**
     * 是否支持屏幕共享功能
     */
    screenSharing?: boolean;
    /**
     * 浏览器支持的视频编码格式; 需要注意的是有些浏览器检测会支持某一种编码格式,但实际系统阉割了该功能, 所以如果某个编码格式返回false,则一定不支持, true 不一定100%支持
     */
    videoCodec?: ZegoVideoCodec;
    /**
     * 检测失败相关错误信息，设备相关的错误说明可以参考 [MediaDevices.getUserMedia](https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia#%E5%BC%82%E5%B8%B8) 接口文档的异常说明。
     */
    errInfo: ZegoCapabilityErrorInfo;
    /**
     * 根据传入的类型判断是否支持
     */
    result?: boolean;
}
export interface ZegoCapabilityError {
    /**
     * 错误名称
     */
    name?: string;
    /**
     * 错误描述信息
     */
    message?: string;
}
/**
 * 检测结果相关错误信息。
 *
 */
export interface ZegoCapabilityErrorInfo {
    webRTC?: ZegoCapabilityError;
    customCapture?: ZegoCapabilityError;
    /**
     * 具体错误说明可以参考 [MediaDevices.getUserMedia](https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia#%E5%BC%82%E5%B8%B8) 接口文档的异常说明。
     */
    camera?: ZegoCapabilityError;
    /**
     * 具体错误说明可以参考 [MediaDevices.getUserMedia](https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia#%E5%BC%82%E5%B8%B8) 接口文档的异常说明。
     */
    microphone?: ZegoCapabilityError;
    extendedDate?: string;
}
export interface ZegoCheckSingleType {
    /**
     * 检测浏览器是否支持 webRTC
     */
    webRTC: "webRTC";
    /**
     * 检测浏览器是否支持 自定义流
     */
    customCapture: "customCapture";
    /**
     * 检测摄像头是否有权限调用
     */
    camera: "camera";
    /**
     * 检测麦克风是否有权限调用
     */
    microphone: "microphone";
    /**
     * 检测是否支持屏幕共享
     */
    screenSharing: "screenSharing";
    /**
     * 检测是否支持H264编码格式
     */
    H264: "H264";
    /**
     * 检测是否支持VP8编码格式
     */
    VP8: "VP8";
}
/**
 * 创建第三方媒体流相关参数约束
 *
 * Note: 详情描述：该类用于约束接口 createStream 的参数 source.custom。
 *
 * Note: 业务场景：分享网络或本地的视频资源。
 *
 */
export interface ZegoCustom {
    /**
     * 第三方源,<video>或<audio>媒体对象或MediaStream
     */
    source: HTMLMediaElement | MediaStream;
    /**
     * 视频码率
     */
    bitrate?: number;
    /**
     * 音频码率，默认为 48kbps
     */
    audioBitrate?: number;
    /**
     * 声道数，1为单声道，2为双声道，默认单声道
     */
    channelCount?: number;
    /**
     * 开始码率，默认为 “default”，环境要求：谷歌内核浏览器及 2.7.0 以上版本的 SDK 。
     * 值为 “default” 表示使用 webrtc 默认开始码率 300kbps  然后慢慢上升；值为 “target” 表示快速上升到已设置的目标码率。
     */
    startBitrate?: "default" | "target";
    /**
     * 视频优化模式，默认为 “default“ ；
     * 值为 “motion” 表示流畅模式，在大多数情况下，SDK 不会降低帧率，但是可能会降低发送分辨率。
     * 值为 ”detail“ 表示清晰模式，在大多数情况，SDK 不会降低发送分辨率，但是可能会降低帧率
     */
    videoOptimizationMode?: "default" | "motion" | "detail";
    /**
     * 详情描述：推流码率最小值。当网络较差的时候可接受的视频质量下降码率的最小值。
     *
     * 业务场景：期望视频持续高质量则把 minBitrate设置为接近目标码率的值。视频质量要求不高的推流可以把 minBitrate 设置得较低。
     *
     * 默认值：默认最低码率是目标码率的 60%。
     */
    minBitrate?: number;
    /**
     * 详情描述：视频关键帧间隔时长，单位秒。
     *
     * 默认值：2 秒。
     *
     * 取值范围: [2, 6]。
     */
    keyFrameInterval?: number;
}
/**
 * 实时有序数据功能相关事件集合。
 *
 * Note: 详情描述：描述事件名及其对应的回调参数。
 *
 * Note: 业务场景：用于约束注册事件接口 on 和注销事件接口 off 的参数。
 *
 */
export interface ZegoDataChannelEvent {
    /**
     * 实时信令接收更新事件。
     */
    receiveRealTimeSequentialData: PlayerRecvRealtimeSequentialDataCallBack;
}
export interface ZegoDeviceInfo {
    deviceName: string;
    deviceID: string;
}
export interface ZegoDeviceInfos {
    microphones: ZegoDeviceInfo[];
    speakers: ZegoDeviceInfo[];
    cameras: ZegoDeviceInfo[];
}
/**
 * 基础美颜参数选项。
 *
 */
export interface ZegoEffectsBeautyParam {
    /**
     * 美白强度，取值范围 [0,100]，默认值 50。
     */
    whitenIntensity?: number;
    /**
     * 红润强度，取值范围 [0,100]，默认值 50。
     */
    rosyIntensity?: number;
    /**
     * 磨皮强度，取值范围 [0,100]，默认值 50。
     */
    smoothIntensity?: number;
    /**
     * 锐化强度，取值范围 [0,100]，默认值 50。
     */
    sharpenIntensity?: number;
}
export interface ZegoElectronScreenSource {
    /**
     * id
     */
    id: string;
    /**
     * 屏幕名称
     */
    name: string;
    /**
     * 屏幕快照
     */
    thumbnail: any;
}
/**
 * createStream 接口的配置参数约束
 *
 * Note: 详情描述：该类用于约束接口 createStream 的配置参数。
 *
 * Note: 业务场景：创建预览音视频流。
 *
 * Note: 注意事项：camera、screen 和 custom 三个参数在每次调用接口 createStream 时只能选填其中一个。
 *
 */
export interface ZegoLocalStreamConfig {
    /**
     * 摄像头麦克风采集流相关配置
     */
    camera?: ZegoCamera;
    /**
     * 屏幕捕捉采集流相关配置
     */
    screen?: boolean | ZegoScreen;
    /**
     * 第三方流采集相关配置
     */
    custom?: ZegoCustom;
}
export interface ZegoMixStreamAdvance {
    /**
     * 混流背景颜色; backgroundColor 为十六进制的 RGB，输入格式必须为 0xRRGGBB00。例如纯白色则传 0xffffff00。
     */
    backgroundColor?: number;
    /**
     * 混流背景图片; backgroundImage 需要提前在即构后台预设 imageId，输入格式为 preset-id://xxx
     */
    backgroundImage?: string;
    /**
     * 混流视频编码，'vp8'(string) 或 ' h264' (string),默认 'h264'(string)
     */
    videoCodec?: "VP8" | "H264" | "vp8" | "h264";
    /**
     * 用户自定义数据，长度不超过 1000 字节，设置后拉流方可通过监听 [onPlayerRecvSEI] 的回调获取 SEI 内容。注意必须使用 [ByteBuffer.allocateDirect] 函数创建，否则数据不能传给SDK
     */
    userData?: Uint8Array;
}
/**
 * 混流水印
 *
 * 详情描述: 配置一个水印的图片 URL 以及该水印在画面中的大小方位。
 *
 */
export interface ZegoWatermark {
    /**
     * 详情描述: 水印图片路径。支持本地文件绝对路径 (file://xxx)、Asset 资源路径 (asset://xxx) 和 Android URI 路径 (String path = "uri://" + uri.toString();)。 格式支持 png、jpg。
     */
    imageURL: string;
    /**
     * 详情描述: 水印图片的大小方位
     */
    layout: ZegoMixStreamLayout;
}
export interface ZegoMixStreamConfig {
    /**
     * 混流任务 id（客户自定义,务必保证唯一），必填，最大为256个字符,仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '', '^', '&', '*', '(', ')', '_', '+', '=', '-', ', ';', '’', ',', '
     */
    taskID: string;
    /**
     * 混流输入流列表
     */
    inputList: ZegoMixStreamInput[];
    /**
     * 混流输出流列表
     */
    outputList: string[] | ZegoMixStreamOutput[];
    /**
     * 混流输出配置
     */
    outputConfig: ZegoMixStreamOutputConfig;
    /**
     * 混流任务的水印
     */
    watermark?: ZegoWatermark;
    /**
     * 是否开启混流的声浪回调通知，开启后拉混流时可通过 [onMixerSoundLevelUpdate] 回调收到每条单流的声浪信息
     */
    enableSoundLevel?: boolean;
    /**
     * 混流任务的白板输入信息
     */
    /**
     * 流对齐模式，0 为关闭，1为开启。需先调用 [setStreamAlignmentProperty] 函数开启指定通道的推流网络时间校准的流对齐。
     */
    streamAlignmentMode?: number;
    /**
     * 混流白板输入对象
     */
    whiteboard?: ZegoMixerWhiteboard;
}
export interface ZegoMixStreamInput {
    /**
     * 输入流 ID
     */
    streamID: string;
    /**
     * 混流内容类型;contentType 取值为'VIDEO'(音视频)、'AUDIO'(纯音频),默认为'VIDEO'
     */
    contentType?: "VIDEO" | "AUDIO" | "VIDEO_ONLY";
    /**
     * 流在输出画布上的布局，当 contentType 为 “AUDIO” 时 layout 参数可不传。
     */
    layout?: ZegoMixStreamLayout;
    /**
     * 渲染模式，0 为填充模式，1 为适应模式。
     */
    renderMode?: ZegoMixStreamRenderMode;
    /**
     * 详情描述：用户图片信息。
     */
    imageInfo?: ZegoMixerImageInfo;
    /**
     * 详情描述：文字水印
     */
    label?: ZegoLabelInfo;
    /**
     * 详情描述: 视频画面圆角半径，单位 px。
     *
     * 是否必填: 否。
     *
     * 取值范围: 不超过 [layout] 参数设置的视频画面的宽高。
     *
     * 默认值: 0。
     */
    cornerRadius?: number;
    /**
     * 混流音浪 ID，用于在 [mixerSoundLevelUpdate] 中找对应输入流的音浪值。
     */
    soundLevelID?: number;
    /**
     *  输入流音量, 有效范围 [0, 200], 默认是 100。
     */
    volume?: number;
    /**
     * 当前输入流是否开启焦点语音，开启了会突出此路流的声音。
     */
    isAudioFocus?: boolean;
}
export interface ZegoMixStreamLayout {
    /**
     * 目标位置，上
     */
    top: number;
    /**
     * 目标位置，左
     */
    left: number;
    /**
     * 目标位置，下
     */
    bottom: number;
    /**
     * 目标位置，右
     */
    right: number;
}
/**
 * https://doc-zh.zego.im/article/api?doc=express-video-sdk_API~java_android~enum~ZegoAudioCodecID
 */
export declare enum ZegoAudioCodecID {
    ZegoAudioCodecIDNormal = 1,
    ZegoAudioCodecIDNormal2 = 2,
    ZegoAudioCodecIDLow3 = 6
}
export declare enum ZegoAudioMixMode {
    /**
     * 默认模式，无特殊行为
     */
    ZegoAudioMixModeRaw = 0,
    /**
     * 音频聚焦模式，可在多路音频流中突出某路流的声音
     */
    ZegoAudioMixModeFocused = 1
}
/**
 * 详情描述: 配置混流任务的音频码率、声道数、音频编码
 */
export interface ZegoMixerAudioConfig {
    /**
     * 音频码率，单位为 kbps，默认为 48 kbps，开始混流任务后不能修改
     */
    bitrate?: number;
    /**
     * 音频声道，默认为 Mono 单声道
     */
    channel?: 1 | 2;
    codecID?: ZegoAudioCodecID;
}
/**
 * 详情描述: 调用 [StartAutoMixerTask] 函数向 ZEGO RTC 服务器发起自动混流任务时，需要通过该参数配置自动混流任务，包括任务 ID、房间 ID、音频配置、输出流列表、是否开启声浪回调通知。
 * 业务场景: 当向 ZEGO RTC 服务器发起自动混流任务时，需要这个配置。
 * 注意事项: 作为调用 [StartAutoMixerTask] 函数时传入的参数。
 */
export interface ZegoAutoMixerTask {
    /**
     * 混流任务 id（客户自定义,务必保证唯一），必填，最大为256个字符,仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '', '^', '&', '*', '(', ')', '_', '+', '=', '-', ', ';', '’', ',', '
     */
    taskID: string;
    /**
     * 自动混流任务的房间 ID。必填，仅支持数字，英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', '\'。如果需要与 Web SDK 互通，请不要使用 '%'。
     */
    roomID: string;
    /**
     * 自动混流任务的音频配置，可配置音频码率、音频声道，编码 ID、多路音频流混音模式。
     * 如果对自动混流任务的音频有特殊需求，比如需要调整音频码率，可根据需要调整该参数，否则不用配置。
     * 默认音频码率为 "48 kbps", 默认音频声道为 "ZEGO_AUDIO_CHANNEL_MONO", 默认编码 ID 为 "ZEGO_AUDIO_CODEC_ID_DEFAULT"，默认多路音频流混音模式为 "ZEGO_AUDIO_MIX_MODE_RAW"。
     */
    audioConfig?: ZegoMixerAudioConfig;
    /**
     * 自动混流任务的输出流列表，列表中为 URL 或者流 ID，若为 URL 格式 目前只支持 RTMP URL 格式：rtmp://xxxxxxxx。
     * 当发起自动混流任务时，需要配置该参数指明混流输出目标。Mix stream output target
     * 必填
     */
    outputList: ZegoMixStreamOutput[];
    /**
     * 是否开启自动混流的声浪回调通知，开启后拉混流时可通过 [onAutoMixerSoundLevelUpdate] 回调收到每条单流的声浪信息。
     * 当发起自动混流任务时，如果需要回调流的声浪信息，需要配置该参数。
     * 可选。
     */
    enableSoundLevel?: boolean;
    /**
     * 流对齐模式，0 为关闭，1为开启。需先调用 [setStreamAlignmentProperty] 函数开启指定通道的推流网络时间校准的流对齐。
     */
    streamAlignmentMode?: number;
    /**
     * 设置混流服务器拉流缓存自适应调整的区间范围下限。在实时合唱 KTV 场景下，推流端网络轻微波动可能会导致混流的卡顿，此时观众拉混流的时候，会有比较高概率出现卡顿的问题。通过调节混流服务器拉流缓存自适应调整的区间范围下限，可优化观众端拉混流出现的卡顿问题，但会增大延迟。默认不设置，即服务端使用自身配置值。只会对新的输入流设置生效，对于已经开始混流的输入流不生效。
     *  [0,10000]，超过最大值混流会失败。
     */
    minPlayStreamBufferLength?: number;
}
export declare enum ZegoEncodeProfile {
    ZegoEncodeProfileDefault = 0,
    ZegoEncodeProfileBaseline = 1,
    ZegoEncodeProfileMain = 2,
    ZegoEncodeProfileHigh = 3
}
export interface ZegoMixerOutputVideoConfig {
    videoCodecID?: string;
    bitrate?: number;
    encodeProfile?: ZegoEncodeProfile;
    encodeLatency?: number;
    enableLowBitrateHD?: boolean;
}
export interface ZegoMixStreamOutput {
    /**
     * 混流输出流 ID 或 URL
     */
    target: string;
    /**
     * 混流输出视频设置。
     */
    videoConfig?: ZegoMixerOutputVideoConfig;
}
export interface ZegoMixStreamOutputConfig {
    /**
     * 混流输出视频码率，kbps
     * 数值 （必须，且大于 0）
     */
    outputBitrate: number;
    /**
     * 混流输出视频帧率
     */
    outputFPS: number;
    /**
     * 混流输出视频分辨率宽度
     */
    outputWidth: number;
    /**
     * 混流输出视频分辨率高度
     */
    outputHeight: number;
    /**
     * 混流输出音频编码
     * outputAudioCodecID 可选0：HE-AAC,1： LC-AAC,2：MP3,3: OPULS 默认为0
     * 注意：如果使用 CDN 录制，音频编码请选择 LC-AAC。这是因为部分浏览器（如 Google Chrome 和 Microsoft Edge）不兼容 HE-AAC 音频编码格式，从而导致录制文件无法播放
     */
    outputAudioCodecID?: 0 | 1 | 2 | 3;
    /**
     * 混流输出音频码率，kbps
     */
    outputAudioBitrate?: number;
    /**
     * 混流输出声道数
     */
    outputAudioChannels?: 1 | 2;
    /**
     * 多路音频流混音模式。若 [ZegoAudioMixMode] 选择为 [Focused]，SDK 将会选择 4 路已设置 [isAudioFocus] 的输入流作为焦点语音突出，若未选择或选择少于 4 路，则会自动补齐 4 路。
     */
    audioMixMode?: ZegoAudioMixMode;
}
/**
 * 混流输入白板对象
 * 配置混流输入的白板 ID、宽高比、布局
 */
export interface ZegoMixerWhiteboard {
    /**
     * 白板 ID
     */
    whiteboardID: string;
    /**
     * 白板原始宽高比（宽），默认宽高比为 16:9
     */
    horizontalRatio?: number;
    /**
     * 白板原始宽高比（高），默认宽高比为 16:9
     */
    verticalRatio?: number;
    /**
     * 白板是否会加载动态 PPT 文件，默认值为 false
     */
    isPPTAnimation?: boolean;
    /**
     * 白板的布局
     */
    layout: ZegoMixStreamLayout;
    /**
     * 白板视图层级
     */
    zOrder?: number;
    /**
     * 白板的背景颜色。默认是 0xF1F3F400 （灰色）。 颜色值对应 RGBA 为 0xRRGGBBAA，目前不支持设置背景色的透明度，0xRRGGBBAA 中的 AA 为 00 即可。例如：选取 RGB 为 #87CEFA 作为背景色，此参数传 0x87CEFA00。
     */
    backgroundColor?: number;
}
export interface ZegoPlayAudioStats {
    /**
     * 音频码率
     */
    audioBitrate: number;
    /**
     * 音频编码格式"opus"
     */
    audioCodec: string;
    /**
     * 网络抖动
     */
    audioJitter: number;
    /**
     * 音量
     */
    audioLevel: number;
    /**
     * 丢包数
     */
    audioPacketsLost: number;
    /**
     * 丢包率
     */
    audioPacketsLostRate: number;
    /**
     * 拉流音频质量，-1 表示未知，0 表示 极好,1 表示好，2 表示中等，3 表示 差，4 表示极差
     */
    audioQuality: number;
    /**
     * 采样率
     */
    audioSamplingRate: number;
    /**
     * 音轨是否被关闭
     */
    muteState: "0" | "1";
    /**
     * 音频帧率
     */
    audioFPS: number;
    /**
     * 音频发送能量
     */
    audioSendLevel: number;
    /**
     * 音频编码格式
     */
    googCodecName: string;
    /**
     * 详情描述: 累计音频解码时长，单位为毫秒 （2.19.0 及以上版本支持）。
     */
    audioCumulativeDecodeTime: number;
    /**
     * 详情描述: 累计视频卡顿时长，单位为毫秒 （2.19.0 及以上版本支持）。
     */
    audioCumulativeBreakTime: number;
    /**
     * 详情描述: 累计视频卡顿率，单位为 1，取值范围 [0,1]（2.19.0 及以上版本支持）。
     */
    audioCumulativeBreakRate: number;
}
/**
 * 拉流质量回调详细信息
 *
 */
export interface ZegoPlayStats {
    /**
     * 视频相关描述
     */
    video: ZegoPlayVideoStats;
    /**
     * 音频相关描述
     */
    audio: ZegoPlayAudioStats;
    /**
     * 端到端延迟，单位为 ms。
     */
    peerToPeerDelay: number | undefined;
    /**
     * 端到端丢包率，单位 1。（2.13.0 及以前版本单位为 %）
     */
    peerToPeerPacketLostRate: number | undefined;
}
export interface ZegoPlayVideoStats {
    /**
     * 接收视频高
     */
    frameHeight: number;
    /**
     * 接收视频宽
     */
    frameWidth: number;
    /**
     * 视频编码格式
     */
    googCodecName: string;
    /**
     * 视轨是否被关闭
     */
    muteState: "0" | "1";
    /**
     * 视频码率
     */
    videoBitrate: number;
    /**
     * 视频转码帧率
     */
    videoFPS: number;
    /**
     * 视频渲染帧率
     */
    videoRenderFPS: number;
    /**
     * 视频丢包数
     */
    videoPacketsLost: number;
    /**
     * 视频丢包率
     */
    videoPacketsLostRate: number;
    /**
     * 视频解码帧率
     */
    videoTransferFPS: number;
    /**
     * 拉流视频质量，-1 表示未知，0 表示 极好,1 表示好，2 表示中等，3 表示 差，4 表示极差
     */
    videoQuality: number;
    /**
     * 视频解码总大小
     */
    videoFramesDecoded: number;
    /**
     * 当前实际接收的视频帧丢失数
     */
    videoFramesDropped: number;
    /**
     * 累计视频解码时长，单位为毫秒 （2.19.0 及以上版本支持）。
     */
    videoCumulativeDecodeTime: number;
    /**
     * 详情描述: 累计视频卡顿时长，单位为毫秒 （2.19.0 及以上版本支持）
     */
    videoCumulativeBreakTime: number;
    /**
     * 详情描述: 累计视频卡顿率，单位为百分比，0.0 ~ 1.0 （2.9.0 及以上版本支持）
     */
    videoCumulativeBreakRate: number;
}
/**
 * 拉流状态
 *
 */
export interface ZegoPlayerState {
    /**
     * 流id
     */
    streamID: string;
    /**
     * NO_PLAY：未拉流状态，PLAY_REQUESTING：正在请求拉流状态，PLAYING：正在拉流状态
     */
    state: "NO_PLAY" | "PLAY_REQUESTING" | "PLAYING";
    /**
     * 错误码
     */
    errorCode: number;
    /**
     * 扩展信息
     */
    extendedData: string;
}
export interface ZegoPublishAudioStats {
    /**
     * 音频码率
     */
    audioBitrate: number;
    /**
     * 音频编码格式
     */
    audioCodec: string;
    /**
     * 音频丢包数
     */
    audioPacketsLost: number;
    /**
     * 音频丢包率
     */
    audioPacketsLostRate: number;
    /**
     * 音频编码格式
     */
    googCodecName: string;
    /**
     * 音轨是否被关闭
     */
    muteState: "0" | "1";
    /**
     * 音频帧率
     */
    audioFPS: number;
    /**
     * 推流音频质量，-1 表示未知，0 表示 极好,1 表示好，2 表示中等，3 表示 差，4 表示极差
     */
    audioQuality: number;
}
export interface ZegoPublishStats {
    /**
     * 推流视频数据
     */
    video: ZegoPublishVideoStats;
    /**
     * 推流音频数据
     */
    audio: ZegoPublishAudioStats;
}
export interface ZegoPublishStreamAudioConfig {
    /**
     * 是否开启降噪
     */
    ANS?: boolean;
    /**
     * 是否开启自动增益
     */
    AGC?: boolean;
    /**
     * 是否开启回声消除
     */
    AEC?: boolean;
}
export interface ZegoPublishStreamConfig {
    /**
     * 分辨率宽
     */
    width?: number | ConstraintExtend;
    /**
     * 分辨率高
     */
    height?: number | ConstraintExtend;
    /**
     * 帧率
     */
    frameRate?: number | ConstraintExtend;
    /**
     * 最大码率
     */
    maxBitrate?: number;
    /**
     * 视频质量等级，默认质量等级为 2
     */
    videoQuality?: number;
}
export interface ZegoPublishVideoStats {
    /**
     * 采集视频高
     */
    frameHeight: number;
    /**
     * 采集视频宽
     */
    frameWidth: number;
    /**
     * 视频编码格式
     */
    googCodecName: string;
    /**
     * 视轨是否被关闭
     */
    muteState: "0" | "1";
    /**
     * 视频码率
     */
    videoBitrate: number;
    /**
     * 视频转码帧率
     */
    videoFPS: number;
    /**
     * 视频丢包数
     */
    videoPacketsLost: number;
    /**
     * 视频丢包率
     */
    videoPacketsLostRate: number;
    /**
     * 视频编码帧率
     */
    videoTransferFPS: number;
    /**
     * 推流质量，-1 表示未知，0 表示 极好,1 表示好，2 表示中等，3 表示 差，4 表示极差
     */
    videoQuality: number;
    /**
     * 是否开启硬编，true 为开启，false 为关闭，undefined 为未知。
     */
    isHardwareEncode?: boolean;
}
/**
 * 推流状态
 *
 */
export interface ZegoPublisherState {
    /**
     * 流ID
     */
    streamID: string;
    /**
     * NO_PUBLISH：未推流状态，PUBLISH_REQUESTING：正在请求推流状态，PUBLISHING：正在推流状态
     */
    state: "PUBLISHING" | "NO_PUBLISH" | "PUBLISH_REQUESTING";
    /**
     * 错误码
     */
    errorCode: number;
    /**
     * 扩展信息
     */
    extendedData: string;
}
/**
 * 媒体服务相关事件集合
 *
 * Note: 详情描述：描述事件名及其对应的回调参数。
 *
 * Note: 业务场景：用于约束注册事件接口 on 和注销事件接口 off 的参数。
 *
 */
export interface ZegoRTCEvent {
    /**
     * 推流质量回调
     */
    publishQualityUpdate: PublishQualityUpdateCallBack;
    /**
     * 推流状态回调
     */
    publisherStateUpdate: PublisherStateUpdateCallBack;
    /**
     * 屏幕共享中断回调
     */
    screenSharingEnded: ScreenSharingEndedCallBack;
    /**
     * 拉流质量回调，每次回调间隔3s
     */
    playQualityUpdate: PlayQualityUpdateCallBack;
    /**
     * 接收对端设置的流附加信息
     */
    streamExtraInfoUpdate: StreamExtraInfoUpdateCallBack;
    /**
     * 拉流状态回调
     */
    playerStateUpdate: PlayerStateUpdateCallBack;
    /**
     * 推流端的摄像头状态发生改变时触发
     */
    remoteCameraStatusUpdate: RemoteCameraStatusUpdateCallBack;
    /**
     * 推流端的麦克风状态改变时触发
     */
    remoteMicStatusUpdate: RemoteMicStatusUpdateCallBack;
    /**
     * 音浪回调
     */
    soundLevelUpdate: SoundLevelUpdateCallBack;
    /**
     * 监听视频设备状态变化
     */
    videoDeviceStateChanged: videoDeviceStateChangedCallBack;
    /**
     * 监听音频设备状态变化
     */
    audioDeviceStateChanged: audioDeviceStateChangedCallBack;
    /**
     * 监听设备异常
     */
    deviceError: deviceErrorCallBack;
    /**
     * 本地采集音频声浪回调
     */
    capturedSoundLevelUpdate: CapturedSoundLevelUpdateCallBack;
    /**
     * 收到远端流的 SEI 内容
     */
    playerRecvSEI: PlayerRecvSEICallBack;
    /**
     * 美颜功能发生异常错误。
     */
    beautyEffectError: BeautyEffectErrorCallBack;
    /**
     * 房间内流变化回调
     *
     * 收到流删除通知时，开发者可将 extendedData 由字符串转为 json 对象得到 stream_delete_reason 字段，该字段为流删除原因的数组，stream_delete_reason[].code 字段可能为如下值：1（用户主动停止推流）；  2（用户心跳超时）；  3（用户重复登录）；  4（用户被踢出）；  5（用户断线）；  6（被服务端移除）
     */
    roomStreamUpdate: RoomStreamUpdateCallBack;
    /**
     * 异常事件状态更新回调
     */
    exceptionUpdate: ExceptionUpdateCallBack;
    /**
     * 房间内正在推流的用户的网络质量回调
     */
    networkQuality: NetworkQualityCallBack;
    /**
     * 混流中的每条单流的声浪更新通知。
     */
    mixerSoundLevelUpdate: MixerSoundLevelUpdateCallBack;
    /**
     * 自动混流中的每条单流的声浪更新通知。
     */
    autoMixerSoundLevelUpdate: AutoMixerSoundLevelUpdateCallBack;
    /**
     * 背景虚化、虚拟的功能发生异常错误。
     */
    backgroundEffectError: BackgroundEffectErrorCallBack;
    /**
     * 实验性 API 回调
     */
    recvExperimentalAPI: RecvExperimentalAPICallBack;
    /**
     * 混流转推 CDN 状态回调
     */
    mixerRelayCDNStateUpdate: MixerRelayCDNStateUpdateCallBack;
    /**
     * 拉流的视轨发生改变时触发
     * 使用场景：当需要单独拿拉流得到的视轨进行视频渲染处理时使用。大部分场景推荐用 ZegoStreamView 渲染，不推荐使用该事件回调。
     */
    playerVideoTrackUpdate: PlayerTrackUpdateCallBack;
    /**
     * 拉流的音轨发生改变时触发
     * 使用场景：当需要单独拿拉流得到的音轨进行音频渲染处理时使用。大部分场景推荐用 ZegoStreamView 渲染，不推荐使用该事件回调。
     */
    playerAudioTrackUpdate: PlayerTrackUpdateCallBack;
    /**
     * 推流编码更新回调
     */
    publisherVideoEncoderChanged: PublisherVideoEncoderChangedCallBack;
}
/**
 * Note: 支持版本：2.16.0
 *
 */
export interface ZegoSEIConfig {
    /**
     * 详情描述：采用 H.264 的 SEI (nalu type = 6,payload type = 5) 类型打包，因为视频编码器自身会产生 payload type 为 5 的 SEI，或者使用视频文件推流时，视频文件中也可能存在这样的 SEI，所以使用此类型时，用户需要把 uuid + content 当作 buffer 塞给 SEI 发送接口；此时为了区别视频编码器自身产生的 SEI， App 在发送此类型 SEI 时，可以填写业务特定的 uuid（uuid长度为16字节），接收方使用 SDK 解析 payload type 为 5 的 SEI 时，会根据设置的过滤字符串过滤出 uuid 相符的 SEI 抛给业务，如果没有设置过滤字符串，SDK 会把所有收到的 SEI 都抛给开发者。
     *
     * 业务场景：发送 SEI，采用 H.264 的 SEI (nalu type = 6,payload type = 5) 类型打包 。
     */
    unregisterSEIFilter?: string;
    SEIPass?: boolean;
    emulationPreventionByte?: boolean;
}
/**
 * 创建屏幕共享媒体流相关参数约束
 *
 * Note: 详情描述：该类用于约束接口 createStream 的参数 source.screen。
 *
 * Note: 业务场景：创建屏幕共享媒体流。
 *
 * Note: 注意事项： 当 videoQuality 为 4 时，camera 增加 width / height / frameRate / bitrate 属性，这几个参数只支持正整数，必须要把这四个属性也传递给 SDK。
 *
 */
export interface ZegoScreen {
    /**
     * 是否需要音频，默认为 false
     */
    audio?: boolean;
    /**
     * 一般而言，屏幕共享视频质量的选择要根据实际情况和场景来确定，screen 中的 videoQuality 提供三种预设值：
     *
     * 1：帧率较大，适合对流畅度要求较高的场景。
     * 2：适合在流畅度和清晰度之间取得平衡的场景。
     * 3：码率较大，适合对清晰度要求较高的场景。
     * 除了以上三种预设值，videoQuality 还提供一种自定义取值 4，可自定义帧率、码率，screen 增加 frameRate / bitrate 属性，使用时需要把这两个属性也传递给 SDK。
     *
     * 视频质量等级，默认质量等级为 2
     * 1  帧率:20	码率: 800K
     * 2  帧率:15	码率: 1500K
     * 3  帧率:5	        码率: 2000K
     * 4  帧率:frameRate	码率: bitrate（k）
     */
    videoQuality?: 1 | 2 | 3 | 4;
    /**
     * 分辨率宽
     */
    width?: number | ConstraintExtend;
    /**
     * 分辨率高
     */
    height?: number | ConstraintExtend;
    /**
     * 码率
     */
    bitrate?: number;
    /**
     * 帧率
     */
    frameRate?: number | ConstraintExtend;
    /**
     * 码率（旧写法，建议使用 bitrate）
     */
    bitRate?: number;
    /**
     * 开始码率，默认为 “default”，环境要求：谷歌内核浏览器及 2.7.0 以上版本的 SDK 。
     * 值为 “default” 表示使用 webrtc 默认开始码率 300kbps  然后慢慢上升；值为 “target” 表示快速上升到已设置的目标码率。
     */
    startBitrate?: "default" | "target";
    /**
     * 视频优化模式，默认为 “default“ ；
     * 值为 “motion” 表示流畅模式，在大多数情况下，SDK 不会降低帧率，但是可能会降低发送分辨率。
     * 值为 ”detail“ 表示清晰模式，在大多数情况，SDK 不会降低发送分辨率，但是可能会降低帧率
     */
    videoOptimizationMode?: "default" | "motion" | "detail";
    /**
     * 指定屏幕共享画面 ID , 仅限chrome 内核浏览器使用
     */
    sourceID?: string;
    /**
     * 详情描述：推流码率最小值。当网络较差的时候可接受的视频质量下降码率的最小值。
     *
     * 业务场景：期望视频持续高质量则把 minBitrate设置为接近目标码率的值。视频质量要求不高的推流可以把 minBitrate 设置得较低。
     *
     * 默认值：默认最小码率是目标码率的 60%。
     */
    minBitrate?: number;
    /**
     * 详情描述：视频关键帧间隔时长，单位秒。屏幕共享可以通过调大关键帧的间隔时长以减少视频编码性能压力。
     *
     * 默认值：2 秒。
     *
     * 取值范围: [2, 6]。
     */
    keyFrameInterval?: number;
    /**
     * 是否开启自动增益，默认关闭。
     */
    ANS?: boolean;
    /**
     * 是否开启自动增益，默认关闭。
     */
    AGC?: boolean;
    /**
     * 是否开启回声消除，默认开启。
     */
    AEC?: boolean;
}
export interface ZegoServerResponse {
    /**
     * 返回错误码，为 0 则是成功
     */
    errorCode: number;
    /**
     * 扩展信息
     */
    extendedData?: string;
}
/**
 * 截图相关配置选项
 *
 */
export interface ZegoSnapshotOptions {
    /**
     * 详情描述：图片格式，支持 png 和 jpeg，默认为png。
     *
     * 业务场景：指定截图的图片格式。
     */
    imageType?: string;
    /**
     * 详情描述：图片质量，0-1，默认1。
     *
     * 业务场景：指定截图的图片质量。
     */
    quality?: number;
    /**
     * 详情描述：是否把截图保存下载到本地文件。
     */
    save?: boolean;
    /**
     * 详情描述：保存文件的名称，只在 save 设置为 true 时生效。
     */
    fileName?: string;
}
export interface AudioFrameOptions {
    /**
     * frameSize 每次回调的音频数据中每个声道包含的采样数据个数，只能设为下列值：256, 512, 1024, 2048, 4096, 8192, 16384。默认为 4096。
     * 只在首次设置生效
     */
    frameSize?: number;
}
/**
 * 音浪信息
 *
 */
export interface ZegoSoundLevelInfo {
    /**
     * 流ID
     */
    streamID: string;
    /**
     * 音浪大小，取值范围 [0，100]，通常一个人正常说话时麦克风音浪会波动到 10 以上。
     */
    soundLevel: number;
    /**
     * 用于区分推拉流，“push” 表示推流，“pull” 表示拉流。
     */
    type: "push" | "pull";
}
/**
 * 流信息
 *
 */
export interface ZegoStreamList {
    /**
     * 流 ID
     */
    streamID: string;
    /**
     * 流对应的用户
     */
    user: ZegoUser;
    /**
     * 流附加信息
     */
    extraInfo: string;
    /**
     * flv 播放地址
     */
    urlsFLV: string;
    /**
     * rtmp 播放地址
     */
    urlsRTMP: string;
    /**
     * hls 播放地址
     */
    urlsHLS: string;
    /**
     * https 协议的 flv 播放地址
     */
    urlsHttpsFLV: string;
    /**
     * https 协议的 hls 播放地址
     */
    urlsHttpsHLS: string;
}
/**
 * 媒体流播放组件选项。
 *
 */
export interface ZegoStreamViewOptions {
    /**
     * 镜像显示，true 为开启，false 为关闭，默认是关闭。
     */
    mirror?: boolean;
    /**
     * 视频画面显示模式，"cover" 为覆盖容器；"contain" 为显示全部内容；"fill" 为拉伸填充。默认是 "contain"。
     */
    objectFit?: "cover" | "contain" | "fill";
    /**
     * 是否静音，true 为开启静音，false 为关闭静音。本地流的播放默认是静音，远端流的播放默认是关闭静音。
     */
    muted?: boolean;
    /**
     * 自动播放失败弹窗，默认开启，当出现自动播放失败时，SDK 会弹窗引导用户点击页面，来恢复音视频播放。可设置为 false 关闭。
     */
    enableAutoplayDialog?: boolean;
    /**
     * 当视频数据中断时是否去掉最后一帧画面。true 为清除，false 为保留，默认是 true。
     */
    clearLastFrame?: boolean;
}
/**
 * 媒体流播放组件选项。
 *
 */
export interface ZegoLocalViewOptions {
    /**
     * 镜像显示，true 为开启，false 为关闭，默认是关闭。
     */
    mirror?: boolean;
    /**
     * 视频画面显示模式，"cover" 为覆盖容器；"contain" 为显示全部内容；"fill" 为拉伸填充。默认是 "contain"。
     */
    objectFit?: "cover" | "contain" | "fill";
    /**
     * 自动播放失败弹窗，默认开启，当出现自动播放失败时，SDK 会弹窗引导用户点击页面，来恢复音视频播放。可设置为 false 关闭。
     */
    enableAutoplayDialog?: boolean;
    /**
     * 当视频数据中断时是否去掉最后一帧画面。true 为清除，false 为保留，默认是 true。
     */
    clearLastFrame?: boolean;
}
export interface ZegoLocalAduioOptions {
    /**
     * 自动播放失败弹窗，默认开启，当出现自动播放失败时，SDK 会弹窗引导用户点击页面，来恢复音视频播放。可设置为 false 关闭。
     */
    enableAutoplayDialog?: boolean;
}
export interface ZegoLocalStreamEvent {
    autoplayFailed: (player: HTMLMediaElement, e?: any) => void;
    canPlayAudio: (e: Event) => void;
    canPlayVideo: (e: Event) => void;
    canPlayCaptureVideo: (e: Event) => void;
    canPlayCaptureAudio: (e: Event) => void;
    autoplayCaptureFailed: (player: HTMLMediaElement, e?: any) => void;
    videoTrackChanged: (videoTrack: MediaStreamTrack) => void;
    audioTrackChanged: (audioTrack: MediaStreamTrack) => void;
    captureVideoTrackChanged: (videoTrack: MediaStreamTrack) => void;
    captureAudioTrackChanged: (audioTrack: MediaStreamTrack) => void;
}
export interface ZegoVideoCodec {
    /**
     * 是否支持H264编解码能力
     */
    H264: boolean;
    /**
     * 是否支持VP8编解码能力
     */
    VP8: boolean;
}
/**
 * 拉流模式，默认为 0。0 表示仅从 RTC 拉流；1 表示仅从 CDN 拉流；2 表示仅从 L3 拉流；5 表示自定义模式，SDK根据推流设置的customResourceConfig参数选择推流资源。
 */
type ZegoResourceType = 0 | 1 | 2 | 5;
/**
 * 自定义拉流资源类型配置。3.7.0 版本开始支持。
 */
export interface ZegoCustomPlayerResourceConfig {
    /**
     * 开始推流前拉流选择的资源类型。0 表示仅从 RTC 拉流；1 表示仅从 CDN 拉流；2 表示仅从 L3。
     */
    beforePublish: ZegoResourceType;
    /**
     * 推流中拉流选择的资源类型。0 表示仅从 RTC 拉流；1 表示仅从 CDN 拉流；2 表示仅从 L3。
     */
    publishing: ZegoResourceType;
    /**
     * 停止推流后拉流选择的资源类型。0 表示仅从 RTC 拉流；1 表示仅从 CDN 拉流；2 表示仅从 L3。
     */
    afterPublish: ZegoResourceType;
}
export interface ZegoWebPlayOption {
    /**
     * 是否需要拉取视频，默认为 true;
     * 通常情况下建议不填，SDK 默认会根据拉到的实际设备状态选择是否拉音视频
     */
    video?: boolean;
    /**
     * 是否需要拉取音频，默认为 true;
     * 通常情况下建议不填，SDK 默认会根据拉到的实际设备状态选择是否拉音视频
     */
    audio?: boolean;
    /**
     * 拉流额外参数;鉴权参数 streamParams 格式如下：'zg_expired=XX&zg_nonce=XX&zg_token=XX',只有需要配置鉴权时才传入，否则请忽略
     */
    streamParams?: string;
    /**
     * 拉流模式，默认为 0。0 表示仅从 RTC 拉流；1 表示仅从 CDN 拉流；2 表示仅从 L3 拉流；5 表示自定义模式，SDK根据推流设置的customResourceConfig参数选择推流资源。
     */
    resourceMode?: ZegoResourceType;
    /**
     * 详情描述：是否发送 SEI
     */
    isSEIStart?: boolean;
    /**
     * 拉流大小流类型 0 为小流，1为大流，2为自动
     */
    streamType?: 0 | 1 | 2;
    /**
     * ZegoCDNPlayer 实例对象，目前仅支持flv格式。
     */
    CDNPlayer?: any;
    /**
     * 用于播放 CDN 资源的 <video> 标签元素。
     */
    CDNVideo?: HTMLVideoElement;
    /**
     * @deprecated 已废弃, 请使用jitterBufferTarget进行设置
     * 设置拉流音视频播放延迟，单位为秒，取值[1, 4]secs。如果网络状况不佳，浏览器可能会增加播放延迟以减少卡顿。
     * 如果将enableLowLatency设置为true，则此参数不起作用。
     */
    playoutDelayHint?: number;
    /**
     * 设置拉流音视频播放延迟，单位为毫秒，取值(0, 4000]ms。如果网络状况不佳，浏览器可能会增加播放延迟以减少卡顿。
     * 如果将enableLowLatency设置为true，则此参数不起作用。
     */
    jitterBufferTarget?: number;
    /**
     * 是否允许超低延迟，默认为 false；
     * 当设置为true，则playoutDelayHint和jitterBufferTarget参数不起作用。
     */
    enableLowLatency?: boolean;
    /**
     * 当 [resourceMode] 为5 即自定义拉流资源策略时的拉流资源类型配置。
     * 自 3.7.0 版本起支持该参数。
     */
    customResourceConfig?: ZegoCustomPlayerResourceConfig;
    /**
     * 码率模板ID，用于拉取指定码率模板的流。 取值大于 100 的整数，ID 必须唯一
     */
    codecTemplateID?: number;
    /**
     * 是否开启流的自适应切换，1 表示开启，0 表示关闭。仅 [resourceMode] 为 L3 时有效。
     * 若需要使用请联系 ZEGO 技术支持，否则可以忽略此参数。
     */
    adaptiveSwitch?: boolean;
    /**
     * 流的自适应转码模板ID列表。仅 [resourceMode] 为 L3 时有效。
     * 若需要使用请联系 ZEGO 技术支持，否则可以忽略此参数。
     */
    adaptiveTemplateIDList?: number[];
}
/**
 * 详情描述：触发推流流量控制的因素。
 *
 */
export declare enum TrafficControlFocusOnMode {
    /**
     * 只关注本地网络
     */
    TrafficControlFocusOnLocalOnly = 0,
    /**
     * 关注本地网络， 同时也兼顾远端网络，目前只在 1v1 场景下有效
     */
    TrafficControlFocusOnRemote = 1
}
export declare enum TrafficControlMinVideoBitrateMode {
    /**
     * 低于设置的最低码率时，停止视频发送, 默认最低码率为50kbps
     */
    NoVideo = 0
}
export interface ZegoWebPublishOption {
    /**
     * 推流备选参数 ; 备选参数 streamParams 格式如下：'zg_expired=XX&zg_nonce=XX&zg_token=XX'，只有需要配置鉴权才传入（可选功能）
     */
    streamParams?: string;
    /**
     * 流附加信息
     */
    extraInfo?: string;
    /**
     * 推流视频编码，只能传入 'VP8' (string) 或 'H264' (string)，默认值为 'H264' 。
     */
    videoCodec?: "VP8" | "H264";
    /**
     * 房间ID，开启多房间功能后必填，选择在哪个房间推流。
     */
    roomID?: string;
    /**
     * 是否开启 SEI
     */
    isSEIStart?: boolean;
    /**
     * SEI 类型
     */
    SEIType?: ZegoSEIType;
    /**
     * 是否开启 DTX 静音检测，用于减少不发声时推流的音频码率。默认是关闭 DTX。
     */
    enableDTX?: boolean;
    /**
     * 是否允许对该流进行审核，默认为允许， 0：允许， 1：不允许。
     */
    inspectFlag?: ZegoInspectFlagType;
    /**
     * 触发流量控制的因素, 默认为TrafficControlFocusOnRemote
     */
    trafficControlFocusOnMode?: TrafficControlFocusOnMode;
    /**
     * 最低视频码率，单位为 kbps
     */
    trafficControlMinVideoBitrate?: number;
    /**
     * 流控触发最低码率时的视频发送模式
     */
    trafficControlMinVideoMode?: TrafficControlMinVideoBitrateMode;
    /**
     * 流控开关，默认为开启， true：开启， false：关闭。
     */
    enableTrafficControl?: boolean;
    /**
     * 当 videoCodec 不可用时，是否自动切换为可用的 videoCodec, 默认false。 比如：当前设备不支持H264，开启该配置后，SDK 会自动切换至VP8
     */
    enableAutoSwitchVideoCodec?: boolean;
}
export declare enum ZegoInspectFlagType {
    Allow = 0,
    NotAllow = 1
}
/**
 * 更新推流的类型
 */
export declare enum ZegoStreamUpdateType {
    video = 0,
    audio = 1,
    videoAndAudio = 2
}
/**
 * 背景虚化、虚拟功能发生异常错误时触发事件。
 *
 * @param stream 开启背景虚化、虚拟功能对应的媒体流对象。
 * @param errorCode 错误码。
 * @param extendedData 错误描述信息。
 */
type BackgroundEffectErrorCallBack = (stream: MediaStream, errorCode: number, extendedData: string) => void;
/**
 * 美颜功能发生异常错误时触发事件。
 *
 * @param stream 开启美颜功能对应的媒体流对象。
 * @param errorCode 错误码。
 * @param extendedData 错误描述信息。
 */
type BeautyEffectErrorCallBack = (stream: MediaStream, errorCode: number, extendedData: string) => void;
/**
 * @param content 回调的内容，JSON 对象
 */
type RecvExperimentalAPICallBack = (content: Record<string, any>) => void;
/**
 * 详情描述: 包括转推 CDN 的 URL、转推状态等
 */
export interface ZegoStreamRelayCDNInfo {
    url: string;
    state: "NO_RELAY" | "RELAY_REQUESTING" | "RELAYING";
    updateReason: string;
    stateTime: number;
}
export declare const enum ZegoVideoCodecID {
    ZegoVideoCodecIDDefault = 0,
    ZegoVideoCodecIDVp8 = 2
}
export type PublisherVideoEncoderChangedCallBack = (fromCodecID: ZegoVideoCodecID, toCodecID: ZegoVideoCodecID, streamID: string) => void;
/**
 * 混流转推 CDN 状态更新通知。
 * 在 ZEGO RTC 服务器的混流任务的一般情况会以 RTMP 协议将输出流向 CDN 推送，推送过程中出现的状态的变化会从该回调函数通知出来。
 * @param taskID 混流任务 ID。取值范围：长度不超过256。注意事项：该参数为字符串格式，不可以包含 URL 关键字，例如 'http', '?' 等，否则推拉流失败。仅支持数字，英文字符 和 '~', '!', '@', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', '\'。
 * @param infoList 当前 CDN 正在混流的信息列表。
 */
type MixerRelayCDNStateUpdateCallBack = (taskID: string, infoList: Array<ZegoStreamRelayCDNInfo>) => void;
/**
 * 本地采集音频声浪回调，该接口目前不兼容 safari
 *
 * @param soundLevel 本地采集的声浪值，取值范围为 0.0 ~ 100.0 。
 */
type CapturedSoundLevelUpdateCallBack = (soundLevel: number) => void;
/**
 * 拉流质量回调,拉流成功后开始触发
 *
 * Note: 详情描述：订阅拉流质量回调
 *
 * Note: 触发条件：拉流成功后
 *
 * Note: 限制频率：无
 *
 * Note: 关注回调：无
 *
 * Note: 重点提示：每 3 秒回调一次
 *
 * Note: 支持版本：1.0.0
 *
 * Note: 废弃时间：无
 *
 * @param streamID 流 ID
 * @param stats 拉流质量回调信息
 */
type PlayQualityUpdateCallBack = (streamID: string, stats: ZegoPlayStats) => void;
/**
 * 实时有序数据更新回调
 *
 * Note: 详情描述：实时有序数据更新回调。
 *
 * Note: 触发条件：收到了对端发送的 实时数据。
 *
 * Note: 重点提示：必须在 startSubscribing 接口调用前监听。
 *
 * Note: 支持版本：2.12.0
 *
 * @param byte 实时数据
 * @param dataLength 数据长度
 * @param streamID 数据相关流ID
 */
type PlayerRecvRealtimeSequentialDataCallBack = (byte: ArrayBuffer, dataLength: number, streamID: string) => void;
/**
 * channels 音频数据
 * channelCount 音频数据声道数
 */
export type AudioFrameCallback = (audioData: {
    channels: Float32Array[];
    channelCount: number;
    sampleRate: number;
}) => void;
/**
 * 收到远端流的 SEI 内容
 * 拉流成功后，当远端流调用 sendSEI 后，本端会收到此回调
 * 若只拉纯音频流，将收不到推流端发送的 SEI 信息
 *
 * @param streamID 流 ID
 * @param data SEI 内容
 */
type PlayerRecvSEICallBack = (streamID: string, data: Uint8Array) => void;
/**
 * 拉流状态发生变化时回调
 *
 * Note: 详情描述：拉流的状态通知，拉流是异步过程，中间的状态切换都通过该接口回调。监听该回调，对重试依旧不能成功的情况，做错误日志收集，提示客户
 *
 * Note: 触发条件：开始拉流后
 *
 * Note: 限制频率：无
 *
 * Note: 关注回调：无
 *
 * Note: 重点提示：必须在拉流前监听
 *
 * Note: 支持版本：1.0.0
 *
 * Note: 废弃时间：无
 *
 * @param result 拉流状态结果
 */
type PlayerStateUpdateCallBack = (result: ZegoPlayerState) => void;
/**
 * 订阅推流质量回调
 *
 * Note: 详情描述：订阅推流质量回调
 *
 * Note: 触发条件：推流成功后
 *
 * Note: 限制频率：无
 *
 * Note: 关注回调：无
 *
 * Note: 重点提示：每 3 秒回调一次
 *
 * Note: 支持版本：1.0.0
 *
 * Note: 废弃时间：无
 *
 * @param streamID 推流流ID
 * @param stats 推流质量描述
 */
type PublishQualityUpdateCallBack = (streamID: string, stats: ZegoPublishStats) => void;
/**
 * 推流状态回调
 *
 * Note: 详情描述：推流的状态通知，推流是异步过程，中间的状态切换都通过该接口回调。监听该回调，对重试依旧不能成功的情况，做错误日志收集，提示客户
 *
 * Note: 触发条件：开始推流后
 *
 * Note: 限制频率：无
 *
 * Note: 关注回调：无
 *
 * Note: 重点提示：必须在推流前监听
 *
 * Note: 支持版本：1.0.0
 *
 * Note: 废弃时间：无
 *
 * @param result 推流状态结果
 */
type PublisherStateUpdateCallBack = (result: ZegoPublisherState) => void;
/**
 * 拉流摄像头状态回调
 *
 * @param streamID 流 ID
 * @param status 所拉流的摄像头状态 'OPEN'表示开启 'MUTE'表示关闭
 */
type RemoteCameraStatusUpdateCallBack = (streamID: string, status: "OPEN" | "MUTE") => void;
/**
 * 拉流麦克风状态回调
 *
 * @param streamID 流 ID
 * @param status 所拉流的麦克风状态 'OPEN'表示开启 'MUTE'表示关闭
 */
type RemoteMicStatusUpdateCallBack = (streamID: string, status: "OPEN" | "MUTE") => void;
/**
 * 监听已登录房间内流的变化（增加，删除）
 *
 * Note: 详情描述：监听已登录房间内流的变化（增加，删除）
 *
 * Note: 触发条件：房间内有流新增或删除
 *
 * Note: 限制频率：无
 *
 * Note: 重点提示：需要在登录房间前调用
 *
 * Note: 支持版本：1.0.0
 *
 * Note: 废弃时间：无
 *
 * @param roomID 房间ID
 * @param updateType DELETE：流删除，ADD：流新增
 * @param streamList 更新流列表，数组顺序是以服务器接收到的时间进行排序。
 * @param extendedData 扩展信息
 */
type RoomStreamUpdateCallBack = (roomID: string, updateType: "DELETE" | "ADD", streamList: ZegoStreamList[], extendedData: string) => void;
/**
 * 监听已推拉流采集、编码解码异常
 *
 * Note: 详情描述：监听已推拉流采集、编码解码异常
 *
 * Note: 触发条件：流质量开始更新
 *
 * Note: 限制频率：无
 *
 * Note: 重点提示：需要在推拉流前绑定
 *
 * Note: 支持版本：2.23.0
 *
 * Note: 废弃时间：无
 *
 * @param streamID 流ID
 * @param eventData 事件相关信息
 */
type ExceptionUpdateCallBack = (streamID: string, eventDate: ExceptionData) => void;
/**
 * 房间内正在推流的用户的网络质量回调
 *
 * Note: 详情描述：房间内正在推流的用户的网络质量回调
 *
 * Note: 触发条件：流质量开始更新
 *
 * Note: 限制频率：无
 *
 * Note: 重点提示：需要在推拉流前绑定
 *
 * Note: 支持版本：2.24.0
 *
 * Note: 废弃时间：无
 *
 * @param userID 用户id
 * @param upstreamQuality 上行质量
 * @param downstreamQuality 下行质量
 */
type NetworkQualityCallBack = (userID: string, upstreamQuality: QualityGrade, downstreamQuality: QualityGrade) => void;
/**
 * 屏幕共享中断回调
 *
 * Note: 详情描述：监听因为点击系统停止按钮，或者关闭捕捉进程等导致的屏幕共享流被动关闭
 *
 * Note: 触发条件：屏幕共享后点击系统停止或者关闭捕捉进程等
 *
 * Note: 限制频率：无
 *
 * Note: 重点提示：必须在屏幕共享前监听
 *
 * Note: 支持版本：1.0.0
 *
 * Note: 废弃时间：无
 *
 * @param mediaStream 创建屏幕共享流得到的流对象
 */
type ScreenSharingEndedCallBack = (mediaStream: MediaStream) => void;
/**
 * 推拉流音浪回调,该接口目前不兼容safari
 *
 * @param soundLevelList 声浪信息列表，包括流id，声浪大小，及流状态
 */
type SoundLevelUpdateCallBack = (soundLevelList: ZegoSoundLevelInfo[]) => void;
/**
 * 流附加消息变化时回调
 *
 * Note: 详情描述：接收对端设置的流附加信息
 *
 * Note: 触发条件：流附加消息更新
 *
 * Note: 支持版本：1.0.0
 *
 * Note: 废弃时间：无
 *
 * @param roomID 房间ID
 * @param streamList 流信息
 */
type StreamExtraInfoUpdateCallBack = (roomID: string, streamList: {
    streamID: string;
    user: ZegoUser;
    extraInfo: string;
}[]) => void;
/**
 * 音频设备状态变化回调
 *
 * Note: 详情描述：监测到系统中有音频设备添加或移除时，会触发此回调。通过监听此回调，用户可在必要的时候更新使用特定设备进行音频采集。
 *
 * Note: 触发条件：音频设备添加或移除时触发
 *
 * Note: 限制频率：无
 *
 * Note: 关注回调：无
 *
 * Note: 重点提示：
 *       需要浏览器授权麦克风摄像头后才能触发回调；
 *       由于设备和浏览器的限制，部分浏览器在使用某些设备时可能不会触发该回调
 *
 * Note: 支持版本：1.16.0
 *
 * Note: 废弃时间：无
 *
 * @param updateType 'DELETE' 表示设备删除， 'ADD'表示设备增加
 * @param deviceType 'Input'表示输入设备， 'Output'表示输出设备
 * @param deviceInfo 设备信息
 */
type audioDeviceStateChangedCallBack = (updateType: "DELETE" | "ADD", deviceType: "Input" | "Output", deviceInfo: {
    deviceName: string;
    deviceID: string;
}) => void;
/**
 * 设备异常回调
 *
 * Note: 详情描述：当本地推流的音频或视频设备读写出现异常时会触发此回调
 *
 * Note: 触发条件：推流使用的音视频设备出现异常（如松动时）触发
 *
 * Note: 限制频率：无
 *
 * Note: 关注回调：无
 *
 * Note: 重点提示：
 *       推流后才可能触发；
 *       由于设备和浏览器的限制，部分浏览器在使用某些设备时可能不会触发该回调
 *
 * Note: 支持版本：1.16.0
 *
 * Note: 废弃时间：无
 *
 * @param errorCode 错误码
 * @param deviceName 发生异常的设备名称
 */
type deviceErrorCallBack = (errorCode: number, deviceName: string) => void;
/**
 * 视频设备状态变化更新回调
 *
 * Note: 详情描述：监测到系统中有视频设备添加或移除时，会触发此回调。通过监听此回调，用户可在必要的时候更新使用特定设备进行视频采集。
 *
 * Note: 触发条件：视频设备添加或移除时触发
 *
 * Note: 限制频率：无
 *
 * Note: 关注回调：无
 *
 * Note: 重点提示：
 *       需要浏览器授权麦克风摄像头后才能触发回调；
 *       由于设备和浏览器的限制，部分浏览器在使用某些设备时可能不会触发该回调
 *
 * Note: 支持版本：1.16.0
 *
 * Note: 废弃时间：无
 *
 * @param updateType 'DELETE' 为设备被移除， 'ADD'表示设备增加
 * @param deviceInfo 设备信息，deviceName为设备名称，deviceID为设备ID
 */
type videoDeviceStateChangedCallBack = (updateType: "DELETE" | "ADD", deviceInfo: {
    deviceName: string;
    deviceID: string;
}) => void;
/**
 * 混流中的每条单流的声浪更新通知。
 *
 * Note: 详情描述：开发者可根据此回调在观众拉混流的 UI 界面显示哪条流的主播在说话的效果。
 *
 *  Note: 业务场景：常用于需要多个视频画面合成一个视频时使用混流，比如教育类，直播老师和学生的画面。
 *
 *  Note: 触发条件：开发者调用 [startPlayingStream] 函数并且拉流选项开启接收 SEI，开始拉混流后触发回调，回调通知周期为 100 ms。
 *
 *  Note: 支持版本：3.0.0
 *
 *  Note: 废弃时间：无
 *
 * @param soundLevels 混流中每条单流的声浪键值对，key 为每条单流的 soundLevelID，value 为对应的单流的声浪值。取值范围：value 的取值范围为 0.0 ~ 100.0。
 */
type MixerSoundLevelUpdateCallBack = (soundLevels: Map<number, number>) => void;
/**
 * 自动混流中的每条单流的声浪更新通知。
 *
 * Note: 详情描述：开发者可根据此回调在观众拉混流的 UI 界面显示哪条流的主播在说话的效果。
 *
 *  Note: 业务场景：常用于需要多个视频画面合成一个视频时使用混流，比如教育类，直播老师和学生的画面。
 *
 *  Note: 触发条件：开发者调用 [startPlayingStream] 函数并且拉流选项开启接收 SEI，开始拉混流后触发回调，回调通知周期为 100 ms。
 *
 *  Note: 支持版本：3.0.0
 *
 *  Note: 废弃时间：无
 *
 * @param soundLevels 混流中每条单流的声浪键值对，key 为每条单流的 streamID，value 为对应的单流的声浪值，value 的取值范围为 0.0 ~ 100.0。
 */
type AutoMixerSoundLevelUpdateCallBack = (soundLevels: Map<string, number>) => void;
/**
 * 拉流音轨或视轨更新回调
 *
 * @param streamID 流 ID
 * @param track 拉流上的音轨或视轨
 */
type PlayerTrackUpdateCallBack = (streamID: string, track: MediaStreamTrack) => void;
export interface ZegoEvent extends ZegoRTCEvent, ZegoRTMEvent {
}
export * from "./ZegoRangeAudioEntity.web";
export * from "./ZegoCopyrightedMusicEntity.web";
export * from "./ZegoBackgroundProcessEntity.web";
export * from "./ZegoVoiceChangerEntity.web";
