import * as React from "react";
import { AFM, Execution, VisualizationObject, VisualizationClass } from "@gooddata/typings";
import { IDrillableItem } from "../../interfaces/DrillEvents";
import { DataLayer } from "@gooddata/gooddata-js";
import * as VisEvents from "../../interfaces/Events";
import { VisualizationEnvironment } from "../../components/uri/Visualization";
import { ILocale, IVisCallbacks, IReferencePoint, IFeatureFlags, IVisualizationPropertiesWrapper, IBucketItem, IGdcConfig, IReferences } from "../interfaces/Visualization";
export interface IBaseVisualizationProps extends IVisCallbacks {
    projectId: string;
    mdObject: VisualizationObject.IVisualizationObjectContent;
    config?: IGdcConfig;
    visualizationClass: VisualizationClass.IVisualizationClass;
    dataSource: DataLayer.DataSource.IDataSource<Execution.IExecutionResponses>;
    resultSpec?: AFM.IResultSpec;
    environment?: VisualizationEnvironment;
    stickyHeaderOffset?: number;
    width?: number;
    height?: number;
    locale?: ILocale;
    drillableItems: IDrillableItem[];
    totalsEditAllowed?: boolean;
    featureFlags?: IFeatureFlags;
    visualizationsCatalog?: object;
    newDerivedBucketItems?: IBucketItem[];
    visualizationProperties?: IVisualizationPropertiesWrapper;
    references?: IReferences;
    referencePoint?: IReferencePoint;
    onError: VisEvents.OnError;
    onExportReady: VisEvents.OnExportReady;
    onLoadingChanged: VisEvents.OnLoadingChanged;
    isMdObjectValid?: boolean;
    onExtendedReferencePointChanged?(): void;
    onNewDerivedBucketItemsPlaced?(): void;
}
export declare class BaseVisualization extends React.PureComponent<IBaseVisualizationProps, null> {
    static defaultProps: Partial<IBaseVisualizationProps>;
    private componentId;
    private visualization;
    constructor(props: IBaseVisualizationProps);
    componentWillUnmount(): void;
    componentWillReceiveProps(nextProps: IBaseVisualizationProps): void;
    componentDidMount(): void;
    componentDidUpdate(): void;
    render(): JSX.Element;
    private getVisualizationClassName;
    private getConfigPanelClassName;
    private getClassName;
    private setupVisualization;
    private updateVisualization;
    private triggerPlaceNewDerivedBucketItems;
    private triggerExtendedReferencePointChanged;
    private bucketReferencePointHasChanged;
}
