import { ChartTheme } from '../theme'; import { ChartPlugin, PluginFactory, PluginManager, PluginManifest, BeforeRenderEvent, AfterRenderEvent, ViewChangeEvent, SeriesChangeEvent, DataUpdateEvent, InteractionEvent } from './types'; import { ContextDependencies } from './PluginContext'; export declare class PluginManagerImpl implements PluginManager { private plugins; private deps; private destroyed; private hooksBeforeRender; private hooksAfterRender; private hooksRenderWebGL; private hooksRenderOverlay; private hooksExportSVG; private hooksInteraction; private hooksViewChange; private hooksDataUpdate; private hooksSeriesAdd; private hooksSeriesRemove; private hooksSeriesChange; private hooksResize; private hooksThemeChange; private hooksSelectionChange; private hooksSerialize; constructor(dependencies: ContextDependencies); /** * Register and initialize a plugin */ use(pluginOrFactory: ChartPlugin | PluginFactory, config?: TConfig): Promise; /** * Remove a plugin */ remove(name: string): Promise; /** * Get a plugin instance */ get(name: string): T | undefined; /** * Check if a plugin is loaded */ has(name: string): boolean; /** * Get all loaded plugin names */ getNames(): string[]; /** * Get all loaded plugin manifests */ getManifests(): PluginManifest[]; /** * Update plugin configuration */ configure(name: string, config: TConfig): void; /** * Notify all plugins of a hook event */ notify(hook: string, ...args: unknown[]): void; /** * Notify beforeRender hooks * Returns false if any plugin wants to skip rendering */ notifyBeforeRender(event: BeforeRenderEvent): boolean; /** * Notify afterRender hooks */ notifyAfterRender(event: AfterRenderEvent): void; /** * Notify WebGL render hooks */ notifyRenderWebGL(event: AfterRenderEvent): void; /** * Notify overlay render hooks */ notifyRenderOverlay(event: AfterRenderEvent): void; /** * Notify SVG export hooks */ notifyExportSVG(ctx: import('../core/chart/exporter/svg/plugins/types').SVGExportPluginContext): void; /** * Notify interaction hooks * Returns false if any plugin prevents default */ notifyInteraction(event: InteractionEvent): boolean; /** * Notify view change hooks */ notifyViewChange(event: ViewChangeEvent): void; /** * Notify data update hooks */ notifyDataUpdate(event: DataUpdateEvent): void; /** * Notify series add hooks */ notifySeriesAdd(event: SeriesChangeEvent): void; /** * Notify series remove hooks */ notifySeriesRemove(event: SeriesChangeEvent): void; /** * Notify series change hooks */ notifySeriesChange(event: SeriesChangeEvent): void; /** * Notify resize hooks */ notifyResize(size: { width: number; height: number; }): void; /** * Notify theme change hooks */ notifyThemeChange(theme: ChartTheme): void; /** * Notify selection change hooks */ notifySelectionChange(points: readonly import('../core/selection').SelectedPoint[]): void; /** * Collect serialization data from plugins */ collectSerializationData(): Record; /** * Restore plugin data from serialization */ restoreSerializationData(data: Record): void; /** * Destroy all plugins and cleanup */ destroy(): void; private checkDependencies; private findDependents; private rebuildHookCaches; private clearHookCaches; }