/**
 * Defines which Columns in a Layout display Aggregated values when Row-Grouped
 */
import { PivotTotalPosition } from '../LayoutState';
export type AggregationColumnValue = string | true | WeightedAverageAggregation;
/**
 * Defines an Aggregated Column in a Table Layout
 */
export type TableAggregationColumns = {
    /**
     * The Column being Aggretated
     */
    ColumnId: string;
    /**
     * The type of Aggregation
     */
    AggFunc: AggregationColumnValue;
}[];
/**
 * Defines an Aggregated Column in a Pivot Layout
 */
export type PivotAggregationColumns = {
    /**
     * Column which is aggregated
     */
    ColumnId: string;
    /**
     * Aggregation function to apply to the column
     */
    AggFunc: AggregationColumnValue;
    /**
     * Whether to show the total for this column; it can be also customized for specific Pivot Columns
     */
    Total?: PivotTotalPosition | {
        PivotColumnId: string;
        ShowTotal?: PivotTotalPosition;
    }[];
}[];
export declare const WEIGHTED_AVERAGE_AGG_FN_NAME = "weightedAvg";
export declare const ONLY_AGG_FN_NAME = "only";
/**
 * Defines a Weighted Average Agg
 */
export interface WeightedAverageAggregation {
    /**
     * Type is always 'weightedAverage'
     */
    type: 'weightedAverage';
    /**
     * Column which is weighted
     */
    weightedColumnId: string;
}
export declare const isWeightedAverageAggFuncName: (aggFunc: string) => aggFunc is "weightedAvg";
export declare const isWeightedAverageAggregation: (aggFunc: TableAggregationColumns[0]["AggFunc"]) => aggFunc is WeightedAverageAggregation;
export declare const getAggFuncName: (aggFunc: TableAggregationColumns[0]["AggFunc"]) => string | true;
