UNPKG

yukinovel

Version:

Yukinovel is a simple web visual novel engine.

51 lines (50 loc) 1.49 kB
import { Game } from '../core/Game.js'; import { PluginManager } from '../core/PluginManager.js'; import { Plugin, PluginMetadata, PluginHooks } from '../types/index.js'; /** * Helper function để tạo plugin dễ dàng hơn */ export declare function createPlugin(options: { metadata: PluginMetadata; hooks?: PluginHooks; initialize?: (game: any, pluginManager: any) => void | Promise<void>; dispose?: () => void | Promise<void>; api?: { [key: string]: any; }; }): Plugin; /** * Decorator để đánh dấu plugin method hooks */ export declare function hook(eventType: keyof PluginHooks): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; /** * Class-based Plugin helper */ export declare abstract class PluginBase implements Plugin { abstract metadata: PluginMetadata; hooks?: PluginHooks; api?: { [key: string]: any; }; constructor(); private collectHooks; initialize?(game: Game, pluginManager: PluginManager): Promise<void>; dispose?(): Promise<void>; } /** * Plugin Registry Builder để quản lý nhiều plugins :v */ export declare class PluginRegistryBuilder { private plugins; add(plugin: Plugin): this; addMultiple(plugins: Plugin[]): this; build(): Plugin[]; registerAll(game: Game): Promise<void>; } /** * Validation helper cho plugin */ export declare function validatePlugin(plugin: Plugin): { valid: boolean; errors: string[]; };