import type { AgCartesianAxisType } from 'ag-charts-types';
import type { AgColumn, BeanCollection, CellRange, ChartType, IAggFunc, PartialCellRange, SeriesChartType, SeriesGroupType, SortModelItem } from 'ag-grid-community';
import { BeanStub } from 'ag-grid-community';
import { ComboChartModel } from './comboChartModel';
export interface ColState {
    column?: AgColumn;
    colId: string;
    displayName: string | null;
    selected?: boolean;
    order: number;
}
export interface ChartModelParams {
    chartId: string;
    pivotChart?: boolean;
    chartType: ChartType;
    chartThemeName: string;
    switchCategorySeries?: boolean;
    aggFunc?: string | IAggFunc;
    cellRange: PartialCellRange;
    suppressChartRanges?: boolean;
    unlinkChart?: boolean;
    crossFiltering?: boolean;
    crossFilteringSort?: SortModelItem[] | boolean;
    seriesChartTypes?: SeriesChartType[];
    seriesGroupType?: SeriesGroupType;
    useGroupColumnAsCategory?: boolean;
}
export declare const DEFAULT_CHART_CATEGORY = "AG-GRID-DEFAULT-CATEGORY";
export declare class ChartDataModel extends BeanStub {
    private rangeSvc;
    private chartTranslation;
    wireBeans(beans: BeanCollection): void;
    readonly params: ChartModelParams;
    readonly chartId: string;
    suppressChartRanges: boolean;
    switchCategorySeries: boolean;
    aggFunc?: string | IAggFunc;
    pivotChart: boolean;
    categoryAxisType?: AgCartesianAxisType;
    chartType: ChartType;
    chartThemeName: string;
    unlinked: boolean;
    chartData: any[];
    groupChartData: any[] | undefined;
    valueColState: ColState[];
    dimensionColState: ColState[];
    colNames: {
        [p: string]: string[];
    };
    valueCellRange?: CellRange;
    dimensionCellRange?: CellRange;
    comboChartModel: ComboChartModel;
    private chartColSvc;
    private datasource;
    referenceCellRange: PartialCellRange;
    suppliedCellRange: PartialCellRange;
    crossFiltering: boolean;
    crossFilteringSort: SortModelItem[] | boolean;
    private grouping;
    seriesGroupType?: SeriesGroupType;
    useGroupColumnAsCategory: boolean;
    constructor(params: ChartModelParams);
    private setParams;
    postConstruct(): void;
    updateModel(params: ChartModelParams): void;
    updateCellRanges(params?: {
        updatedColState?: ColState;
        resetOrder?: boolean;
        maintainColState?: boolean;
        setColsFromRange?: boolean;
    }): void;
    updateData(): void;
    isGrouping(): boolean;
    private getSelectedValueCols;
    getSelectedDimensions(): ColState[];
    getValueColState(): ColState[];
    private displayNameMapper;
    private getPivotDisplayName;
    private getColDisplayName;
    isPivotMode(): boolean;
    getChartDataType(colId: string): string | undefined;
    getConvertTime(colId: string): ((date: string | undefined) => Date | undefined) | undefined;
    private isPivotActive;
    private createCellRange;
    private getAllColumnsFromRanges;
    private getRowIndexes;
    private resetColumnState;
    private updateColumnState;
    private reorderColState;
    private setDimensionCellRange;
    private setValueCellRange;
    resetCellRanges(dimension: boolean, value: boolean): void;
    private updateSelectedDimensions;
    private syncDimensionCellRange;
    isComboChart(chartType?: ChartType): boolean;
    private getCrossFilteringSort;
}
