import { type Control, type Chapter, type ChapterContainer } from "../../../manifest"; import type { GameController } from "./GameController"; import type { IgnoreExpectState } from "../types"; export declare enum GameStates { nothing = 0, beforeInteractive = 1, interactive = 2, afterInteractive = 3, end = 4, removed = 5, destroyed = 6 } export declare const isControlsExist: (controls: Control[]) => boolean; export declare const isLastChapter: (chapter: Chapter) => boolean; export declare const hasEndTemplate: (chapter: Chapter) => boolean; export declare const isBeforeStartTime: (currentTime: number, container: ChapterContainer) => boolean; export declare const isInteractiveTime: (currentTime: number, container: ChapterContainer) => boolean; export declare const isAfterInteractiveTime: (currentTime: number, container: ChapterContainer) => boolean; type AnyEvent = (ChapterContainer | Chapter | Control)["events"]; type ExtractItemFromArray = T extends (infer U)[] ? U : never; export declare const isExpectEvent: (events?: AnyEvent) => boolean; export declare const getExpectEvent: (events?: AnyEvent) => ExtractItemFromArray | undefined; export declare const isOneCtrlOneContainer: (controls: Control[]) => boolean; export declare const isOneTextCtrlContainer: (controls: Control[]) => boolean; export declare function excludeTextControl(containers?: ChapterContainer[]): ChapterContainer[]; export declare const isEOVEndTime: (target: HTMLVideoElement, endTime: ChapterContainer["endTime"]) => boolean; /** * @param {GameController[]} [gameControllers=[]] список контрллеров * @param {(number | null | undefined)} [expectTime=Infinity] expectTime = endTime - какой expectTime мы ищем * @param {string[]} [ignoreIds=[]] какие контейнеры игнорировать */ export declare function getGameControllerContainersWithExpect(gameControllers?: GameController[], expectTime?: number | null | undefined, ignoreIds?: string[]): GameController[]; type ExecForAllExpectContainersParamsType = { gameControllers: GameController[]; subjectName: string; subjectId: string; execFn: (gameController: GameController) => void; }; export declare function execForAllExpectContainers({ gameControllers, subjectName, subjectId, execFn }: ExecForAllExpectContainersParamsType): void; export declare function isControlHasOpenURIEvent(control: Control): boolean; export declare const evaluateContainerEventStatus: (container: ChapterContainer, gameControllers: GameController[]) => IgnoreExpectState; export {};