import { C as CharacterIdSource } from './type-qfqQsaUr.js'; import './types-yAwqys0L.js'; import 'inkjs/engine/Error'; /** Options for the Ink HMR listener helpers. */ type InkHmrListenerOptions = { /** * Characters forwarded to {@link importInkText} when an update re-imports raw Ink text (the path * used without `inkJsonOutputPattern`), so `characterId: text` speakers resolve at reload time. */ characters?: readonly CharacterIdSource[]; }; /** * Sets up HMR listeners for live ink story reloading in the browser. * * Call this once in your app entry file. * If available in your `@drincs/pixi-vn` version, call `setupPixivnViteData()` * before this function; otherwise you can safely skip that step. * Handler registration (hashtag commands, text replaces, characters, labels) * is handled server-side by `vitePluginPixivn`'s `content` / `characters` / * `labels` options — no browser POSTs are needed. * * @param options.characters characters forwarded to {@link importInkText} on the raw-text reload * path (see {@link InkHmrListenerOptions}) * @see https://pixi-vn.com/ink#vite-plugin * @example * ```ts title="main.ts" * // main.ts * import { setupInkHmrListener } from "@drincs/pixi-vn-ink/vite-listener"; * * const pixivnViteListener = await import("@drincs/pixi-vn/vite-listener").catch((error) => { * const message = error instanceof Error ? error.message : String(error); * const code = * typeof error === "object" && error !== null && "code" in error * ? String((error as { code?: unknown }).code) * : ""; * if ( * code === "ERR_MODULE_NOT_FOUND" || * code === "ERR_PACKAGE_PATH_NOT_EXPORTED" || * message.includes("@drincs/pixi-vn/vite-listener") * ) return undefined; * throw error; * }); * await pixivnViteListener?.setupPixivnViteData?.(); * await setupInkHmrListener(); * ``` */ declare function setupInkHmrListener(options?: InkHmrListenerOptions): Promise; export { type InkHmrListenerOptions, setupInkHmrListener };