import type { EnrichedStore } from "../../store"; import type { AdmanInitParams, IVideoData, IVKVideoPlayerConfig } from "../../types"; import type { IUIConfig } from "../../config"; import type { Interactives } from "@vkontakte/videoplayer-interactive"; import type KeyboardControls from "../KeyboardControls.svelte"; import type { AdmanWrapper } from "../Ads/admanWrapper"; export interface RootProps { videoData: IVideoData; store: EnrichedStore; admanWrapper: AdmanWrapper; videoConfig: IVKVideoPlayerConfig; uiConfig: IUIConfig; interactiveContainer: HTMLElement | undefined; interactiveController: Interactives | undefined; autoplay: boolean; adsParams?: AdmanInitParams["params"]; isMobile: boolean; showNextPrevButtons?: boolean; nextButtonActive?: boolean; prevButtonActive?: boolean; endScreenVideoTitle?: string | undefined; endScreenVideoThumb?: string | undefined; isOneVideoPlaylist?: boolean; shadowRootContainer: HTMLElement; outerContainerRef: HTMLElement; fullScreenTarget?: HTMLElement | undefined; seekToInteractive?: () => void; playPrevChapter?: () => void; keyboardControls?: KeyboardControls | undefined; needToRepeatPlaylist?: boolean; getVideoDeeplink?: (timestamp: number) => string; firstStart: (external?: boolean) => void; seekTime: (Seconds: number) => void; onDomReady: VoidFunction; showEndScreen?: boolean; } export interface RootExports { setPlayerStarted: (value: boolean) => void; videoContainer?: HTMLElement; keyboardControls?: { focus: () => void; handleExternalKeyboardEvent: (event: KeyboardEvent) => boolean; }; } export interface PersistentLayerExports { startVideoChangedAnimation: (prev: boolean) => void; }