import { Emitter } from 'nanoevents';
import Player from "video.js/dist/types/player";
import { IRegion } from '../Region';
import { OptionsType } from '../Layout';
import { IVideoMediaHandler } from "../../Modules/Media";
import { IMediaEvents } from "../Events";
export type MediaState = 'idle' | 'playing' | 'ended' | 'cancelled';
export declare const MediaState: {
    readonly IDLE: "idle";
    readonly PLAYING: "playing";
    readonly ENDED: "ended";
    readonly CANCELLED: "cancelled";
};
export interface 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;
    run(): void;
    setSspAdUrl(url: string, adMediaType: 'image' | 'video', impressionUrls?: string[], errorUrls?: string[]): void;
    sspImpressionUrls: string[] | undefined;
    sspErrorUrls: string[] | undefined;
    schemaVersion: string;
    singlePlay: boolean;
    state: MediaState;
    stop(): Promise<void>;
    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;
}
