@novely/solid-renderer
Version:
Renderer for @novely/core powered by SolidJS
80 lines (79 loc) • 3.89 kB
TypeScript
import type { Character, Context, Lang, RendererInit } from '@novely/core';
import type { CreateSolidRendererOptions, EmitterEventsMap, SolidRendererStore, StateMainmenuItem, StateScreen, StateScreens } from './types';
declare const createRenderer: ({ fullscreen, controls, target, showAudioSettings, }?: CreateSolidRendererOptions) => {
emitter: import("./emitter").Emitter<EmitterEventsMap>;
renderer<$Language extends Lang, $Characters extends Record<string, Character<$Language>>>(options: RendererInit<$Language, $Characters>): {
getContext: (key: string) => Context;
removeContext(name: string): void;
ui: {
showScreen(name: import("@novely/core").NovelyScreen): void;
getScreen(): import("@novely/core").NovelyScreen;
showLoading(): void;
hideLoading(): void;
showExitPrompt(): void;
start: () => {
unmount: () => void;
};
};
misc: {
preloadImage: <T extends string>(src: T) => T;
preloadImageBlocking: (src: string) => Promise<void>;
preloadAudioBlocking: (source: string) => Promise<void>;
};
actions: {
showImage: (asset: import("@novely/core").NovelyAsset, { classesBase, classesIn, wait }?: {
classesBase?: string;
classesIn?: string;
wait?: boolean;
}) => import("@novely/core").ValidAction;
hideImage: (asset: import("@novely/core").NovelyAsset, { classesOut, wait }?: {
classesOut?: string;
wait?: boolean;
}) => import("@novely/core").ValidAction;
setMood: (mood: string | import("@novely/core").TextContent<Lang, import("@novely/core").State>) => import("@novely/core").ValidAction;
};
};
registerScreen(name: string, screen: StateScreen): void;
registerMainmenuItem(fn: StateMainmenuItem): void;
};
/**
* @deprecated import `createRenderer` instead
*/
export declare const createSolidRenderer: ({ fullscreen, controls, target, showAudioSettings, }?: CreateSolidRendererOptions) => {
emitter: import("./emitter").Emitter<EmitterEventsMap>;
renderer<$Language extends Lang, $Characters extends Record<string, Character<$Language>>>(options: RendererInit<$Language, $Characters>): {
getContext: (key: string) => Context;
removeContext(name: string): void;
ui: {
showScreen(name: import("@novely/core").NovelyScreen): void;
getScreen(): import("@novely/core").NovelyScreen;
showLoading(): void;
hideLoading(): void;
showExitPrompt(): void;
start: () => {
unmount: () => void;
};
};
misc: {
preloadImage: <T extends string>(src: T) => T;
preloadImageBlocking: (src: string) => Promise<void>;
preloadAudioBlocking: (source: string) => Promise<void>;
};
actions: {
showImage: (asset: import("@novely/core").NovelyAsset, { classesBase, classesIn, wait }?: {
classesBase?: string;
classesIn?: string;
wait?: boolean;
}) => import("@novely/core").ValidAction;
hideImage: (asset: import("@novely/core").NovelyAsset, { classesOut, wait }?: {
classesOut?: string;
wait?: boolean;
}) => import("@novely/core").ValidAction;
setMood: (mood: string | import("@novely/core").TextContent<Lang, import("@novely/core").State>) => import("@novely/core").ValidAction;
};
};
registerScreen(name: string, screen: StateScreen): void;
registerMainmenuItem(fn: StateMainmenuItem): void;
};
export { createRenderer };
export type { StateScreen, StateScreens, SolidRendererStore };