import { IDrillDownToken, DrillDownType, IToDrillEventOfType } from '../../constants/drill-down';
import { ChartType } from '../../constants';
import { IChartContainerService } from '../chart-container';
import { ITimeRange } from '../search-condition';
export declare const SUPPORT_DRILL_DOWN_CHARTS: Array<ChartType | string>;
export declare const METRIC_SUPPORT_DRILL_DOWN_CHARTS: Array<ChartType | string>;
export interface IDrillDownOption<T extends DrillDownType = any> {
    chartContainerService: IChartContainerService;
    token: IDrillDownToken;
    event: IToDrillEventOfType[T];
    time?: ITimeRange;
}
export declare abstract class BaseDrillDownAction<P extends IKeyValues = any, T extends DrillDownType = any> {
    abstract setConfig(config: P): void;
    abstract onDrillDown(option: IDrillDownOption<T>): void;
}
export interface IDrillDownActionService {
    drillDownType?: DrillDownType;
    isInDrillDown?: boolean;
    clear?: () => void;
    drillDownAction?: BaseDrillDownAction;
    onDrillDown: (option: IDrillDownOption) => void;
}
