UNPKG

narraleaf-react

Version:

A React visual novel player framework

69 lines (68 loc) 2.89 kB
import { Choice } from "../nlcore/elements/menu"; import { Image } from "../nlcore/elements/displayable/image"; import { EventDispatcher } from "../../util/data"; import { ImageEvents } from "./elements/image/Image"; import { Transform } from "../nlcore/elements/transform/transform"; import { Transition } from "../nlcore/elements/transition/transition"; import { Layer } from "../nlcore/elements/layer"; import { Text } from "../nlcore/elements/displayable/text"; import { Displayable } from "../nlcore/elements/displayable/displayable"; import { Scene } from "../nlcore/elements/scene"; import { Sound } from "../nlcore/elements/sound"; import { Video } from "../nlcore/elements/video"; import { Timeline } from "./Tasks"; export * from "./elements/type"; export type Chosen = Choice & { evaluated: string; }; export declare enum ExposedStateType { image = "narraleaf:image", text = "narraleaf:text", layer = "narraleaf:layer", scene = "narraleaf:scene", video = "narraleaf:video" } export type ExposedState = { [ExposedStateType.image]: { createWearable: (wearable: Image) => void; disposeWearable: (wearable: Image) => void; events: EventDispatcher<ImageEvents>; initDisplayable: (onResolve: () => void) => Timeline; applyTransform: (transform: Transform, onResolve: () => void) => Timeline; applyTransition: (transition: Transition<any>, onResolve: () => void) => Timeline; updateStyleSync: () => void; }; [ExposedStateType.text]: { initDisplayable: (onResolve: () => void) => Timeline; applyTransform: (transform: Transform, onResolve: () => void) => Timeline; applyTransition: (transition: Transition<any>, onResolve: () => void) => Timeline; updateStyleSync: () => void; flush: () => void; }; [ExposedStateType.layer]: { initDisplayable: (onResolve: () => void) => Timeline; applyTransform: (transform: Transform, onResolve: () => void) => Timeline; applyTransition: (transition: Transition<any>, onResolve: () => void) => Timeline; updateStyleSync: () => void; }; [ExposedStateType.scene]: { setBackgroundMusic: (music: Sound | null, fade: number) => Promise<void>; }; [ExposedStateType.video]: { show: () => void; hide: () => void; play: () => Promise<void>; pause: () => void; resume: () => Promise<void>; stop: () => void; seek: (time: number) => void; }; }; export type ExposedKeys = { [ExposedStateType.image]: Image | Displayable<any, any>; [ExposedStateType.text]: Text | Displayable<any, any>; [ExposedStateType.layer]: Layer | Displayable<any, any>; [ExposedStateType.scene]: Scene; [ExposedStateType.video]: Video; }; export type { INotificationsProps } from "./elements/notification/type";