import { Bounds, CursorOptions, AxisOptions, PlotArea, ChartEventMap } from '../../types'; import { Series } from '../Series'; import { Scale } from '../../scales'; import { ChartSeriesRenderer } from '../../renderer/ChartSeriesRenderer'; import { NativeSeriesRenderData as SeriesRenderData } from '../../renderer/NativeWebGLRenderer'; import { OverlayRenderer } from '../OverlayRenderer'; import { EventEmitter } from '../EventEmitter'; import { SelectionManager } from '../selection'; /** Match series/render ids related to a hovered legend entry (incl. candlestick splits). */ export declare function matchesHoveredSeriesId(id: string, hoveredSeriesId: string): boolean; /** Move hovered series (and related ids) to the end so they paint on top. */ export declare function reorderForHoveredSeries(items: T[], hoveredSeriesId: string | null, getId: (item: T) => string): T[]; export interface RenderContext { webglCanvas: HTMLCanvasElement; overlayCanvas: HTMLCanvasElement; overlayCtx: CanvasRenderingContext2D; container: HTMLDivElement; series: Map; viewBounds: Bounds; xScale: Scale; yScales: Map; yAxisOptionsMap: Map; xAxisOptions: AxisOptions; primaryYAxisId: string; renderer: ChartSeriesRenderer; overlay: OverlayRenderer; backgroundColor: [number, number, number, number]; cursorOptions: CursorOptions | null; cursorPosition: { x: number; y: number; } | null; selectionRect: { x: number; y: number; width: number; height: number; } | null; events: EventEmitter; updateSeriesBuffer: (s: Series) => void; getPlotArea: () => PlotArea; pixelToDataX: (px: number) => number; pixelToDataY: (py: number) => number; selectionManager: SelectionManager; hoveredSeriesId: string | null; layout: import('../layout').LayoutOptions; latexAPI?: any; getBusinessDayMapping?: () => import('../time/TimeScale').BusinessDayMapping | null; getAlerts?: () => Array<{ price: number; direction?: string; }>; getActiveRenderer?: () => "webgl" | "webgpu" | "svg"; /** When true, overlay draws only interactive UI (cursor, tooltips, plugins). */ vectorOverlayOnly?: boolean; } /** Map view bounds to pixel ranges — required before SVG export / vector frame build. */ export declare function syncScalesForRender(plotArea: PlotArea, viewBounds: Bounds, xScale: Scale, yScales: Map, yAxisOptionsMap: Map, xAxisOptions: AxisOptions, primaryYAxisId: string, layout: import('../layout').LayoutOptions): void; /** * Prepare series data for WebGL rendering */ export declare function prepareSeriesData(ctx: RenderContext, plotArea: PlotArea): SeriesRenderData[]; /** * Render overlay elements (axes, grid, annotations, etc.) */ export declare function renderOverlay(ctx: RenderContext, plotArea: PlotArea, primaryYScale: Scale): void;