import type { ISDKConfig } from '../config';
import type { LanguageConfig } from '../translation/types';
import type { IVideoData, IVKVideoPlayerConfig } from '../types';
import { type QualityLimits } from '@vkontakte/videoplayer-shared';
import { InterfaceLanguage } from '@vkontakte/videoplayer-shared';
import { type PlaybackRate } from '@vkontakte/videoplayer-core';
import type { IStatContext } from '@vkontakte/videoplayer-statistics';
import { AnnotationsApi } from '../utils/webAPI/annotationsApi/annotationsApi';
import type { AdditionalContextMenuItem, AdditionalSettingsMenuItem } from '../components/Menus/subMenuTabs/types';
import type { AdditionalButton } from '../components/Controls/types';
import { SlotsApi } from '../utils/webAPI/slotsApi';
export declare class VKVideoPlayer extends HTMLElement {
    private svelteStubComponent?;
    private svelteRootComponent?;
    private store?;
    private microStoresRoot?;
    private statistics?;
    private sentry;
    private _shadowRoot;
    private playerContainer;
    private rootContainer;
    private shadowRootContainer;
    private uiConfig;
    private coreConfig;
    private statisticsConfig;
    private interactiveController;
    private interactiveContainer;
    private graphMadePause;
    private currentPlayingVideoIndex;
    private needToRepeatPlaylist;
    private videoConfig;
    private pictureInPictureApi;
    private mediaSessionApi;
    private unsubscribePlayerPhaseSubscription;
    private readonly logger;
    private readonly log;
    private readonly subscription;
    private readonly interactiveSubscription;
    annotationsApi: AnnotationsApi | undefined;
    slotsApi: SlotsApi | undefined;
    private prevIsid;
    private isInited;
    private internalsExposure;
    constructor();
    private connectedCallback;
    private disconnectedCallback;
    private initPlayerRootContainers;
    private needToShowNextPrevButtons;
    private isNextButtonActive;
    private isPrevButtonActive;
    private isControlDisabled;
    private getNextVideoInfo;
    private createOneStat;
    private createPlayer;
    private addPlayerInfoSubscriptions;
    playNextVideo(): void;
    playPrevVideo(): void;
    private createPlayerWithCurrentVideo;
    private playPrevChapter;
    private seekToInteractive;
    private initInteractives;
    initPlayer(videoConfig: IVKVideoPlayerConfig, sdkConfig?: Partial<ISDKConfig>): void;
    private isOneVideoPlaylist;
    private updateVideos;
    /**
     * Обновление плейлиста. Будут перезаписаны все видео до текущего
     */
    updatePrevVideos(videos: IVideoData[]): void;
    /**
     * Обновление плейлиста. Будут перезаписаны все видео после текущего
     */
    updateNextVideos(videos: IVideoData[]): void;
    private initMediaSession;
    private setupMediaSessionForVideo;
    private setupMediaSessionForAds;
    play(): void;
    pause(): void;
    stop(): void;
    setMuted(muted: boolean): void;
    setPiPEnabled(enabled: boolean): void;
    setVolume(volume: number): void;
    setRepeat(repeat: boolean): void;
    seekTime(time: number): void;
    seekEpisodeStartTime(time: number): void;
    returnFocusToEpisodes(): void;
    setPlaybackRate(playbackRate: PlaybackRate): void;
    setAutoQualityLimits(limits: QualityLimits): void;
    addLanguage(config: LanguageConfig): void;
    setLanguage(language: InterfaceLanguage | string): Promise<void>;
    setLiveStart(videoData: IVideoData): void;
    setLiveWaitingRecover(): void;
    setLiveWaitingRecord(): void;
    setLiveEnd(videoData: IVideoData): void;
    setLiveLowLatency(isLowLatency: boolean): void;
    getDeviceId(): string | undefined;
    replayInteractiveVideo(): void;
    replayInteractiveChapter(callback?: () => void): Promise<void>;
    showInteractiveIndicatorTooltip(newValue: boolean, useTimeout?: boolean): void;
    switchToActiveLive(): void;
    updateAdditionalSettingsItem(itemId: string, fields: Partial<Omit<AdditionalSettingsMenuItem, 'id' | 'type'>>): void;
    addAdditionalSettingsItem(newItem: AdditionalSettingsMenuItem): void;
    removeAdditionalSettingsItem(itemId: string): void;
    updateAdditionalContextItem(itemId: string, fields: Partial<Omit<AdditionalContextMenuItem, 'id'>>): void;
    addAdditionalContextItem(newItem: AdditionalContextMenuItem): void;
    removeAdditionalContextItem(itemId: string): void;
    updateAdditionalButton(itemId: string, fields: Partial<Omit<AdditionalButton, 'id' | 'type'>>): void;
    addAdditionalButton(newButton: AdditionalButton): void;
    removeAdditionalButton(itemId: string): void;
    updateStatContext(statContext: Partial<IStatContext>): void;
    handleTimerNextVideo(state: boolean): void;
    focus(): void;
}
