import { TUIVideoStreamType } from '../../../../node_modules/@tencentcloud/tuiroom-engine-js';
import { IRoomService } from '../types';

interface ObserverData {
    userId: string;
    streamType: TUIVideoStreamType;
    isIntersection?: boolean;
}
export declare enum StreamPlayMode {
    PLAY = "play",
    STOP = "stop",
    PLAY_IN_VISIBLE = "playInVisible"
}
export declare enum StreamPlayQuality {
    HIGH = "high",
    LOW = "low",
    Default = "default"
}
export declare class MediaManager {
    private service;
    intersectionObserver: IntersectionObserver | null;
    observerDataMap: Map<HTMLElement | string, ObserverData>;
    observerRoot: HTMLElement | null;
    constructor(service: IRoomService);
    startPlayVideo(options: {
        userId: string;
        streamType: TUIVideoStreamType;
        view: HTMLElement;
        observerViewInVisible: boolean;
    }): Promise<void>;
    stopPlayVideo(options: {
        userId: string;
        streamType: TUIVideoStreamType;
        view: HTMLElement;
    }): Promise<void>;
    private initIntersectionObserver;
    private intersectionObserverCallback;
    private getPlayStreamType;
    private doStartPlayVideo;
    private setVideoRenderParams;
    private doStopPlayVideo;
    private onUserAudioStateChanged;
    private onUserVideoStateChanged;
    dispose(): void;
    private bindRoomEngineEvents;
    private unbindRoomEngineEvents;
}
export {};
