import { EventName, SeriesCategory } from './constants'; import Chart from './core/chart'; import { DataItem, SeriesOptions } from './models'; import Painter from './painter'; import Canvas from './renderer/canvas'; export interface Renderer { id: string; chart: Chart; render: () => void; } interface AtomComponentOptions { id?: string; name?: string; chart: Chart; } export default abstract class AtomComponent implements Renderer { id: string; name: string; chart: Chart; protected painter: Painter; protected abstract seriesCategory: SeriesCategory; constructor({ id, name, chart }: AtomComponentOptions); protected $on(eventName: EventName, callback: any): void; protected $emit(eventName: EventName, ...args: any[]): void; protected get canvas(): Canvas; protected get dataset(): Array; protected get series(): Array; abstract render(): any; } export {};