import { DateTimeFormat } from '../Field/types';
import { FormattingRuleType } from '../FormattingRule/types';
import { QueryAttributes } from '../QueryAttributes/types';
import { Report } from '../Report/types';
import { Result } from '../Result/types';
import { AdditionalFilter } from '../AdditionalFilter/types';
import { TableFieldsV2 } from '../DataTable/types';
import { Dictionary } from 'lodash';
import { MovingAverage, TrendType } from '../Trends/types';
import { DataSet } from '../DataSet/types';
import { RulesField } from '../CustomField/types';
import { GoalLineEnum } from '../enums/goalline.enum';
export declare type getNumberFormatter = (formatterId: string | undefined | null) => (number: number) => string;
export declare type FormatType = string | null;
export declare type ApproxAxisLabelCount = 'auto' | number;
export declare type ApproxAxisLabelCountWithAllOptions = ApproxAxisLabelCount | 'all70' | 'all90';
export declare type ComponentType = 'areaChart' | 'areaChartV2' | 'barChart' | 'barChartV2' | 'basicTable' | 'bubbleChart' | 'bubbleChartV2' | 'comboChart' | 'comboChartV2' | 'custom' | 'dataTable' | 'funnelChart' | 'horizontalBarChart' | 'horizontalBarChartV2' | 'lineChart' | 'lineChartV2' | 'mercatorMap' | 'pieChart' | 'progress' | 'radarChart' | 'richText' | 'scatterChart' | 'scatterChartV2' | 'singleStat' | 'sunburstChart' | 'waterfallChart';
export declare const componentTypes: string[];
export declare namespace Component {
    export type LineCurve = 'natural' | 'straight' | 'step' | 'stepBefore' | 'stepAfter' | 'dotted';
    export type AreaCurve = 'natural' | 'straight' | 'step';
    export type RawComponent = Omit<Component, 'queries' | 'results' | 'span'> & {
        colSpan?: number;
    };
    export type Tag = {
        key: string;
    };
    type BaseAttributes = {
        viewId?: string;
        dataSetId: string;
        displayTitle: string;
        displaySubject: string;
        protectedByOrganisation?: boolean;
        tags: Tag[];
    };
    type BaseQueryAttributes = QueryAttributes & {
        dataSetId: string;
    };
    export type RichTextAttributes = BaseAttributes & BaseQueryAttributes & {
        type: 'richText';
        content: object;
    };
    export type MercatorMapAttributes = BaseAttributes & {
        type: 'mercatorMap';
        measure: BaseQueryAttributes['measure'];
        dimension: BaseQueryAttributes['dimension'];
        filter: BaseQueryAttributes['filter'];
        limit: BaseQueryAttributes['limit'];
        labelFormat: FormatType;
        backgroundColor: string;
        noDataColor: string;
        maxValueColor: string;
        minValueColor: string;
        position?: {
            scale: number;
            centerX: number;
            centerY: number;
        };
    };
    export type BarChartAttributes = BaseAttributes & BaseQueryAttributes & {
        type: 'barChart';
        stacked?: boolean | '100%';
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        drilldown: QueryAttributes.Dimension[];
        legend: boolean;
        protectedFields?: ProtectedFields;
        parameters?: Parameters;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
        headline?: Headline;
        drilldownOptions: Array<DrilldownOptions> | undefined;
    };
    export type FunnelChartAttributes = BaseAttributes & BaseQueryAttributes & {
        type: 'funnelChart';
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        legend: boolean;
        labels?: boolean;
        protectedFields?: ProtectedFields;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
        headline?: Headline;
    } & AxisBounds;
    export type CustomViewAttributes = BaseAttributes & {
        type: 'custom';
        viewId: string;
        customViewId: string;
    };
    export type AxisTitles = {
        x?: string;
        y?: string;
        yDual?: string;
    };
    export type AxisBounds = {
        xAxisMin: number | null;
        xAxisMax: number | null;
        yAxisMin: number | null;
        yAxisMax: number | null;
    };
    export type DualAxisBounds = {
        yDualAxisMin: number | null;
        yDualAxisMax: number | null;
    };
    export type HeadlineFunction = 'mean' | 'sum' | 'current' | null;
    export type Headline = {
        func?: HeadlineFunction;
    };
    export type TrendsForecast = {
        type: TrendType.Forecast;
        value?: number;
    };
    export type TrendsTrend = {
        type: TrendType.Trend;
        value?: number;
    };
    export type TrendMovingAverages = {
        type: TrendType.MovingAverage;
        averages: MovingAverage[];
    };
    export type Trends = TrendsForecast | TrendsTrend | TrendMovingAverages;
    export type HorizontalBarChartAttributes = Omit<BarChartAttributes, 'type'> & {
        type: 'horizontalBarChart';
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
    };
    export type ComboChartAttributes = BaseAttributes & Omit<BaseQueryAttributes, 'measure' | 'dimension'> & {
        type: 'comboChart';
        barMeasure: QueryAttributes.Measure[];
        lineMeasure: QueryAttributes.Measure[];
        barDimension: QueryAttributes.Dimension[];
        lineDimension: QueryAttributes.Dimension[];
        stacked?: boolean | '100%';
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        legend: boolean;
        goalLines?: Array<Component.GoalLine.Rule>;
        conditionalFormattingRules?: {
            bar?: Array<ConditionalFormatting.Rule>;
            line?: Array<ConditionalFormatting.Rule>;
        };
        axisTitles?: AxisTitles;
    };
    export type ComboChartV2Attributes = BaseAttributes & Omit<BaseQueryAttributes, 'measure' | 'dimension'> & {
        type: 'comboChartV2';
        barMeasure: QueryAttributes.Measure[];
        lineMeasure: QueryAttributes.Measure[];
        barDimension: QueryAttributes.Dimension[];
        lineDimension: QueryAttributes.Dimension[];
        stacked?: false;
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCountWithAllOptions;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        approxDualYAxisLabelCount?: ApproxAxisLabelCount;
        legend: boolean;
        labels?: boolean;
        goalLines?: Array<Component.GoalLine.Rule>;
        conditionalFormattingRules?: {
            bar?: Array<ConditionalFormatting.Rule>;
            line?: Array<ConditionalFormatting.Rule>;
        };
        axisTitles?: AxisTitles;
        isDualAxisEnabled?: boolean;
        yDualAxisFormat?: FormatType;
        yDualAxisPostfix?: string;
        yDualAxisPrefix?: string;
    } & AxisBounds & DualAxisBounds;
    export type LineChartAttributes = BaseAttributes & BaseQueryAttributes & {
        type: 'lineChart';
        stacked?: boolean | '100%';
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        lineCurve: LineCurve;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        drilldown: QueryAttributes.Dimension[];
        legend: boolean;
        parameters?: Parameters;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
        headline?: Headline;
        trends?: Array<Trends>;
    };
    export type LineChartV2Attributes = BaseAttributes & BaseQueryAttributes & {
        type: 'lineChartV2';
        approxDualYAxisLabelCount?: ApproxAxisLabelCount;
        approxXAxisLabelCount: ApproxAxisLabelCountWithAllOptions;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        axisTitles?: AxisTitles;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        drilldown: QueryAttributes.Dimension[];
        goalLines?: Array<Component.GoalLine.Rule>;
        headline?: Headline;
        isDualAxisEnabled?: boolean;
        labels?: boolean;
        legend: boolean;
        lineCurve: LineCurve;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
        stacked?: boolean | '100%';
        trends?: Array<Trends>;
        xAxisFormat: FormatType;
        xAxisPostfix: string;
        xAxisPrefix: string;
        yAxisFormat: FormatType;
        yAxisPostfix: string;
        yAxisPrefix: string;
        yDualAxisFormat?: FormatType;
        yDualAxisPostfix?: string;
        yDualAxisPrefix?: string;
    } & AxisBounds & DualAxisBounds;
    export type AreaChartV2Attributes = BaseAttributes & BaseQueryAttributes & {
        type: 'areaChartV2';
        stacked: boolean;
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCountWithAllOptions;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        drilldown: QueryAttributes.Dimension[];
        legend: boolean;
        labels?: boolean;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
        headline?: Headline;
        trends?: Array<Trends>;
        lineCurve: AreaCurve;
    } & AxisBounds;
    export type BarChartV2Attributes = BaseAttributes & BaseQueryAttributes & {
        type: 'barChartV2';
        stacked?: boolean | '100%';
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCountWithAllOptions;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        legend: boolean;
        labels?: boolean;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
        headline?: Headline;
        isDualAxisEnabled?: boolean;
        yDualAxisFormat?: FormatType;
        yDualAxisPostfix?: string;
        yDualAxisPrefix?: string;
        approxDualYAxisLabelCount?: ApproxAxisLabelCount;
    } & AxisBounds & DualAxisBounds;
    export type PieChartAttributes = BaseAttributes & BaseQueryAttributes & {
        type: 'pieChart';
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        labelsAsPercentage: boolean;
        legend: boolean;
        labels?: boolean;
        labelFormat: FormatType;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
        drilldownOptions: Array<DrilldownOptions> | undefined;
    };
    export type SunburstChartAttributes = BaseAttributes & BaseQueryAttributes & {
        type: 'sunburstChart';
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        labelsAsPercentage: boolean;
        legend: boolean;
        labels?: boolean;
        labelFormat: FormatType;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
    };
    export type AreaChartAttributes = BaseAttributes & BaseQueryAttributes & {
        type: 'areaChart';
        stacked?: boolean | '100%';
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        lineCurve: LineCurve;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        drilldown: QueryAttributes.Dimension[];
        legend: boolean;
        parameters?: Parameters;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
        headline?: Headline;
    };
    export type HorizontalBarChartV2Attributes = BaseAttributes & BaseQueryAttributes & {
        type: 'horizontalBarChartV2';
        stacked?: boolean | '100%';
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        legend: boolean;
        labels?: boolean;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
        headline?: Headline;
    } & AxisBounds;
    export namespace ConditionalFormatting {
        type Rule = {
            filters: QueryAttributes['filter'];
            ruleValue: string;
            ruleType: FormattingRuleType;
            ruleValueEnd?: string | undefined;
        };
        type DisplayRule = {
            value?: string;
            type?: FormattingRuleType;
        };
    }
    export namespace GoalLine {
        type GoalLineType = GoalLineEnum.FIXED | GoalLineEnum.AVERAGE;
        type Rule = {
            value: number | string;
            strokeStyle: 'dashed' | 'solid';
            strokeWidth: number;
            color: string;
            label?: boolean;
            goalLineType?: GoalLineType;
            metricField?: string;
        };
    }
    export namespace Quadrant {
        type Rule = {
            enabled: boolean;
            labels: {
                quadrantOne?: string;
                quadrantTwo?: string;
                quadrantThree?: string;
                quadrantFour?: string;
            };
        };
    }
    export type ExportNames = {
        [resultFieldId: string]: string | undefined;
    };
    export type ProtectedFields = {
        dimension?: Array<QueryAttributes.Dimension | QueryAttributes.TimeDimension>;
        measure?: Array<QueryAttributes.Measure>;
    };
    export type HiddenField = string;
    type TableAttributes = {
        prefixes: Array<{
            field: string;
            prefix: string;
        }>;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        dateTimeFormat: DateTimeFormat;
        exportNames: ExportNames;
        numberFormat: {
            [resultFieldId: string]: string;
        };
        sizing: {
            [keyId: string]: {
                width?: number | string;
            };
        };
        freezeHeaders?: boolean;
        freezeGroupedRows?: boolean;
    };
    export type DrilldownOptions = QueryAttributes.Dimension | QueryAttributes.TimeDimension;
    export type TableDrilldown = {
        subsetDimension: string;
    };
    export type DataTableAttributes = BaseAttributes & Omit<BaseQueryAttributes, 'timeDimension'> & TableAttributes & {
        type: 'dataTable';
        summarizeKPIs?: boolean;
        visualFormatColumns?: QueryAttributes.Measure[];
        protectedFields?: ProtectedFields;
        /**
         * @deprecated
         */
        timeDimension?: BaseQueryAttributes['timeDimension'];
        tableDrilldown: TableDrilldown[];
        hiddenFields?: HiddenField[];
        parametersV2: ParametersV2 | undefined;
    };
    export type BasicTableAttributes = BaseAttributes & BaseQueryAttributes & TableAttributes & {
        type: 'basicTable';
        protectedFields?: Omit<ProtectedFields, 'dimension'>;
        hiddenFields?: HiddenField[];
    };
    export type SingleStatDirectionOptions = 'horizontal' | 'vertical';
    export type SingleStatAttributes = BaseAttributes & Omit<BaseQueryAttributes, 'dimension' | 'timeDimension' | 'order'> & {
        type: 'singleStat';
        prefixes: {
            [fieldIdAndAggregate: string]: string;
        };
        postfixes: {
            [fieldIdAndAggregate: string]: string;
        };
        formatter: {
            [fieldIdAndAggregate: string]: string;
        };
        fontSize: string;
        direction?: SingleStatDirectionOptions;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        deltaTimeDimension: QueryAttributes.TimeDimension | null;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
    };
    export type ProgressAttributes = BaseAttributes & Omit<BaseQueryAttributes, 'dimension' | 'timeDimension' | 'order'> & {
        type: 'progress';
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        /** @deprecated parameters not enabled anyway. */
        parameters?: Parameters;
        goals?: ProgressGoal[];
        progressType?: ProgressTypes[];
        prefixes: {
            [fieldIdAndAggregate: string]: string;
        };
        postfixes: {
            [fieldIdAndAggregate: string]: string;
        };
        formatter: {
            [fieldIdAndAggregate: string]: string;
        };
    };
    export type ScatterChartAttributes = BaseAttributes & Omit<BaseQueryAttributes, 'measure'> & {
        type: 'scatterChart';
        xMeasure: QueryAttributes.Measure | null;
        yMeasure: QueryAttributes.Measure | null;
        legend: boolean;
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        goalLines?: Array<Component.GoalLine.Rule>;
        quadrants?: Component.Quadrant.Rule;
        axisTitles?: AxisTitles;
    };
    export type BubbleChartAttributes = BaseAttributes & Omit<BaseQueryAttributes, 'measure'> & {
        type: 'bubbleChart';
        xMeasure: QueryAttributes.Measure | null;
        yMeasure: QueryAttributes.Measure | null;
        zMeasure?: QueryAttributes.Measure | null;
        legend: boolean;
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
    };
    export type BubbleChartV2Attributes = BaseAttributes & BaseQueryAttributes & {
        type: 'bubbleChartV2';
        stacked?: boolean | '100%';
        zMeasure: QueryAttributes.Measure[];
        xMeasure: QueryAttributes.Measure[];
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        lineCurve: LineCurve;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        drilldown: QueryAttributes.Dimension[];
        legend: boolean;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
        headline?: Headline;
        trends?: Array<Trends>;
        quadrants?: Component.Quadrant.Rule;
    } & AxisBounds;
    export type ScatterChartV2Attributes = BaseAttributes & BaseQueryAttributes & {
        type: 'scatterChartV2';
        stacked?: boolean | '100%';
        xMeasure: QueryAttributes.Measure[];
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        lineCurve: LineCurve;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        conditionalFormattingRules: Array<ConditionalFormatting.Rule>;
        drilldown: QueryAttributes.Dimension[];
        legend: boolean;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
        goalLines?: Array<Component.GoalLine.Rule>;
        axisTitles?: AxisTitles;
        headline?: Headline;
        trends?: Array<Trends>;
        quadrants?: Component.Quadrant.Rule;
    } & AxisBounds;
    export type RadarChartAttributes = BaseAttributes & BaseQueryAttributes & {
        type: 'radarChart';
        legend: boolean;
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCount;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
    };
    export type WaterfallChartAttributes = BaseAttributes & BaseQueryAttributes & {
        type: 'waterfallChart';
        xAxisPrefix: string;
        yAxisPrefix: string;
        xAxisPostfix: string;
        yAxisPostfix: string;
        xAxisFormat: FormatType;
        yAxisFormat: FormatType;
        approxXAxisLabelCount: ApproxAxisLabelCountWithAllOptions;
        approxYAxisLabelCount: ApproxAxisLabelCount;
        legend: boolean;
        labels?: boolean;
        /** @deprecated */
        parameters?: Parameters;
        parametersV2: ParametersV2 | undefined;
        axisTitles?: AxisTitles;
        headline?: Headline;
        increaseColor: string;
        decreaseColor: string;
        comparison: RulesField | null;
    } & AxisBounds;
    export type ViewType = 'areaChart' | 'barChart' | 'basicTable' | 'bubbleChart' | 'bubbleChartV2' | 'comboChart' | 'comboChartV2' | 'custom' | 'dataTable' | 'funnelChart' | 'horizontalBarChart' | 'lineChart' | 'lineChartV2' | 'areaChartV2' | 'barChartV2' | 'mercatorMap' | 'pieChart' | 'sunburstChart' | 'progress' | 'richText' | 'scatterChart' | 'scatterChartV2' | 'singleStat' | 'waterfallChart' | 'radarChart' | 'horizontalBarChartV2';
    export type Attributes = AreaChartAttributes | BarChartAttributes | BasicTableAttributes | BubbleChartAttributes | BubbleChartV2Attributes | ComboChartAttributes | CustomViewAttributes | DataTableAttributes | FunnelChartAttributes | HorizontalBarChartAttributes | LineChartAttributes | LineChartV2Attributes | BarChartV2Attributes | AreaChartV2Attributes | MercatorMapAttributes | PieChartAttributes | SunburstChartAttributes | ProgressAttributes | RichTextAttributes | ScatterChartAttributes | ScatterChartV2Attributes | SingleStatAttributes | WaterfallChartAttributes | RadarChartAttributes | ComboChartV2Attributes | HorizontalBarChartV2Attributes;
    export interface RenderTableCell {
        viewId: string;
        type: 'basicTable' | 'dataTable';
        fields?: TableFieldsV2[];
        cell: ReturnedField | {
            grouping?: Array<ReturnedField>;
            value?: ReturnedField;
        };
    }
    type BaseOnViewClick = {
        viewId: string;
        dataSet: {
            id: DataSet['id'];
            name: DataSet['name'];
            fields: DataSet['fields'];
            description: DataSet['description'];
        };
    };
    export type ReturnedField = {
        fieldId: string;
        function: string;
        value?: string | number;
        /** @deprecated Use 'function' instead */
        aggregate: string;
    };
    export interface TableOnViewClick extends BaseOnViewClick {
        type: 'basicTable' | 'dataTable';
        fields?: {
            [key: string]: string | number;
        };
        fieldsV2?: TableFieldsV2[];
        clicked: ReturnedField | {
            grouping?: Array<ReturnedField>;
            value?: ReturnedField;
        };
    }
    export interface ChartOnViewClick extends BaseOnViewClick {
        type: 'barChart' | 'horizontalBarChart' | 'pieChart' | 'sunburstChart';
        clicked: {
            grouping?: Array<ReturnedField>;
            value?: ReturnedField;
        };
    }
    export type OnViewClick = TableOnViewClick | ChartOnViewClick;
    export type OnViewClickQuery = (queries: Partial<Omit<QueryAttributes, 'dataSetId'>>) => Promise<QueryResponse | null>;
    export type QueryResponse = {
        results: (Result | null)[] | (any[][] | null)[] | null;
    };
    export type LabelFormatOptionsValues = Dictionary<string | number | string[] | null>;
    export type LabelFormatOptions = {
        fieldId: string;
        func: string;
        type: ComponentType;
        defaultLabel: string;
        viewId: string;
        values?: LabelFormatOptionsValues;
    };
    export type ValueAliasOptions = {
        fieldId?: string;
        value: string | number | null;
        filter?: AdditionalFilter;
        dataSetId?: string;
    };
    export type Parameters = {
        measure?: ParameterMeasure;
        group?: ParameterGroup;
    };
    export type ParametersV2 = {
        fields: Array<{
            field: string;
        }>;
    };
    export type ParameterMeasure = {
        [key: string]: Array<QueryAttributes.Measure>;
    };
    export type ParameterGroup = {
        [key: string]: Array<QueryAttributes.Dimension | QueryAttributes.TimeDimension | null | undefined>;
    };
    export {};
}
/** @deprecated */
export declare namespace AddOn {
    /** @deprecated */
    namespace DateTimeFilter {
        /** @deprecated */
        type Attributes = {
            type: 'dateFilter';
            field: QueryAttributes.Field;
        };
    }
    /** @deprecated */
    namespace SelectFilter {
        /** @deprecated */
        type Attributes = {
            type: 'selectFilter';
            field: QueryAttributes.Field;
            currentValue?: any;
        };
    }
    /** @deprecated */
    type Type = 'selectFilter' | 'dateTimeFilter';
}
/** @deprecated */
export declare type AddOn = AddOn.SelectFilter.Attributes | AddOn.DateTimeFilter.Attributes;
export declare type MaybeOldComponent<Attrs = Component.Attributes> = Omit<Component<Omit<Attrs, 'addOns'> & {
    addOns: AddOn[];
}>, 'localFilters'> & {
    localFilters: {
        [key: number]: QueryAttributes.Filter;
    };
};
export declare type Component<Attrs = Component.Attributes> = {
    attributes: Attrs;
    localFilters: Array<AdditionalFilter>;
    colSpan: number;
    /** @deprecated Moved to dashboard level. */
    reports: Array<Report>;
};
export declare enum ProgressType {
    Linear = "linear",
    Circular = "circular"
}
export declare type ProgressGoal = {
    field: string;
    value: number;
};
export declare type ProgressTypes = {
    field: string;
    value: ProgressType;
};
