import { ChartType } from './chart-style';
import { IBucket, IMetric } from './action-event';
export interface IDrillDownSplConfig {
    spl: string;
    chartType: ChartType | string;
}
export declare enum DrillDownType {
    ToSearchAuto = "ToSearchAuto",
    ToSearchCustom = "ToSearchCustom",
    ToDashboard = "ToDashboard",
    ToReport = "ToReport",
    ToCustomLink = "ToCustomLink",
    None = "none",
    ToChartCustom = "ToChartCustom"
}
export interface IToDrillEventOfType {
    [DrillDownType.ToSearchAuto]: {
        buckets: IBucket[];
        metrics?: IMetric[];
    };
    [DrillDownType.ToSearchCustom]: {};
    [DrillDownType.ToDashboard]: {};
    [DrillDownType.ToReport]: {};
    [DrillDownType.ToCustomLink]: {};
    [DrillDownType.None]: {};
    [DrillDownType.ToChartCustom]: {};
}
export interface IDrillDownConfigOfType {
    [DrillDownType.ToSearchAuto]: {};
    [DrillDownType.ToSearchCustom]: {
        spl: string;
    };
    [DrillDownType.ToDashboard]: {
        dashboardId: string;
    };
    [DrillDownType.ToReport]: {
        reportId: string;
    };
    [DrillDownType.ToCustomLink]: {
        url: {
            encode?: boolean;
            text: string;
        };
    };
    [DrillDownType.None]: {};
    [DrillDownType.ToChartCustom]: {
        drillDownSpls: IDrillDownSplConfig[];
    };
}
export interface IDrillDownConfig<T extends DrillDownType = any> {
    isNewTab?: boolean;
    type: DrillDownType;
    config?: IDrillDownConfigOfType[T];
}
export interface IDrillDownToken {
    row: IKeyValues;
    click: {
        name: string;
        value: any;
        name1: string;
        value1: any;
    };
}
export interface IDrillDownOptions {
    tokens: IDrillDownToken[];
}
export interface IChartCustomDrillDownOptions extends IDrillDownOptions {
    style?: any;
    isNewDrill?: boolean;
}
export interface IDrillDownOptionsOfType {
    [DrillDownType.ToSearchAuto]: IDrillDownOptions;
    [DrillDownType.ToSearchCustom]: IDrillDownOptions;
    [DrillDownType.ToDashboard]: IDrillDownOptions;
    [DrillDownType.ToReport]: IDrillDownOptions;
    [DrillDownType.ToCustomLink]: IDrillDownOptions;
    [DrillDownType.None]: IDrillDownOptions;
    [DrillDownType.ToChartCustom]: IChartCustomDrillDownOptions;
}
