import * as React from "react";
import { IHeaderPredicate } from "../../interfaces/HeaderPredicate";
import { IChartConfig } from "../../interfaces/Config";
import { OnFiredDrillEvent, OnDrill } from "../../interfaces/Events";
import { Execution } from "@gooddata/typings";
import { IDrillableItem } from "../../interfaces/DrillEvents";
import { IExecutionRequest } from "./chart/ChartTransformation";
export interface IVisualizationProps {
    height: number;
    width: number;
    config: IChartConfig;
    numericSymbols?: string[];
    executionRequest: IExecutionRequest;
    executionResponse: Execution.IExecutionResponse;
    executionResult: Execution.IExecutionResult;
    drillableItems: Array<IDrillableItem | IHeaderPredicate>;
    locale?: string;
    onFiredDrillEvent?: OnFiredDrillEvent;
    onDrill?: OnDrill;
    afterRender?: () => void;
    onDataTooLarge(): void;
    onNegativeValues(): void;
    onLegendReady(): void;
    pushData?(data: any): void;
}
export declare class Visualization extends React.Component<IVisualizationProps> {
    static defaultProps: {
        locale: string;
        numericSymbols: string[];
        onFiredDrillEvent: () => boolean;
        onDrill: (...args: any[]) => void;
        afterRender: (...args: any[]) => void;
    };
    constructor(props: IVisualizationProps);
    componentWillReceiveProps(nextProps: IVisualizationProps): void;
    shouldComponentUpdate(nextProps: IVisualizationProps): boolean;
    setNumericSymbols(props: IVisualizationProps): void;
    render(): JSX.Element;
}
