import Chart from 'chart.js';
export interface IChartConfiguration extends Chart.ChartConfiguration {
}
export interface IChartOptions extends Chart.ChartOptions {
}
export interface IChartDataSets extends Chart.ChartDataSets {
}
export declare enum ChartType {
    Pie = "Pie",
    Doughnut = "Doughnut",
    Rich = "Rich"
}
export declare enum DimensionType {
    Bar = "bar",
    Line = "line",
    Area = "area"
}
interface IChartDefinitionCommonProps<T> {
    chartOnly?: boolean;
    title?: string;
    xs: Array<keyof T & string>;
}
export interface IPieLikeChartDefinition<T> extends IChartDefinitionCommonProps<T> {
    type: ChartType.Pie | ChartType.Doughnut;
    y: keyof T & string;
}
export interface IChartDimension<T> {
    type: DimensionType;
    y: keyof T & string;
    secondaryYAxis: boolean;
}
export interface IRichChartDefinition<T> extends IChartDefinitionCommonProps<T> {
    horizontal: boolean;
    stacked: boolean;
    type: ChartType.Rich;
    ys: Array<IChartDimension<T>>;
}
export declare type ChartDefinition<T> = IPieLikeChartDefinition<T> | IRichChartDefinition<T>;
export declare const serializeChartDefinition: <T>(chartDefinition: ChartDefinition<T>) => Map<string, string>;
export declare const deserializeChartDefinition: <T>(map: Map<string, string>) => ChartDefinition<T>;
export {};
