import type { Readable } from 'svelte/store';
import type { IValueObservable } from '@vkontakte/videoplayer-shared';
import type { IPlayer, IConfig, IObservable } from '@vkontakte/videoplayer-core';
import type { IStore } from '.';
import type { AdditionalButtonDeprecated, IMicroStores } from '../types';
import type { AdditionalDesktopControlPanelButton } from '../components/Controls/types';
import type { ISDKConfig } from '../config';
export declare const setStores: (store: IStore, microStores: IMicroStores) => void;
export declare const getStore: () => IStore;
export declare const getMicroStores: () => IMicroStores;
/**
 * Создаёт readable store svelte'а из `IObservableValue` sdk
 */
export declare const storeFromObservable: <T>(observable$: IValueObservable<T>, onNewValueEmitted?: (value: T) => void) => Readable<T>;
export declare const storeFromObservableWithInitValue: <T>(observable$: IObservable<T>, initValue: T, onNewValueEmitted?: (value: T) => void) => Readable<T>;
export declare const constructDebugTextData: (player: IPlayer, config: IConfig | undefined, store: IStore, traceId: string, metaConfig?: ISDKConfig["meta"]) => string;
export type DebugData = {
    version: string;
    viewport: string;
    provider?: string;
    cdn?: string;
    id?: number;
    volume: number;
    videoSize?: string;
    buffer?: number;
    nativeBuffer?: number;
    position?: number;
    speed?: number;
    bitrate?: number;
    liveLatency?: number;
    currentVideoSegmentLength?: number;
    currentAudioSegmentLength?: number;
    vsid?: string;
    videoCodec?: string;
    audioCodec?: string;
    hdr?: boolean;
    audioLanguage?: string;
};
export declare const constructDebugPanelData: (player: IPlayer, config: IConfig, store: IStore) => DebugData;
export declare const fetchVideoFile: (url: string, filename: string) => void;
export declare const isDeprecatedAdditionalButtonGuard: (btn: AdditionalButtonDeprecated | AdditionalDesktopControlPanelButton) => btn is AdditionalButtonDeprecated;
export declare const isAdditionalButtonGuard: (btn: AdditionalButtonDeprecated | AdditionalDesktopControlPanelButton) => btn is AdditionalDesktopControlPanelButton;
export declare const createDequeCache: <T>() => {
    add: (key: string, value: T) => void;
    find: (key: string) => [string, T] | undefined;
};
export declare class SubtitlesDownloader {
    private destroyController;
    private pendingDownloads;
    download(url: string): Promise<string | null>;
    destroy(): void;
    isDestroyed(): boolean;
}
