UNPKG

1.14 kBTypeScriptView Raw
1import type { Syringe } from 'mana-syringe';
2import type { RendererConfig } from './types';
3export interface RendererPlugin {
4 name: string;
5 init: (container: Syringe.Container) => void;
6 destroy: (container: Syringe.Container) => void;
7}
8export interface IRenderer {
9 getConfig: () => RendererConfig;
10 /**
11 * register plugin at runtime
12 */
13 registerPlugin: (plugin: RendererPlugin) => void;
14 /**
15 * unregister plugin at runtime
16 */
17 unregisterPlugin: (plugin: RendererPlugin) => void;
18 /**
19 * get plugin by name
20 */
21 getPlugin: (name: string) => RendererPlugin;
22 /**
23 * return all registered plugins
24 */
25 getPlugins: () => RendererPlugin[];
26}
27export declare class AbstractRenderer implements IRenderer {
28 private plugins;
29 private config;
30 constructor(config?: Partial<RendererConfig>);
31 registerPlugin(plugin: RendererPlugin): void;
32 unregisterPlugin(plugin: RendererPlugin): void;
33 getPlugins(): RendererPlugin[];
34 getPlugin(name: string): RendererPlugin;
35 getConfig(): RendererConfig;
36 setConfig(config: Partial<RendererConfig>): void;
37}