import type { ExactVideoQuality } from '@vkontakte/videoplayer-shared';
import type { IOptionalTuningConfig as ICoreConfig } from '@vkontakte/videoplayer-core';
import { InterfaceLanguage, ErrorCategory } from '@vkontakte/videoplayer-shared';
import type { RecursivePartial } from '@vkontakte/videoplayer-shared';
import type { IOptionalConfig as IStatisticsConfig } from '@vkontakte/videoplayer-statistics';
import type { Milliseconds } from '@vkontakte/videoplayer-shared';
type ForceOrRelay = boolean | undefined;
export declare enum LogoType {
    VK = "vk",
    VK_VIDEO = "vk_video",
    VK_VIDEO_MOBILE = "vk_video_mobile"
}
export interface IUIConfig {
    isMobile: ForceOrRelay;
    debugLog: boolean | {
        tag?: string;
        colors?: string[];
    };
    devNullLog: boolean;
    isSmoothVideoRotate: boolean;
    showSupport: boolean;
    supportLink: string;
    showLogo: ForceOrRelay;
    logoLink: string;
    logoType: LogoType;
    defaultLanguage: InterfaceLanguage;
    downloadVKLanguages: boolean;
    updateBuiltinLanguages: boolean;
    ads: {
        enable: ForceOrRelay;
        loadTimeout: Milliseconds;
        initTimeout: Milliseconds;
        runtimeTimeout: Milliseconds;
        slot?: number;
        preview?: number;
        isMobileGoToSiteButton: boolean;
        useAdmanFromNPM: boolean;
        volumeMultiplier: number;
        isVsidOriginal: boolean;
    };
    volumeDefault: number;
    volumeMinRestore: number;
    loaderDelay: Milliseconds;
    allowChangingFullscreenTarget: boolean;
    minSubtitlesFontSize: number;
    autoSubtitlesTimeout: Milliseconds;
    trafficSavingLimit: ExactVideoQuality;
    highQualityLimit: ExactVideoQuality;
    episodeMinWidthPc: number;
    controls: {
        showOnStartupAtAutoplay: boolean;
        hideTimeout: Milliseconds;
        hideTimeoutMobile: Milliseconds;
        hideTimeoutInitial: Milliseconds;
        hideTimeoutFullscreen: Milliseconds;
        hideTimeoutCursor: Milliseconds;
        hideTimeoutTooltips: Milliseconds;
        collapseMobileUnmute: Milliseconds;
        hide360IconTimeout: Milliseconds;
        volumeBarTimeout: Milliseconds;
        hideHotKeyHelpers: Milliseconds;
        playbackRateMin: number;
        playbackRateMax: number;
        playbackRateStep: number;
        seekStepKeyboard: Milliseconds;
        seekStepMobile: Milliseconds;
        seekStepFrame: Milliseconds;
        volumeStepKeyboard: number;
        volumeStepWheel: number;
    };
    hideThumbTimerAfterTouch: boolean;
    preventPauseOnVideoClick: boolean;
    sentry: {
        dsn: string;
        sampleRate: number;
        whiteErrorCategoryList: ErrorCategory[];
        blackErrorCategoryList: ErrorCategory[];
        whiteErrorIdList: string[];
        blackErrorIdList: string[];
    };
    features: {
        autoplay: boolean;
        statistics: boolean;
        sentry: boolean;
        preload: boolean;
        subtitles: boolean;
        timelinePreview: boolean;
        episodes: boolean;
        fullscreen: boolean;
        mediaSession: boolean;
        /**
         * @deprecated Использовать slotsApi.
         */
        annotations: boolean;
        /**
         * @deprecated Использовать slotsApi.
         */
        annotationsInside: boolean;
        slots: boolean;
        download: boolean;
        pip: boolean;
        dpip: boolean;
        liveRewind: boolean;
        playbackRate: boolean;
        trafficSaving: boolean;
        episodesClustering: boolean;
        copyVideoLink: boolean;
        videoRotate: boolean;
        interactiveGraph: boolean;
        interactiveResponsiveUi?: boolean;
        seekToInteractive: boolean;
        interactiveLastFrame: boolean;
        interactiveTextPermanent: boolean;
        interactiveHideTime: boolean;
        interactivePlayPrevChapter: boolean;
        interactiveTimeIndicator: boolean;
        interactiveTimeOpenUri: boolean;
        thumbTimer: boolean;
        hotKeyMapModal: boolean;
        hotKeyHelpers: boolean;
        saveDebugInfoToFile: boolean;
        saveTraceInfoToFile: boolean;
        additionalButtons: boolean;
        additionalButtonsDesktopControlPanelRight: boolean;
        additionalSettingsMenuItems: boolean;
        additionalContextMenuItems: boolean;
        contextMenuButton: boolean;
        audioLanguages: boolean;
        saveRate: boolean;
        fullscreenInternalTargetPlayerContainer: boolean;
        endScreen: boolean;
        autoplayNext: boolean;
        nextPrevButtons: boolean;
        previewNoEmptySpace: boolean;
        exposeInternalsToGlobal: boolean;
        skipInitialPlaybackRateValue: boolean;
        qualityDetailsSubMenuEnabled: boolean;
        forceAutoQualityWhenSevereStallHappens: boolean;
        showSlowVideoNotification: boolean;
        maxCountShowSlowVideoNotification: number;
        timeoutShowSlowVideoNotification: number;
        forcePlayerDisplayBlock: boolean;
    };
    interactive: {
        historyMaxLength: number;
        noInteractionEventTimeout: number;
    };
    view: {
        timelineSliderColor: string | null;
        timelineSliderHandleColor: string | null;
        timelineSliderFilledColor: string | null;
        timelineSliderLoadedColor: string | null;
        volumeSliderColor: string | null;
        volumeSliderHandleColor: string | null;
        volumeSliderFilledColor: string | null;
        controlsTimeColor: string | null;
        timelineSliderHandleActiveLiveColor: string | null;
        timelineSliderFilledActiveLiveColor: string | null;
        buttonColor: string | null;
        buttonToggleOnColor: string | null;
        focusedColor: string | null;
    };
}
export declare const defaultConfig: IUIConfig;
export type IOptionalUIConfig = RecursivePartial<IUIConfig>;
export declare const fillDefault: (partial: IOptionalUIConfig) => IUIConfig;
export interface ISDKConfig {
    ui: RecursivePartial<IUIConfig>;
    core: ICoreConfig;
    statistics: IStatisticsConfig;
}
export declare const setConfig: (config: IUIConfig) => IUIConfig;
export declare const getConfig: () => IUIConfig;
export {};
