import Dygraph from "dygraphs";
import { ViewConfig, ViewOptions } from "./metadata/configurations";
import { EventHandlers } from './metadata/graphoptions';
import { GraphOperator } from "./widgets/GraphRenderer";
export default class FgpGraph {
    graphContainer: HTMLElement;
    body: HTMLElement;
    graph: Dygraph;
    private rangeBarGraph;
    viewConfigs: Array<ViewConfig>;
    private parentDom;
    syncLegend: boolean;
    intervalLabelsArea: HTMLElement;
    children: Array<FgpGraph>;
    currentDateWindow: number[];
    id: string;
    operator: GraphOperator;
    eventListeners?: EventHandlers;
    private graphDateWindow;
    private readonly syncViews;
    /**
     *Creates an instance of FgpGraph.
     * @param {HTMLElement} dom
     * graph container
     * @param {Array<ViewConfig>} viewConfigs
     * graph configuration
     * @memberof FgpGraph
     */
    constructor(dom: HTMLElement, viewConfigs: Array<ViewConfig>, eventHandlers?: EventHandlers, syncViews?: boolean);
    /**
     *update datewindow for children graphs
     * @param datewindow
     * @param currentView
     * @private
     * @memberof FgpGraph
     */
    private dateWindowHandler;
    /**
     * func for switching view
     * @param view
     */
    changeView: (view: string) => void;
    /**
     * init graph with configuration
     *
     * @private
     * @memberof FgpGraph
     */
    initGraph: (ready?: ((g: FgpGraph) => void) | undefined, needSync?: boolean | undefined) => false | undefined;
    /**
     *update currrent graph datewindow
     * @param datewindow
     * @memberof FgpGraph
     */
    updateDatewinow: (datewindow: [number, number]) => void;
    updateDatewinowInside: (datewindow: [number, number], forceReload?: boolean | undefined) => void;
    /**
     *bind children graphs
     * @param graphs
     * children graphs
     * @memberof FgpGraph
     */
    setChildren: (graphs: FgpGraph[]) => void;
    /**
     * highlight line on graph
     * @param series
     * name of lines
     * @param duration
     * unhighlight after <duration> seconds  0 means highlight forever
     *
     * @memberof FgpGraph
     */
    highlightSeries: (series: string[], duration: number, type?: string | undefined) => void;
    /**
     * reload data for graph. base on series not changed!
     */
    reloadData: () => void;
    /**
     * do it later
     * @param config
     */
    updateConfig: (config: ViewOptions) => string;
    /**
     * clear graph
     */
    clear: () => void;
}
