import type { Nullable } from "@vkontakte/videoplayer-shared"; import { type InterfaceLanguage } from "@vkontakte/videoplayer-shared"; import type { VideoInfo } from "../Interactives"; import type { GraphEditor } from "@interactiveplatform/movika-graph-editor"; import type { Chapter, Manifest } from "../../manifest"; interface GraphOptions { lang: InterfaceLanguage | string; root: HTMLElement; onError: (msg: string) => void; onOpenPreviewClick: (chapterId: string) => void; visitedChapters?: string[]; } type Coordinates = Nullable<{ x: number; y: number; value: number; }>; export declare class Graph { isHidden: boolean; currentManifestId: Nullable; currentChapterId: Nullable; visitedChapterIds: Set; onOpenPreviewClick?: GraphOptions["onOpenPreviewClick"]; onError: GraphOptions["onError"]; lang: GraphOptions["lang"]; zoom: number; lastZoomInfo: Coordinates; isReady: boolean; ngEditor: Nullable; ngEditorSize: Nullable<{ width: number; height: number; }>; graphWrapperElement: HTMLDivElement; resizeObserver: ResizeObserver; private manifest; constructor(options: GraphOptions); init({ root, onOpenPreviewClick, onError, lang, visitedChapters }: GraphOptions): void; private handleZoomChange; onResize: (entries: ResizeObserverEntry[]) => void; getNextPoint(ngEditorSize?: Nullable<{ width: number; height: number; }>): Nullable<[number, number]>; handleChapterChange: (chapter: Chapter) => void; handleManifestChange: (manifest: Manifest, visitedChapters?: string[]) => void; setVisitedChapters(chapterIds: string[]): void; updateVideosInfo(videosInfo: VideoInfo[]): void; show(): Promise; private initNgEditor; hide(): void; destroy(): void; } export {};