import { AFM, Execution, VisualizationObject } from "@gooddata/typings";
import * as React from "react";
import { IChartConfig, IChartOptions } from "../../../interfaces/Config";
import { IDrillableItem } from "../../../interfaces/DrillEvents";
import { OnFiredDrillEvent, OnLegendReady, OnDrill } from "../../../interfaces/Events";
import { IHeaderPredicate } from "../../../interfaces/HeaderPredicate";
import { ILegendOptions } from "../typings/legend";
import { IHighChartsRendererProps } from "./HighChartsRenderer";
export declare function renderHighCharts(props: IHighChartsRendererProps): JSX.Element;
export interface IExecutionRequest {
    afm: AFM.IAfm;
    resultSpec: AFM.IResultSpec;
}
export interface IChartTransformationProps {
    config: IChartConfig;
    drillableItems: Array<IDrillableItem | IHeaderPredicate>;
    height: number;
    width: number;
    locale: string;
    executionRequest: IExecutionRequest;
    executionResponse: Execution.IExecutionResponse;
    executionResult: Execution.IExecutionResult;
    mdObject?: VisualizationObject.IVisualizationObjectContent;
    onFiredDrillEvent: OnFiredDrillEvent;
    onDrill?: OnDrill;
    onLegendReady: OnLegendReady;
    afterRender(): void;
    pushData?(data: any): void;
    renderer(arg: IHighChartsRendererProps): JSX.Element;
    onDataTooLarge(chartOptions: any): void;
    onNegativeValues(chartOptions: any): void;
}
export interface IChartTransformationState {
    dataTooLarge: boolean;
    hasNegativeValue: boolean;
}
export default class ChartTransformation extends React.Component<IChartTransformationProps, IChartTransformationState> {
    static defaultProps: {
        drillableItems: IDrillableItem[];
        renderer: typeof renderHighCharts;
        afterRender: (...args: any[]) => void;
        onNegativeValues: any;
        onFiredDrillEvent: () => boolean;
        pushData: (...args: any[]) => void;
        onLegendReady: (...args: any[]) => void;
        height: number;
        width: number;
    };
    private chartOptions;
    private legendOptions;
    componentWillMount(): void;
    componentWillReceiveProps(nextProps: IChartTransformationProps): void;
    getRendererProps(): {
        chartOptions: IChartOptions;
        hcOptions: any;
        height: number;
        width: number;
        afterRender: () => void;
        onLegendReady: OnLegendReady;
        locale: string;
        legend: ILegendOptions;
    };
    assignChartOptions(props: IChartTransformationProps): IChartOptions;
    render(): JSX.Element;
    private getChartConfig;
}
