import './tech/youtube.js';
import './tech/vimeo.js';
import './plugins/pip/index.js';
import './plugins/layout/index.js';
import './plugins/time-cut/index.js';
import { PipPlugin, PipPluginOptions, PipPluginUI } from './plugins/pip';
import { LayoutPlugin, LayoutPluginOptions, LayoutParams } from './plugins/layout';
import { TimeCutPlugin, TimeCutPluginOptions, TimeCut } from './plugins/time-cut';
import { LoggerInterface, Omit } from '@annoto/web-sdk';
import { PlayerAspectRatio, PlayerOptions, SourceObject, SecondarySourceObject, AudioSource, TextTrackOptions, TextTrackKind, PlayerEventCallback, PlayerEvent, PlayerImplementation } from './interfaces';
import { WidgetServiceInterface } from '../widget';
import videojs from 'video.js';
import { IConfig } from '@annoto/widget-api';
export * from './interfaces';
export { LayoutPlugin, LayoutPluginOptions, LayoutParams, PipPlugin, PipPluginOptions, PipPluginUI, TimeCutPlugin, TimeCutPluginOptions, TimeCut, };
export declare const DEFAULT_PLAYER_OPTIONS: PlayerOptions;
export declare class AnnotoPlayer {
    private logger;
    private widget;
    videojs: typeof videojs;
    private player;
    private vjsPlayer;
    private element;
    private options;
    private textTracks;
    private src;
    private secondarySrc;
    private autoplay;
    constructor(logger: LoggerInterface, widget: WidgetServiceInterface);
    get isSetup(): boolean;
    getImplementation(): Promise<PlayerImplementation>;
    setup(element: string | Element, options?: PlayerOptions): Promise<PlayerImplementation>;
    get fullscreen(): boolean;
    get paused(): boolean;
    get currentTime(): number;
    get duration(): number;
    get currentSrc(): SourceObject;
    get aspectRatio(): PlayerAspectRatio;
    close(): Promise<void>;
    loadSrc(src?: SourceObject, pipSrc?: SecondarySourceObject, audioSource?: AudioSource): Promise<AnnotoPlayer>;
    addTextTrack(trackOpts: TextTrackOptions): Promise<void> | Promise<HTMLTrackElement>;
    removeTextTrackKind(kind: TextTrackKind): Promise<void>;
    setAspectRatio(ratio: PlayerAspectRatio): Promise<any>;
    setAutoplay(val: boolean): void;
    reset(): Promise<void>;
    pip(): Promise<PipPlugin>;
    layout(): Promise<LayoutPlugin>;
    setPipLayout(params: LayoutParams): Promise<void>;
    setPipUI(ui: PipPluginUI): Promise<void>;
    setAutioSource(source?: AudioSource): Promise<void>;
    timeCut(): Promise<TimeCutPlugin>;
    setPoster(posterUrl: string): Promise<void>;
    setupWidget(config?: Omit<IConfig, 'widgets'>, bootstrapUrl?: string, playerParams?: Record<string, unknown>): Promise<void>;
    loadWidget(host?: HTMLElement): Promise<void>;
    closeWidget(): Promise<void>;
    destroyWidget(): Promise<void>;
    getWidgetApi(): Promise<import("@annoto/widget-api").IAnnotoApi>;
    play(): Promise<void>;
    pause(): Promise<import("video.js").VideoJsPlayer>;
    on(eventT: PlayerEvent, cb: PlayerEventCallback): Promise<void>;
    once(eventT: PlayerEvent, cb: PlayerEventCallback): Promise<void>;
    off(eventT: PlayerEvent, cb: PlayerEventCallback): Promise<void>;
}
