import { DashboardDataResponse } from '../../../types/Metrics';
import { DashboardVisualisationDataSet, VisualisationDefinitionKey, ChartMeasure } from '../../_dashboards/dashboard-visualisation/types';
import { UnitType } from '../../_dashboards/dashboard-visualisation/Validate';
import ChartColoursHelper from './ChartColours';
import ChartLabelsHelper from './ChartLabels';
declare class Chart {
    labels: string[];
    datasets: DashboardVisualisationDataSet[];
    unit: UnitType | undefined;
    responseData: DashboardDataResponse[];
    backgroundColor: string[][];
    borderWidth: number[];
    borderColor: string[][];
    hexColours: string[];
    config: import("./chart-config").ChartOptionsType;
    private xAxisColumn;
    private yAxisColumn;
    private groupedData;
    chartColoursHelper: ChartColoursHelper;
    chartLabelsHelper: ChartLabelsHelper;
    withData: (responseData: DashboardDataResponse[]) => this;
    initUnit: (measures: ChartMeasure[]) => void;
    initHelpers: () => void;
    /**
     * Creates chart.js datasets where:
     * - where each row is a dataset
     * - each column name is an x axis label
     *
     * @param {ChartMeasure[]} measures
     * @param {VisualisationDefinitionKey[]} keys
     * @memberof Chart
     */
    createDatasets: (measures: ChartMeasure[], keys: VisualisationDefinitionKey[]) => void;
    /**
     * Creates chart.js datasets where:
     * - ecah column is a dataset
     * - each value in a column is an x axis label
     *
     * @param {ChartMeasure[]} measures
     * @param {VisualisationDefinitionKey[]} keys
     * @memberof Chart
     */
    createListDatasets: (measures: ChartMeasure[], keys: VisualisationDefinitionKey[]) => void;
    private createDatasetValues;
    private setStyles;
    setScales: (args?: {
        label?: string;
        horizontal?: boolean | undefined;
    }) => void;
}
export { Chart };
export default Chart;
