import type { IConfig, IPlayer, PlaybackRate, VideoQuality } from "@vkontakte/videoplayer-core"; import type { Nullable } from "@vkontakte/videoplayer-shared"; import { ValueSubject } from "@vkontakte/videoplayer-shared"; import type { ManifestVideo, Extension } from "../../manifest"; import type { Interactives } from "../Interactives"; import { type InstanceStatistics } from "./InstanceManager"; import type { Instance } from "./InstanceManager"; interface CreatePlayerParams extends Omit { media: ManifestVideo; chapterId: string; prefetch?: boolean; setAsActive?: boolean; autoplay?: boolean; preferredExt?: Array; quality?: VideoQuality; playbackRate?: PlaybackRate; title?: string; } export type ActivePlayer = Nullable>; export default function SeamlessController(interactiveController?: Interactives): { map: Map>; createPlayer: (params: CreatePlayerParams) => Promise<{ player: IPlayer; config: IConfig; statistics: Nullable; }>; removePlayer: (listId: string, itemId?: string) => void; removeAll: () => void; init: () => Promise; setInteractiveController: (instance: Interactives) => void; getActivePlayer: () => Record; activePlayerChanged: ValueSubject; };