import { OnDestroy, DoCheck, NgZone } from '@angular/core';
import * as Chart from 'chart.js';
export declare type ColorsForType = 'auto' | 'series' | 'data' | 'none';
export declare type LegendType = Chart.ChartLegendOptions | 'auto' | boolean | Chart.PositionType;
export declare type ShowPercentageType = boolean | 'only';
export declare class ChartComponent implements OnDestroy, DoCheck {
    private _zone;
    private _config;
    private _prevConfig;
    private _params;
    private _prevParams;
    private _chart;
    private _debounceTimer;
    private _wndEvSubs;
    private _resized;
    private _chartContainer;
    constructor(_zone: NgZone);
    /**
     * An array of strings, corresponding to Chart.ChartConfiguration.data.labels
     * @property
     */
    labels: string[];
    /**
     * The chart type, corresponding to Chart.ChartConfiguration.type
     * @default 'bar'
     * @property
     */
    type: string;
    /**
     * An array of Chart.ChartDataSets, corresponding to Chart.ChartConfiguration.data.datasets
     * @property
     */
    datasets: Chart.ChartDataSets[];
    /**
     * An array of strings in hex, rgb, or rgba format, to define the base colors of datasets, or the data points of each dataset. If this
     * property is absent, or the colors defined are less than the number of datasets (or the data points of each dataset), the missing colors will
     * be assigned from the defult palette
     * @property
     */
    colors: string[];
    /**
     * Specify what the colors (either defined or generated) are for.
     *  * 'series' - each color corresponds to a dataset
     *  * 'data' - each color corresponds to a data point of each dataset
     *  * 'auto' - use 'series' for chart types 'bar', 'horizontalBar' and 'line'; and use 'data' for other chart types
     *  * 'none' - turn off the color generator. Use this value if colors are specified via #options
     * @default 'auto'
     * @property
     */
    colorsFor: ColorsForType;
    /**
     * The aspect ratio of the chart
     * @default 2
     * @property
     */
    ratio: number;
    /**
     * Specifiy how to display the legend
     *  * if the value is a boolean, it corresponds to Chart.ChartConfiguration.options.legend.display
     *  * if the value is 'auto', the legend will be arranged automatically. For example, the legend will be hidden if the chart area is too small
     *  * if the value is of type Chart.ChartLegendOptions, it corresponds to Chart.ChartConfiguration.options.legend.position
     *  * if the value is of type Chart.ChartLegendOptions, it corresponds to Chart.ChartConfiguration.options.legend
     * @default 'auto'
     * @property
     */
    legend: LegendType;
    /**
     * An ISO 4217 currency code. If specified, it will be used to format the scales of the main axis, as well as the values in the tooltips.
     * @property
     */
    currency: string;
    /**
     * Corresponds to Chart.ChartConfiguration.options. This overrides any other settings.
     * @property
     */
    options: Chart.ChartOptions;
    /**
     * A moment.js format string. When specified, the X axis will be configured with time scales, and this value will be used to format the tooltips.
     * @property
     */
    timeFormat: string;
    /**
     * Specify whether to show the overall percentage values in the popover tooltips.
     * @property
     */
    percentage: ShowPercentageType;
    ngDoCheck(): void;
    ngOnDestroy(): void;
    private _checkUpdate();
    private _refresh(configChanged);
    private _createNewChart(cfg, retryIfTooSmall?);
    private _applyConfig();
    private _isYAxisAllNumbers(data);
    private _applyColors(colors, colorsFor, datasets);
}
