/// <reference types="hoist-non-react-statics" />
import React from 'react';
import PropTypes from 'prop-types';
import { ESearchFormat } from '@qn-pandora/app-sdk';
import IChartContainerService from '../../services/chart-container';
import { ChartType, EThemeTypes } from '../../constants';
import BasicComponent from '../../components/Base/BasicComponent';
import { VisualizationBaseConstructor } from '../../components/Charts/CustomChart';
import { IAnalysisChartsProps } from '../../components/Charts';
import { TBrushAction, TLegendSelecteChangedAction } from '../../components/Charts/constants/model';
import { TypeOfChart } from '../../modules/base-dashboard/constants';
import { ITimeRange } from '../../services/search-condition';
import ChartWrapperStore from './store';
import ActionBar from './ActionBar';
export { TBrushAction };
export interface IChartWrapperProps {
    id?: string;
    theme?: EThemeTypes;
    refresh?: number;
    search?: {
        time?: ITimeRange;
        query?: string;
        queries?: string[];
        collectSize?: number;
        format?: ESearchFormat;
    };
    title?: React.ReactNode;
    extra?: React.ReactNode;
    type?: TypeOfChart;
    chartType?: ChartType;
    chartStyle?: any;
    chartAction?: {
        drillActionConfig?: IKeyValues;
    };
    format?: ESearchFormat;
    actionbar?: React.ReactNode;
    lastRefreshTime?: number;
    chartContainerService: IChartContainerService;
    VisualizationStore?: VisualizationBaseConstructor;
    Chart?: React.ComponentClass<IAnalysisChartsProps>;
    customChartStyle?: (prefix: string) => React.ReactNode;
    enableChartAction?: boolean;
    staticPath?: string;
    hideCustomTime?: boolean;
    titleHeight?: string;
    isEditing?: boolean;
    disableDatasetReaction?: boolean;
    showLoading?: boolean;
    onBrushAction?: TBrushAction;
    onLegendSelectChangedAction?: TLegendSelecteChangedAction;
    drillDownHistoryBtn?: React.ReactNode;
}
interface IChartDiffInfo {
    theme: EThemeTypes;
    refresh: number;
    time: ITimeRange;
    query: string;
    chartType: ChartType;
    chartStyle: any;
    queries?: string[];
    chartAction?: {
        drillActionConfig?: IKeyValues;
    };
    collectSize: number;
    format?: ESearchFormat;
}
export declare class ChartWrapper extends BasicComponent<IChartWrapperProps, any> {
    static ActionBar: typeof ActionBar;
    static Title: React.ComponentClass<import("./Title").ITitleProps, any> & import("hoist-non-react-statics").NonReactStatics<(React.ComponentClass<import("./Title").ITitleProps, any> & typeof import("./Title").Title) | (React.FunctionComponent<import("./Title").ITitleProps> & typeof import("./Title").Title), {}>;
    static contextTypes: {
        getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
        replaceVariable: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static childContextTypes: {
        chartContainerService: PropTypes.Requireable<object>;
    };
    uuid: string;
    getChildContext(): {
        chartContainerService: IChartContainerService;
    };
    store: ChartWrapperStore;
    getChartDiffInfo(props: IChartWrapperProps): IChartDiffInfo;
    clearDrillDown(diffObj: IChartDiffInfo, nextDiffObj: IChartDiffInfo): void;
    handleInViewPortChange(isInViewPort: boolean): void;
    componentWillMount(): void;
    UNSAFE_componentWillReceiveProps(nextProps: IChartWrapperProps, nextContext: {
        replaceVariable: (str: string, variables?: IKeyValues) => string;
    }): void;
    componentWillUnmount(): void;
    render(): React.JSX.Element;
}
declare const _default: React.ComponentClass<IChartWrapperProps, any> & import("hoist-non-react-statics").NonReactStatics<(React.ComponentClass<IChartWrapperProps, any> & typeof ChartWrapper) | (React.FunctionComponent<IChartWrapperProps> & typeof ChartWrapper), {}>;
export default _default;
