import { V2LiveRotation, V2LiveFillMode, V2LivePlayerEvent } from '../live_define';
/**
 * 腾讯云直播播放器
 *
 * @example
 *
 * // 创建/销毁 V2LivePlayer 对象，以及回调事件监听。
 *
 * import { V2LivePlayer } from 'trtc-electron-sdk';
 * const livePlayer = V2LivePlayer.createV2LivePlayer();
 *
 * subscribeEvents = (livePlayer) => {
 *  livePlayer.on('onError', (errcode, errmsg) => {
 *      console.info('livePlayer_demo: onError :' + errcode + " msg" + errmsg);
 *  });
 * };
 *
 * V2LivePlayer.releaseV2livePlayer(livePlayer);
 *
 */
export declare class V2LivePlayer {
    private livePlayer;
    private playerVideoRender;
    private pixelFormat;
    private eventEmitter;
    private logger;
    /**
     * 创建 V2LivePlayer 实例
     *
     * @return {V2LivePlayer}   - 播放器实例
     */
    static createV2LivePlayer(): V2LivePlayer;
    /**
     * 析构 V2LivePlayer 对象
     *
     * @param {V2LivePlayer}  livePlayer    - 推流器实例
     */
    static releaseV2LivePlayer(livePlayer: V2LivePlayer): void;
    constructor();
    destroy(): void;
    /**
     * 监听 LivePlayer 对象事件。
     *
     * @param {V2LivePlayerEvent} event     - 事件名称。
     * @param {Function} listener           - 事件回调函数。
     */
    on(event: V2LivePlayerEvent | symbol, listener: (...args: any[]) => void): void;
    /**
     * 取消监听 LivePlayer 对象事件。
     *
     * @param {V2LivePlayerEvent} event     - 事件名称。
     * @param {Function} listener           - 事件回调函数。
     */
    off(event: V2LivePlayerEvent | symbol, listener: (...args: any[]) => void): void;
    /**
    * 设置播放器的视频渲染 View, 播放器的视频最终会显示到传入的 View 上。
    *
    * @param {HTMLElement | null} view     - 播放器的视频渲染 View。
    */
    setRenderView(view: HTMLElement | null): void;
    /**
     * 设置播放器画面的旋转角度, 默认不旋转。
     *
     * @param {V2LiveRotation} rotation   - 播放器画面的旋转角度, 参考 V2LiveRotation 的定义。
     * @return {Number}                   - 参考 V2LiveCode 的定义
     */
    setRenderRotation(rotation: V2LiveRotation): number;
    /**
     * 设置画面的填充模式
     *
     * @param {V2LiveFillMode} mode     - 画面填充模式，参考 V2LiveFillMode 的定义。
     * @return {Number}                 - 参考 V2LiveCode 的定义
     */
    setRenderFillMode(mode: V2LiveFillMode): number;
    /**
     * 开始播放音视频流
     *
     * @param {String} url     - 音视频流地址
     * @return {Number}        - 参考 V2LiveCode 的定义
     */
    startPlay(url: string): number;
    /**
     * 停止播放音视频流
     *
     * @return {Number}         - 参考 V2LiveCode 的定义
     */
    stopPlay(): number;
    /**
     * 播放器是否正在播放中
     *
     * @return {Number}         - 是否正在播放中, 1 表示正在播放中, 0 表示未在播放中
     */
    isPlaying(): number;
    /**
     * 暂停播放器的音频流
     *
     * @return {Number}         - 参考 V2LiveCode 的定义
     */
    pauseAudio(): number;
    /**
     * 恢复播放器的音频流
     *
     * @return {Number}         - 参考 V2LiveCode 的定义
     */
    resumeAudio(): number;
    /**
     * 暂停播放器的视频流
     *
     * @return {Number}         - 参考 V2LiveCode 的定义
     */
    pauseVideo(): number;
    /**
     * 恢复播放器的视频流
     *
     * @return {Number}         - 参考 V2LiveCode 的定义
     */
    resumeVideo(): number;
    /**
     * 设置播放器音量
     *
     * @param {Number} volume     - 音量大小，取值范围0 - 100。【默认值】: 100
     * @return {Number}           - 参考 V2LiveCode 的定义
     */
    setPlayoutVolume(volume: number): number;
    /**
     * 设置播放器缓存自动调整的最小和最大时间
     *
     * @param {Number} minTime     - 缓存自动调整的最小时间，取值需要大于0。【默认值】：1
     * @param {Number} maxTime     - 缓存自动调整的最大时间，取值需要大于0。【默认值】：5
     * @return {Number}            - 参考 V2LiveCode 的定义
     */
    setCacheParams(minTime: number, maxTime: number): number;
    /**
     * 直播流无缝切换，支持 FLV 和 LEB
     *
     * @param {String} url      - 新的拉流地址
     * @return {Number}         - 参考 V2LiveCode 的定义
     */
    switchStream(newUrl: string): number;
    /**
     * 启用播放音量大小提示
     *
     * @param {Number} intervalMs     - onPlayoutVolumeUpdate 回调的触发间隔，单位为ms，最小间隔为100ms，如果小于等于0则会关闭回调，建议设置为300ms；【默认值】：0，不开启。
     * @return {Number}               - 参考 V2LiveCode 的定义
     */
    enableVolumeEvaluation(intervalMs: number): number;
    private enableObserveVideoFrame;
    private _createPlayerRender;
    private _destroyPlayerRender;
    private _setVideoRenderBuffer;
    private _addVideoRenderCallback;
    private _removeVideoRenderCallback;
    private _playerVideoRenderCallback;
    private initObserver;
    fire(event: string, ...args: any): void;
    private handleOnError;
    private handleOnWarning;
    private handleOnVideoResolutionChanged;
    private handleOnConnected;
    private handleOnVideoPlaying;
    private handleOnAudioPlaying;
    private handleOnVideoLoading;
    private handleOnAudioLoading;
    private handleOnPlayoutVolumeUpdate;
    private handleOnStatisticsUpdate;
    private handleOnStreamSwitched;
}
