import type { AgColumn, BeanCollection, IAggFunc, PartialCellRange, SortOption } from 'ag-grid-community';
import { BeanStub } from 'ag-grid-community';
import type { ColState } from '../model/chartDataModel';
export interface ChartDatasourceParams {
    dimensionCols: ColState[];
    grouping: boolean;
    pivoting: boolean;
    crossFiltering: boolean;
    crossFilteringSort: SortOption[] | boolean;
    valueCols: AgColumn[];
    startRow: number;
    endRow: number;
    isScatter: boolean;
    aggFunc?: string | IAggFunc;
    referenceCellRange?: PartialCellRange;
    /** Used for statistical charts */
    combineGroupValues?: boolean;
}
interface IData {
    chartData: any[];
    colNames: {
        [key: string]: string[];
    };
    groupChartData?: any[];
}
export interface ChartValueWrapper<T = any> {
    value: T;
    id: number;
    toString: () => string;
}
export declare class ChartDatasource extends BeanStub {
    private gridRowModel;
    private pivotResultCols?;
    private valueSvc;
    private colModel;
    private rowNodeSorter?;
    private sortSvc?;
    wireBeans(beans: BeanCollection): void;
    getData(params: ChartDatasourceParams): IData;
    private extractRowsFromGridRowModel;
    private aggregateRowsByDimension;
    private updatePivotKeysForSSRM;
    private extractPivotKeySeparator;
    private getGroupLabels;
    /** cross filtering only */
    private getFilteredRowNodes;
    /** cross filtering only */
    private getAllRowNodes;
}
export {};
