import { type ISubscription, type IValueSubject } from "@vkontakte/videoplayer-shared"; import { type IPlayer } from "@vkontakte/videoplayer-core"; import type { InteractiveEventsType } from "./InteractiveEvents"; import type { ChapterBranch } from "../../../manifest"; import type { EventEmitter } from "../../../utils/EventEmitter"; import type { CustomError } from "../../../utils/Error"; import type { SelectBranchesType } from "./SelectBranches"; import type { IgnoreExpectState, AnimationsFeatureToggles, IInteractiveOptions } from "../types"; import type { ChoiceContainer } from "../containers"; import { type GlobalEvents } from "./events"; import { GameStates } from "./gameUtils"; type Features = Pick & Pick; type ConstructorArg = { player: IPlayer; container: ChoiceContainer; branches: ChapterBranch[]; selectBranches: ReturnType; interactiveEvents: InteractiveEventsType; globalEventEmitter: EventEmitter; globalEvents: GlobalEvents; getContainerEventState: () => IgnoreExpectState; permanentTextControls: boolean; interactiveTimeOpenUri: boolean; disabledControls$: IValueSubject; onRemove: () => void; onError: (error: CustomError) => void; disableTextControlContainerVisibilityEvents?: boolean; features: Features; }; export declare class GameController { container: ChoiceContainer; branches: ChapterBranch[]; selectBranches: ReturnType; subscription: ISubscription; player: IPlayer; interactiveEvents: InteractiveEventsType; getContainerEventState: () => IgnoreExpectState; isPermanentText: boolean; interactiveTimeOpenUri: boolean; disabledControls$: IValueSubject; onRemove: () => void; globalEventEmitter: EventEmitter; gameState: GameStates; isSelectedControlEvent: boolean; isSelectedContainerEvent: boolean; globalEvents: GlobalEvents; onError: ConstructorArg["onError"]; disableTextControlContainerVisibilityEvents: boolean; features: Features; constructor({ player, container, branches, selectBranches, interactiveEvents, globalEvents, globalEventEmitter, getContainerEventState, permanentTextControls, interactiveTimeOpenUri, disabledControls$, onRemove, onError, disableTextControlContainerVisibilityEvents, features }: ConstructorArg); private emitContainerVisibilityEvent; registerEvents(): void; hide: () => void; show: () => void; selectContainerEvent(isEOV?: boolean): void; onStartTime(): void; onEndTime(): void; onBeforeStartTime(): void; onEndOfVideo: () => void; whilePlaying: () => void; onResize(isInteractiveTime: boolean): void; reset(): void; removeView(withTransition?: boolean | undefined): void; fakeRemoveView(remove?: boolean): void; updateControlsShadowStyles(isDark?: boolean): void; toggleBlinkAnimation(value: boolean): void; isInteracted(): boolean; isRemovedOrDestroyed(includeWillRemovedState?: boolean): boolean; destroy(withTransition?: boolean): void; } export {};