import type { Milliseconds } from '@vkontakte/videoplayer-shared';
import type { Readable } from 'svelte/store';
export type ExternalActions = {
    switchFromAdsToVideo: (callPlay?: boolean) => void;
    switchFromVideoToAds: () => void;
    setMuted: (muted: boolean) => void;
};
export type AdsParams = Record<string, unknown>;
export interface IAdmanInitParamsExternalApi {
    videoGetAds?: (p: AdsParams) => Promise<Record<string, unknown> | null>;
    videoTrackAdEvent?: (sectionKey: string, bannerId: string) => Promise<void>;
}
export type AdmanInitParams = {
    width: number;
    height: number;
    isFullscreen: boolean;
    isAutoplay: boolean;
    slotId: number;
    params?: AdsParams;
    duration: number;
    previewParam?: number;
    adsContainer: HTMLElement;
    adsVideoElement: HTMLVideoElement;
    paramsOverride?: AdsParams;
    externalApi?: IAdmanInitParamsExternalApi;
    json?: Record<string, unknown>;
};
export type IPlayerState = {
    vsid: Readable<string | undefined>;
};
export interface IConfig {
    loadTimeout: Milliseconds;
    initTimeout: Milliseconds;
    runtimeTimeout: Milliseconds;
    useAdmanFromNPM: boolean;
    volumeMultiplier: number;
    isVsidOriginal: boolean;
}
