import { ChangeDetectorRef, Injector, OnDestroy, OnInit } from '@angular/core';
import { ChartData } from 'chart.js';
import { ChartComponent } from '../chart/chart.component';
import { CoreBaseComponent } from '../common/base.component';
import { LegendEntryData } from '../legend/legend-entry/legend-entry.component';
import { LegendPosition } from './legend-position';
import * as i0 from "@angular/core";
/**
 *
 * @smeDoc {@label Doughnut Chart @id sme-doughnut-chart-component}
 *
 * @overview
 * @file {@filepath ./examples/doughnut-chart-overview.md}
 *
 * @example {@label Doughnut Chart @id doughnut-chart}
 * @file {@filename component.html @filepath ./examples/doughnut-chart-example.component.html}
 * @file {@filename component.ts @filepath ./examples/doughnut-chart-example.component.ts}
 *
 * @example {@label Capacity Doughnut Chart @id capacity-doughnut-chart}
 * @file {@filename component.html @filepath ./examples/capacity-doughnut-chart-example.component.html}
 * @file {@filename component.ts @filepath ./examples/doughnut-chart-example.component.ts}
 */
export interface DoughnutChartData {
    /**
     * The label for the data segment
     */
    label: string;
    /**
     * The value of the data segment
     */
    value: number;
    /**
     * The display value to show in legends and tool tips
     * example: value = 80 but displayValue = "80%"
     * If not specified, value field will be used for labeling
     */
    displayValue?: string;
    /**
     * The color to use for the data segment
     */
    color: string;
    /**
     * True to show legend
     */
    showLegend?: boolean;
}
export declare class DoughnutChartComponent extends CoreBaseComponent implements OnInit, OnDestroy {
    private changeDetectorRef;
    /**
     * The source name to use for logging
     */
    protected get logSourceName(): string;
    /**
     * Whether or not to use a generated legend
     * If legendData is specified, a legend will be shown regardless of showLegend value
     */
    showLegend: boolean;
    /**
     * The legend data to put into the legend
     * If legend is not specified, it will automatically be generated
     */
    legendData: LegendEntryData[];
    /**
     * List of data to be shown on the chart
     */
    doughnutChartData: DoughnutChartData[];
    /**
     * Title shown for the chart
     */
    chartTitle: string;
    /**
     * Whether to display the chart title
     * Defaults to true
     */
    showTitle: boolean;
    /**
     * Text in the center of the doughnut chart
     */
    centerChartText: string;
    /**
     * Subtext in the center of the doughnut chart
     */
    centerChartSubtext: string;
    /**
     * Text that can be provided to give additional optional information about the doughnut chart
     */
    tooltipTitle: string;
    /**
     * Sets the width of the chart. Can be any valid css width value. Defaults to 180px
     */
    width: string;
    /**
     * A string explaining the how often the chart refreshes, if applicable
     * Expect strings like "3 minutes" and "30 seconds"
     * Used for aria-label of chart in sentence "Chart refreshes every <refreshIntervalString>"
     */
    refreshIntervalString?: string;
    /**
     * A string explaining the current state of the chart, if applicable
     * Expect strings like "Critical State" and "Warning State"
     * Used for aria-label of chart to describe state
     */
    stateString?: string;
    /**
     * The position of the legend relative to the chart.
     */
    legendPosition?: LegendPosition.Bindable;
    chart: ChartComponent;
    options: any;
    data: ChartData;
    legendIsGenerated: boolean;
    constructor(changeDetectorRef: ChangeDetectorRef, injector: Injector);
    private validateLegendPosition;
    ngOnInit(): void;
    updateChartData(): void;
    /**
     * refreshed the chart data
     */
    refresh(): void;
    ngOnDestroy(): void;
    /**
     * Creates the idBag used by this component to store unique element ids.
     * id values will be assigned be the @see BaseComponent super class.
     */
    protected createIdBag(): MsftSme.StringMap<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DoughnutChartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DoughnutChartComponent, "sme-doughnut-chart", never, { "showLegend": "showLegend"; "legendData": "legendData"; "doughnutChartData": "doughnutChartData"; "chartTitle": "chartTitle"; "showTitle": "showTitle"; "centerChartText": "centerChartText"; "centerChartSubtext": "centerChartSubtext"; "tooltipTitle": "tooltipTitle"; "width": "width"; "refreshIntervalString": "refreshIntervalString"; "stateString": "stateString"; "legendPosition": "legendPosition"; }, {}, never, never, false, never>;
}
