import { ChartOptions, AxisOptions } from '../../types'; import { Scale } from '../../scales'; import { ChartTheme } from '../../theme'; import { LayoutOptions } from '../layout'; export interface SetupResult { theme: ChartTheme; backgroundColor: [number, number, number, number]; plotAreaColor: [number, number, number, number]; showLegend: boolean; showControls: boolean; autoScroll: boolean; showStatistics: boolean; dpr: number; xAxisOptions: AxisOptions; xScale: Scale; yAxisOptionsMap: Map; yScales: Map; primaryYAxisId: string; webglCanvas: HTMLCanvasElement; overlayCanvas: HTMLCanvasElement; overlayCtx: CanvasRenderingContext2D; svgRoot: SVGSVGElement | null; layout: LayoutOptions; } /** * Initialize chart configuration from options */ export declare function initializeChart(container: HTMLDivElement, options: ChartOptions): SetupResult; /** * Create a canvas element */ export declare function createCanvas(type: "webgl" | "overlay"): HTMLCanvasElement; /** * Calculate the plot area based on container size and margins */ export declare function getPlotArea(container: HTMLDivElement, yAxisOptionsMap: Map, layout?: LayoutOptions): { x: number; y: number; width: number; height: number; }; /** * Get axes layout for interaction manager */ export declare function getAxesLayout(yAxisOptionsMap: Map): Array<{ id: string; position: 'left' | 'right'; offset: number; }>; /** * Resize canvases to match container */ export declare function resizeCanvases(container: HTMLDivElement, webglCanvas: HTMLCanvasElement, overlayCanvas: HTMLCanvasElement, overlayCtx: CanvasRenderingContext2D, dpr: number): boolean; export declare function pixelToDataX(px: number, plotArea: { x: number; width: number; }, viewBounds: { xMin: number; xMax: number; }, invertAxis?: boolean): number; export declare function pixelToDataY(py: number, plotArea: { y: number; height: number; }, viewBounds: { yMin: number; yMax: number; }, invertAxis?: boolean): number;