import { ExtendedVideoJsPlayer } from '../types';
import { VideoJsPlayer } from 'video.js';
import { Root } from '../types';
export declare type Player_label = 'active' | 'inactive' | 'sub';
export declare type Event = 'timeupdate' | 'progress';
export declare type EventCallback = () => void;
export interface VJSPlayerWithLabel {
    player: VideoJsPlayer;
    label: Player_label;
    source?: string;
}
declare class Player {
    closeFS(): void;
    isAnyPlayerInFullscreen(): boolean;
    findExistedPlayer(source: string): VideoJsPlayer | undefined;
    distinguishPlayerBySource(source: string, state?: Root): Player_label;
    isFullScreen(): any;
    fullscreen(cancel?: boolean): void;
    volume(_volume: number): void;
    playing(): boolean;
    play(): void;
    pause(): void;
    duration(): any;
    currentTime(time?: number): number;
    bufferedEnd(): any;
    on(event: Event, callback: EventCallback): any;
    off(event: Event, callback: EventCallback): any;
    getAttribute(attr: string): any;
    addClass(className: string): void;
    removeClass(className: string): void;
    getPlayers(): VJSPlayerWithLabel[];
    getPlayer(id?: string): VideoJsPlayer | any;
    getVJSPlayer(id: string): ExtendedVideoJsPlayer | null;
    getActivePlayerId(): string;
    getControlbar(): HTMLElement;
    handleError(error: string): void;
    do(method: keyof Player, args: any[]): any;
    timeout(ms: number): Promise<unknown>;
    controlBar: {};
}
declare const Instance: Player;
export { Instance as Player };
