import { BaseContext } from '../../../types';
import { AdaptableColumn } from '../../types';
import { SelectedCellInfo } from '../Selection/SelectedCellInfo';
/**
 * Defines the Summary operations which AdapTable provides for Selected Numeric Cells
 */
export interface CellSummmaryInfo {
    Sum: number | undefined;
    Average: number | undefined;
    Median: number | undefined;
    Mode: number | undefined;
    Distinct: number | undefined;
    Max: number | undefined;
    Min: number | undefined;
    Count: number | undefined;
    Only: string | undefined;
    Std_Deviation: number | undefined;
    [key: string]: any;
}
/**
 * Defines a Custom Cell Summary operation provided by a user
 */
export interface CustomCellSummaryOperation<TData = any> {
    /**
     * Name of the Operation - will be displayed in the Cell Summary components
     */
    operationName: string;
    /**
     * Function to run when a summary result is required
     */
    operationFunction: (operationContext: CustomCellSummaryOperationContext<TData>) => any;
}
/**
 * Context provided to a custom Cell Summary Operation function
 */
export interface CustomCellSummaryOperationContext<TData = any> extends BaseContext {
    /**
     * Currently selected cells
     */
    selectedCellInfo: SelectedCellInfo<TData>;
    /**
     * Currently selected Column
     */
    selectedColumn: AdaptableColumn;
}
