import * as React from 'react';
import { DataPieChart } from './DataPieChart';
import { DataPieChartType } from './DataPieChartType';
import { CategoryTransitionInMode } from './CategoryTransitionInMode';
import { TransitionInSpeedType } from './TransitionInSpeedType';
import { DataSeriesType } from "igniteui-react-core";
import { DomainType } from "./DomainType";
import { IgrDataPieBaseChart, IIgrDataPieBaseChartProps } from './igr-data-pie-base-chart';
/**
 * Represents a DataPie chart control that can plot DataPie data
*/
export declare class IgrDataPieChart extends IgrDataPieBaseChart<IIgrDataPieChartProps> {
    private _container;
    private _height;
    private _width;
    private _initialized;
    private _elRef;
    set height(value: string);
    get height(): string;
    set width(value: string);
    get width(): string;
    protected _tooltipRef(t: any): void;
    private _getMainRef;
    render(): React.DetailedReactHTMLElement<{
        className: string;
        ref: (ref: any) => void;
        children: any[];
    }, any>;
    constructor(props: IIgrDataPieChartProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    destroy(): void;
    private _wrapper;
    protected createImplementation(): DataPieChart;
    get i(): DataPieChart;
    protected createSeriesComponent(type: string): any;
    protected createSeries(type: DataSeriesType): any;
    private _chart;
    private _dataSource;
    set dataSource(value: Array<any>);
    get dataSource(): Array<any>;
    bindData(): void;
    private _defaultTooltips;
    initializeContent(): void;
    private _activeTooltips;
    private _activeTooltipElements;
    private _currentTooltips;
    private _uniqueTooltipId;
    private createTooltip;
    private _ensureTooltipCreated;
    private _createXAxis;
    private _createYAxis;
    private _ensureDefaultTooltip;
    private _onDefaultTooltipsReady;
    private _updateTooltipState;
    /**
 * Gets or sets the duration used for animating series plots when the chart is loading into view
*/
    get transitionInDuration(): number;
    set transitionInDuration(v: number);
    /**
     * Gets or sets the duration used for animating series plots when the series is leaving view
    */
    get transitionOutDuration(): number;
    set transitionOutDuration(v: number);
    /**
     * Gets or sets the easing function used for animating series plots when the chart is loading into view
     * This can be set to one of the known values "linear" or "cubic," or it can be set to an easing function which takes a single numeric parameter and returns a number.
    */
    get transitionInEasingFunction(): (time: number) => number;
    set transitionInEasingFunction(v: (time: number) => number);
    /**
     * Gets or sets the easing function used for animating series plots when the chart is loading into view
     * This can be set to one of the known values "linear" or "cubic," or it can be set to an easing function which takes a single numeric parameter and returns a number.
    */
    get transitionOutEasingFunction(): (time: number) => number;
    set transitionOutEasingFunction(v: (time: number) => number);
    /**
     * Gets the domain type of this chart
    */
    get domainType(): DomainType;
    /**
     * Gets or sets the type of chart series to generate from the data.
    */
    get chartType(): DataPieChartType;
    set chartType(v: DataPieChartType);
    /**
     * Gets or sets whether animation of series plots is enabled when the chart is loading into view
    */
    get isTransitionInEnabled(): boolean;
    set isTransitionInEnabled(v: boolean);
    /**
     * Gets or sets the method that determines how to animate series plots when the chart is loading into view
    */
    get transitionInMode(): CategoryTransitionInMode;
    set transitionInMode(v: CategoryTransitionInMode);
    /**
     * Gets or sets the arrival speed used for animating series plots when the chart is loading into view
    */
    get transitionInSpeedType(): TransitionInSpeedType;
    set transitionInSpeedType(v: TransitionInSpeedType);
    /**
 * Export serialized visual data.

*/
    exportSerializedVisualData(): string;
}
export interface IIgrDataPieChartProps extends IIgrDataPieBaseChartProps {
    width?: string;
    height?: string;
    legend?: any;
    /**
  * Gets or sets the data for the chart to use. This can be overriden at the series and axis level.
  */
    dataSource?: any[];
    /**
 * Gets or sets the duration used for animating series plots when the chart is loading into view
*/
    transitionInDuration?: number | string;
    /**
     * Gets or sets the duration used for animating series plots when the series is leaving view
    */
    transitionOutDuration?: number | string;
    /**
     * Gets or sets the easing function used for animating series plots when the chart is loading into view
     * This can be set to one of the known values "linear" or "cubic," or it can be set to an easing function which takes a single numeric parameter and returns a number.
    */
    transitionInEasingFunction?: (time: number) => number;
    /**
     * Gets or sets the easing function used for animating series plots when the chart is loading into view
     * This can be set to one of the known values "linear" or "cubic," or it can be set to an easing function which takes a single numeric parameter and returns a number.
    */
    transitionOutEasingFunction?: (time: number) => number;
    /**
     * Gets or sets the type of chart series to generate from the data.
    */
    chartType?: DataPieChartType | string;
    /**
     * Gets or sets whether animation of series plots is enabled when the chart is loading into view
    */
    isTransitionInEnabled?: boolean | string;
    /**
     * Gets or sets the method that determines how to animate series plots when the chart is loading into view
    */
    transitionInMode?: CategoryTransitionInMode | string;
    /**
     * Gets or sets the arrival speed used for animating series plots when the chart is loading into view
    */
    transitionInSpeedType?: TransitionInSpeedType | string;
}
