export interface ChartOptions { minTime?: number; maxTime?: number; attribution?: string; } export interface ChartScaleLimits { minTime: number; maxTime: number; timeScale: number; minValue: number; maxValue: number; valueScale: number; } export interface ChartSeries { data: TimeSeriesValue[]; min?: number; max?: number; unit?: string; formatter?: (value: number) => string; } export type TimeSeriesValue = [ ts: number, v: number ]; export declare class Chart { protected strokeWidth: number; protected fontSizePx: number; protected el: SVGElement; protected series: ChartSeries[]; protected options: ChartOptions; protected width: number; protected height: number; protected plotHeight: number; protected plotWidth: number; protected limits?: ChartScaleLimits; protected plotColor: string; protected labelBg: string; protected labelBgWidth: string; protected attribution: string; protected styles: { 'font-family': string; 'font-size': string; display: string; margin: string; 'max-width': string; }; constructor(el: HTMLElement, series: ChartSeries[], options?: ChartOptions); getLimits(): ChartScaleLimits; getHorizontalGridlines(): SVGElement[]; getTimeScale(): SVGElement[]; render(): void; plotLastValue(): void; plotData(): void; protected createLabel(x: number, y: number, text: string, anchor?: string): SVGElement[]; protected createLargeLabel(x: number, y: number, text: string, anchor?: string): SVGElement[]; } export declare const getLimits: (data: TimeSeriesValue[]) => { minTime: number; maxTime: number; minValue: number; maxValue: number; }; export declare const getInterval: (range: number, maxDivisions: number) => number[];