import type { ChartInteractionController, ChartLayerRenderer, ChartRendererHostOptions, ChartSurface, UniversalChartLayerRenderer } from './dom-types.js'; import type { ChartRuntime, ChartScene, ChartValue, RenderChartOptions } from './types.js'; export interface CanvasChartRendererOptions { pixelRatio?: number; } export interface CanvasChartSurface extends ChartSurface { readonly element: HTMLDivElement; /** Background plus ordinary scene, excluding transient focus presentation. */ readonly canvas: HTMLCanvasElement; /** Live background layer beneath focus underlays. */ readonly backgroundCanvas: HTMLCanvasElement; readonly focusUnderCanvas: HTMLCanvasElement; /** Live ordinary-scene layer above focus underlays. */ readonly sceneCanvas: HTMLCanvasElement; readonly focusCanvas: HTMLCanvasElement; } export interface CanvasChartRenderer extends ChartLayerRenderer { mount: (container: HTMLElement, requestRender: (force?: boolean) => void) => CanvasChartSurface; } interface UniversalCanvasChartRenderer extends UniversalChartLayerRenderer { prerender: (scene: ChartScene, options: RenderChartOptions) => string; mount: (container: HTMLElement, requestRender: (force?: boolean) => void) => CanvasChartSurface; } type DistributiveOmit = TValue extends unknown ? Omit : never; export type CanvasChartHostOptions = DistributiveOmit, 'renderer'>; export interface CanvasChartHost { readonly interaction: ChartInteractionController; update: (options: CanvasChartHostOptions) => void; getScene: () => ChartScene; destroy: () => void; } export declare function createCanvasChartRenderer(rendererOptions?: CanvasChartRendererOptions): CanvasChartRenderer; export declare const canvasChartRenderer: UniversalCanvasChartRenderer; export declare function mountCanvasChart(container: HTMLElement, initialOptions: CanvasChartHostOptions, runtime?: ChartRuntime): CanvasChartHost; export {};