import { MuxMediaProps, StreamTypes, ValueOf, Metadata, MediaError } from '@mux-elements/playback-core';
import { PlaybackEngine, Autoplay, UpdateAutoplay, ExtensionMimeTypeMap } from '@mux-elements/playback-core';
import CustomVideoElement, { VideoEvents } from './CustomVideoElement';
declare class MuxVideoElement extends CustomVideoElement<HTMLVideoElement> implements Partial<MuxMediaProps> {
    static readonly observedAttributes: string[];
    protected __hls?: PlaybackEngine;
    protected __playerInitTime: number;
    protected __metadata: Readonly<Metadata>;
    protected __playerSoftwareVersion?: string;
    protected __playerSoftwareName?: string;
    protected __updateAutoplay?: UpdateAutoplay;
    protected __errorTranslator?: Function;
    constructor();
    readonly playerInitTime: number;
    playerSoftwareName: string | undefined;
    playerSoftwareVersion: string | undefined;
    /*
    * @deprecated please use ._hls instead
    */
    readonly hls: import("hls.js").default | undefined;
    readonly _hls: import("hls.js").default | undefined;
    readonly mux: Readonly<HTMLVideoElement['mux']> | undefined;
    readonly error: MediaError | null;
    errorTranslator: Function | undefined;
    src: string;
    type: ValueOf<ExtensionMimeTypeMap> | undefined;
    autoplay: Autoplay;
    /*@TODO write a generic module for well defined primitive types -> attribute getter/setters/removers (CJP) */
    debug: boolean;
    startTime: number | undefined;
    playbackId: string | undefined;
    envKey: string | undefined;
    beaconCollectionDomain: string | undefined;
    streamType: ValueOf<StreamTypes> | undefined;
    /*@TODO Followup: naming convention: all lower (common per HTMLElement props) vs. camel (common per JS convention) (CJP) */
    preferMse: boolean;
    metadata: Readonly<Metadata> | undefined;
    load(): void;
    unload(): void;
    attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null): void;
    disconnectedCallback(): void;
}
declare type MuxVideoElementType = typeof MuxVideoElement;
declare global {
    var MuxVideoElement: MuxVideoElementType;
}
export { PlaybackEngine, PlaybackEngine as Hls, ExtensionMimeTypeMap as MimeTypes, MediaError, VideoEvents };
export default MuxVideoElement;
