import Controls from './controls';
import { CustomMedia, ElementItem, EventsList, PlayerOptions, Source, Track } from './interfaces';
import Media from './media';
import Ads from './media/ads';
interface P {
    loader: HTMLSpanElement;
    playBtn: HTMLButtonElement;
    proxy: any;
    init(): Promise<void>;
    load(): Promise<void> | void;
    play(): Promise<void>;
    pause(): void;
    destroy(): void;
    getContainer(): HTMLElement;
    getControls(): Controls;
    getCustomControls(): ElementItem[];
    getElement(): HTMLMediaElement;
    getEvents(): EventsList;
    getOptions(): PlayerOptions;
    activeElement(): Ads | Media;
    isMedia(): boolean;
    isAd(): boolean;
    getMedia(): Media;
    getAd(): Ads;
    addCaptions(args: Track): void;
    addControl(args: ElementItem): void;
    removeControl(controlName: string): void;
    _prepareMedia(): Promise<void>;
    enableDefaultPlayer(): void;
    loadAd(src: string | string[]): Promise<void>;
}
declare class Player {
    #private;
    static instances: {
        [id: string]: P;
    };
    static customMedia: CustomMedia;
    static init(): void;
    static addMedia(name: string, mimeType: string, valid: (url: string) => string, media: Source): void;
    loader: HTMLSpanElement;
    playBtn: HTMLButtonElement;
    proxy: any;
    constructor(element: HTMLMediaElement | string, options?: PlayerOptions);
    init(): Promise<void>;
    load(): Promise<void>;
    play(): Promise<void>;
    pause(): void;
    stop(): void;
    destroy(): void;
    getContainer(): HTMLElement;
    getControls(): Controls;
    getCustomControls(): ElementItem[];
    getElement(): HTMLMediaElement;
    getEvents(): EventsList;
    getOptions(): PlayerOptions;
    activeElement(): Ads | Media;
    isMedia(): boolean;
    isAd(): boolean;
    getMedia(): Media;
    getAd(): Ads;
    addCaptions(args: Track): void;
    addControl(args: ElementItem): void;
    addElement(args: ElementItem): void;
    removeControl(controlName: string): void;
    _prepareMedia(): Promise<void>;
    enableDefaultPlayer(): void;
    loadAd(src: string | string[]): Promise<void>;
    set src(media: Source[]);
    get src(): Source[];
    get id(): string;
    private _isValid;
    private _wrapInstance;
    private _createControls;
    private _createUID;
    private _createPlayButton;
    private _setEvents;
    private _autoplay;
    private _mergeOptions;
    private _enableKeyBindings;
}
export default Player;
