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

interface ObserverData {
    userId: string;
    streamType: TUIVideoStreamType;
    isIntersection?: boolean;
}
export declare class MediaManager {
    private service;
    intersectionObserver: IntersectionObserver | null;
    observerDataMap: Map<HTMLElement | string, ObserverData>;
    observerRoot: HTMLElement | null;
    constructor(service: IRoomService);
    private getRecordStreamType;
    private intersectionObserverCallback;
    private initIntersectionObserver;
    startPlayVideo(options: {
        userId: string;
        streamType: TUIVideoStreamType;
        view: HTMLElement;
        observerViewInVisible: boolean;
    }): Promise<void>;
    doStartPlayVideo(options: {
        userId: string;
        streamType: TUIVideoStreamType;
        view: (HTMLElement | string | null)[];
    }): Promise<void>;
    private setVideoRenderParams;
    stopPlayVideo(options: {
        userId: string;
        streamType: TUIVideoStreamType;
        view: HTMLElement;
    }): Promise<void>;
    doStopPlayVideo(options: {
        userId: string;
        streamType: TUIVideoStreamType;
    }): Promise<void>;
    private onUserAudioStateChanged;
    private onUserVideoStateChanged;
    dispose(): void;
    private bindRoomEngineEvents;
    private unbindRoomEngineEvents;
}
export {};
