import { IWebServer } from "./web-server";
import { IChartDef } from ".";
/**
 * Interface to the chart renderer.
 * This component is responsible for turning data and a chart definition into a chart.
 */
export interface IChartRenderer {
    /**
     * Start the chart renderer.
     * For performance reasons the chart render can be reused to render multiple charts.
     */
    start(showBrowser: boolean): void;
    /**
     * Finish the chart renderer.
     */
    end(): Promise<void>;
    /**
     * Create a chart from data and a chart definition and render it to an image file.
     */
    renderImage(chartDef: IChartDef, outputFilePath: string): Promise<void>;
}
/**
 * This component is responsible for turning data and a chart definition into a chart.
 */
export declare class ChartRenderer implements IChartRenderer {
    /**
     * Nightmare headless browser instance.
     */
    nightmare: any | null;
    /**
     * Interface to the web-server that serves the interactive chart.
     */
    webServer: IWebServer | null;
    /**
     * Start the chart renderer.
     * For performance reasons the chart render can be reused to render multiple charts.
     */
    start(showBrowser: boolean): Promise<void>;
    /**
     * Finish the chart renderer.
     */
    end(): Promise<void>;
    /**
     * Load the chart into the Electron browser.
     */
    loadChart(chartDef: IChartDef): Promise<void>;
    /**
     * Create a chart from data and a chart definition and render it to an image file.
     */
    renderImage(chartDef: IChartDef, outputFilePath: string): Promise<void>;
}
