AbstractRenderer.d.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import type { CanvasContext } from './dom';
  2. import { GlobalRuntime } from './global-runtime';
  3. import type { RenderingPlugin } from './services';
  4. import type { RendererConfig } from './types';
  5. export interface RendererPlugin {
  6. name: string;
  7. context: CanvasContext;
  8. init: (runtime: GlobalRuntime) => void;
  9. destroy: (runtime: GlobalRuntime) => void;
  10. }
  11. export declare abstract class AbstractRendererPlugin<T = any> implements RendererPlugin {
  12. context: CanvasContext & T;
  13. protected plugins: any[];
  14. protected addRenderingPlugin(plugin: RenderingPlugin): void;
  15. protected removeAllRenderingPlugins(): void;
  16. abstract name: string;
  17. abstract init(runtime: GlobalRuntime): void;
  18. abstract destroy(runtime: GlobalRuntime): void;
  19. }
  20. export interface IRenderer {
  21. getConfig: () => RendererConfig;
  22. /**
  23. * register plugin at runtime
  24. */
  25. registerPlugin: (plugin: RendererPlugin) => void;
  26. /**
  27. * unregister plugin at runtime
  28. */
  29. unregisterPlugin: (plugin: RendererPlugin) => void;
  30. /**
  31. * get plugin by name
  32. */
  33. getPlugin: (name: string) => RendererPlugin;
  34. /**
  35. * return all registered plugins
  36. */
  37. getPlugins: () => RendererPlugin[];
  38. }
  39. export declare class AbstractRenderer implements IRenderer {
  40. private plugins;
  41. private config;
  42. constructor(config?: Partial<RendererConfig>);
  43. registerPlugin(plugin: RendererPlugin): void;
  44. unregisterPlugin(plugin: RendererPlugin): void;
  45. getPlugins(): RendererPlugin[];
  46. getPlugin(name: string): RendererPlugin;
  47. getConfig(): RendererConfig;
  48. setConfig(config: Partial<RendererConfig>): void;
  49. }
  50. //# sourceMappingURL=AbstractRenderer.d.ts.map