import type { CanvasContext } from './dom'; import { GlobalRuntime } from './global-runtime'; import type { RenderingPlugin } from './services'; import type { RendererConfig } from './types'; export interface RendererPlugin { name: string; context: CanvasContext; init: (runtime: GlobalRuntime) => void; destroy: (runtime: GlobalRuntime) => void; } export declare abstract class AbstractRendererPlugin implements RendererPlugin { context: CanvasContext & T; protected plugins: any[]; protected addRenderingPlugin(plugin: RenderingPlugin): void; protected removeAllRenderingPlugins(): void; abstract name: string; abstract init(runtime: GlobalRuntime): void; abstract destroy(runtime: GlobalRuntime): void; } export interface IRenderer { getConfig: () => RendererConfig; /** * register plugin at runtime */ registerPlugin: (plugin: RendererPlugin) => void; /** * unregister plugin at runtime */ unregisterPlugin: (plugin: RendererPlugin) => void; /** * get plugin by name */ getPlugin: (name: string) => RendererPlugin; /** * return all registered plugins */ getPlugins: () => RendererPlugin[]; } export declare class AbstractRenderer implements IRenderer { private plugins; private config; constructor(config?: Partial); registerPlugin(plugin: RendererPlugin): void; unregisterPlugin(plugin: RendererPlugin): void; getPlugins(): RendererPlugin[]; getPlugin(name: string): RendererPlugin; getConfig(): RendererConfig; setConfig(config: Partial): void; } //# sourceMappingURL=AbstractRenderer.d.ts.map