import { Chart } from '../core/chart/types'; import { Bounds } from '../types'; import { ChartTheme } from '../theme'; import { PluginContext, PluginStorage, PickResult, ChartPlugin } from './types'; declare class PluginStorageImpl implements PluginStorage { private data; constructor(_pluginName: string); get(key: string): T | undefined; set(key: string, value: T): void; remove(key: string): void; clear(): void; keys(): string[]; _serialize(): Record; _deserialize(data: Record): void; } export interface ContextDependencies { chart: Chart; container: HTMLDivElement; theme: ChartTheme; getGL?: () => WebGLRenderingContext | WebGL2RenderingContext | undefined; get2DContext?: () => CanvasRenderingContext2D | undefined; getPixelRatio: () => number; getCanvasSize: () => { width: number; height: number; }; getPlotArea: () => { x: number; y: number; width: number; height: number; }; getViewBounds: () => Bounds; getYAxisBounds: (yAxisId?: string) => { yMin: number; yMax: number; }; dataToPixelX: (x: number) => number; dataToPixelY: (y: number, yAxisId?: string) => number; pixelToDataX: (px: number) => number; pixelToDataY: (py: number, yAxisId?: string) => number; findNearestPoint?: (px: number, py: number, radius?: number) => PickResult | null; getPlugin: (name: string) => ChartPlugin | undefined; } /** * Create a complete plugin context from chart dependencies */ export declare function createPluginContext(pluginName: string, deps: ContextDependencies): PluginContext & { _cleanup: () => void; _getStorage: () => PluginStorageImpl; }; export {};