1 | import type { Syringe } from 'mana-syringe';
|
2 | import type { RendererConfig } from './types';
|
3 | export interface RendererPlugin {
|
4 | name: string;
|
5 | init: (container: Syringe.Container) => void;
|
6 | destroy: (container: Syringe.Container) => void;
|
7 | }
|
8 | export interface IRenderer {
|
9 | getConfig: () => RendererConfig;
|
10 | |
11 |
|
12 |
|
13 | registerPlugin: (plugin: RendererPlugin) => void;
|
14 | |
15 |
|
16 |
|
17 | unregisterPlugin: (plugin: RendererPlugin) => void;
|
18 | |
19 |
|
20 |
|
21 | getPlugin: (name: string) => RendererPlugin;
|
22 | |
23 |
|
24 |
|
25 | getPlugins: () => RendererPlugin[];
|
26 | }
|
27 | export 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 | }
|