import { VegaChart } from "./chart_base"; import { type VegaLiteSpec } from "./specs"; import type { ChartTheme } from "./theme"; import type { LineChartClickEvent, LineChartConfig, SeriesPoint } from "./types"; type ClickListener = (e: LineChartClickEvent) => void; /** * Streaming line chart. Holds one `{x[], y[]}` buffer per series and pushes * cheap `view.data("table", rows)` updates on each mutation (no re-embed). The * streaming method surface (`appendPoint` / `appendPoints` / `setSeries` / * `setWindow`) is preserved verbatim from the former plotly build so consumers * like molexp's metric panes keep working unchanged. */ export declare class LineChart extends VegaChart { private config; private readonly seriesIds; private readonly buffers; private readonly seriesConfigs; private readonly clickListeners; private windowSize; constructor(container: HTMLElement, config: LineChartConfig); setSeries(id: string, points: SeriesPoint[]): Promise; appendPoint(id: string, point: SeriesPoint): Promise; appendPoints(id: string, points: SeriesPoint[]): Promise; clear(id?: string): Promise; setWindow(maxPoints: number | null): Promise; setAxisRange(axis: "x" | "y", range: [number, number] | "auto"): Promise; onPointClick(cb: ClickListener): () => void; private trim; private rows; protected datasets(): Record; protected buildSpec(theme: ChartTheme, sizeHint: { width: number; height: number; }): VegaLiteSpec; protected onDatum(datum: Record): void; } export {};