/// <reference types="lodash" />
import { IChartDataset } from '@qn-pandora/app-sdk';
import Store from '../../../stores/store';
import { IChartContainerService } from '../../../services/chart-container';
import ChartStyleService from '../../../base-pandora-visualization/services/chart-style/charts/base';
import { IAnalysisService } from '../../../base-pandora-visualization/services';
import { ISearchConditionService } from '../../../services';
import { EThemeTypes, TThemeOption } from '../../../constants';
import { DrillDownType } from '../../../constants/drill-down';
import { IClickPosition } from '../../../constants/common-action';
import { ChartDrillDownService } from '../../../services/chart-drill-down';
import { ChartCommonActionService } from '../../../services/chart-common-action';
import ChartActionService from '../../../services/chart-action';
import { IBaseAnalysisChartsProps } from '../constants/model';
export interface IOnEvents extends IKeyValues<(e: any) => void> {
}
/**
 * 所有图表的基础Store
 */
export default abstract class BaseChartStore<T extends ChartStyleService = ChartStyleService> extends Store {
    abstract chartDataset: IChartDataset;
    onEvents: IOnEvents;
    echartInst: any;
    chartWidth: number;
    chartHeight: number;
    chartStyleService: T;
    chartContainerService: IChartContainerService;
    position: IClickPosition;
    getProps: () => IBaseAnalysisChartsProps;
    searchConditionService: ISearchConditionService;
    analysisServices: IAnalysisService;
    chartActionService?: ChartActionService;
    private chartConditionService;
    private _canvasCtx;
    debounceHandleClient: import("lodash").DebouncedFunc<(client: any) => void>;
    onBrushAction?: (params: any) => void;
    onLegendSelectChangedAction?: (params: any) => void;
    get isLowPerfDevice(): boolean;
    get actionEnable(): boolean | undefined;
    get drillDownType(): DrillDownType | undefined;
    get searchTime(): import("../../../services").ITimeRange;
    get dataset(): IChartDataset;
    get originDataset(): IChartDataset;
    get fields(): import("@qn-pandora/app-sdk").IChartField[];
    get rows(): import("@qn-pandora/app-sdk").TChartFieldDataItem[][];
    get hasData(): number;
    get theme(): EThemeTypes;
    get themeOption(): TThemeOption;
    get chartCanClick(): boolean;
    setPosition(position: IClickPosition): void;
    getCanvasCtx(): any;
    measureText(txt: string): any;
    handleChartClient(client: any): void;
    setChartWidth(width: number): void;
    setChartHeight(height: number): void;
    setEchartInst(echart: any): void;
    onChartReadyCallback(echart: any): void;
    onAction<T>(eventParams: T, ChartDrillService: new (type: DrillDownType) => ChartDrillDownService<T>, ChartCommonActionService: new () => ChartCommonActionService): Promise<void>;
    onCommonAction<T>(eventParams: T, ChartCommonActionService: new () => ChartCommonActionService): Promise<void>;
    onDrillDown<T>(eventParams: T, ChartDrillService: new (type: DrillDownType) => ChartDrillDownService<T>): Promise<void>;
    getCurrentDomRect(): DOMRect | null;
    constructor(getProps: () => IBaseAnalysisChartsProps);
}
