import { Emitter, mediaInteractionData } from '../../../../types';
import { RRMediaElement } from '../../../../rrdom';
import { createPlayerService, createSpeedService } from '../machine';
import { Mirror } from '../../../../rrweb-snapshot';

export declare class MediaManager {
    private mediaMap;
    private warn;
    private service;
    private speedService;
    private emitter;
    private getCurrentTime;
    private metadataCallbackMap;
    constructor(options: {
        warn: (...args: Parameters<typeof console.warn>) => void;
        service: ReturnType<typeof createPlayerService>;
        speedService: ReturnType<typeof createSpeedService>;
        getCurrentTime: () => number;
        emitter: Emitter;
    });
    private syncAllMediaElements;
    private start;
    private pause;
    private seekTo;
    private waitForMetadata;
    private getMediaStateFromMutation;
    private syncTargetWithState;
    addMediaElements(node: Node, timeOffset: number, mirror: Mirror): void;
    mediaMutation({ target, timeOffset, mutation, }: {
        target: HTMLMediaElement | RRMediaElement;
        timeOffset: number;
        mutation: mediaInteractionData;
    }): void;
    isSupportedMediaElement(node: Node | {
        nodeName: string;
    }): boolean;
    reset(): void;
}
