import { Emitter } from 'nanoevents';
import Player from "video.js/dist/types/player";
import { OptionsType } from '../../Types/Layout';
import { IRegion } from '../../Types/Region';
import { IMedia, MediaState } from '../../Types/Media';
import { IXlr } from '../../Types/XLR';
import { IMediaEvents } from "../../Types/Events";
import 'video.js/dist/video-js.min.css';
import { IVideoMediaHandler } from "./VideoMedia";
export declare class Media implements IMedia {
    attachedAudio: boolean;
    checkIframeStatus: boolean;
    containerName: string;
    divHeight: number;
    divWidth: number;
    duration: number;
    emitter: Emitter<IMediaEvents>;
    enableStat: boolean;
    fileId: string;
    finished: boolean;
    fromDt: string;
    html: HTMLElement | null;
    id: string;
    idCounter: number;
    iframe: HTMLIFrameElement | null;
    iframeName: string;
    index: number;
    loadIframeOnRun: boolean;
    loop: boolean;
    mediaId: string;
    mediaType: string;
    muted?: boolean;
    options: OptionsType & {
        [k: string]: any;
    };
    player?: Player;
    ready: boolean;
    region: IRegion;
    render: string;
    schemaVersion: string;
    singlePlay: boolean;
    state: MediaState;
    tempSrc: string;
    timeoutId: ReturnType<typeof setTimeout>;
    toDt: string;
    type: string;
    uri: string;
    url: string | null;
    useDuration: boolean;
    xml: Element | null;
    videoHandler?: IVideoMediaHandler;
    mediaTimer: ReturnType<typeof setInterval> | undefined;
    sspImpressionUrls: string[] | undefined;
    sspErrorUrls: string[] | undefined;
    private isSspWidget;
    private mediaTimeCount;
    private xlr;
    private readonly statsBC;
    private hasCommandExecuted;
    constructor(region: IRegion, mediaId: string, xml: Element, options: OptionsType, xlr: IXlr);
    private startMediaTimer;
    private on;
    private init;
    run(): void;
    setSspAdUrl(url: string, adMediaType: 'image' | 'video', impressionUrls?: string[], errorUrls?: string[]): void;
    stop(): Promise<void>;
    /**
     * Emits a command from the shell command widget.
     *
     * @param media
     * @private
     */
    private emitCommand;
}
