import * as React from 'react';
import { LabelsPosition } from "./LabelsPosition";
import { Visibility } from "igniteui-react-core";
import { LeaderLineType } from "./LeaderLineType";
import { OthersCategoryType } from "igniteui-react-core";
import { IgrPropertyUpdatedEventArgs } from "igniteui-react-core";
import { RingSeriesBase } from "./RingSeriesBase";
import { IChartTooltipProps } from "igniteui-react-core";
/**
 * Represents a
 * IgxDoughnutChartComponent base series.
*/
export declare abstract class IgrRingSeriesBase<P extends IIgrRingSeriesBaseProps = IIgrRingSeriesBaseProps> extends React.Component<P, {}> {
    protected createImplementation(): RingSeriesBase;
    private _dataSource;
    set dataSource(value: Array<any>);
    get dataSource(): Array<any>;
    bindData(): void;
    protected _implementation: any;
    get i(): RingSeriesBase;
    private onImplementationCreated;
    constructor(props: P);
    componentDidMount(): void;
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    render(): any;
    static _createFromInternal(internal: any): IgrRingSeriesBase;
    get legend(): any;
    set legend(v: any);
    private _tooltipTemplate;
    private _tooltipContent;
    set tooltipTemplate(value: React.FunctionComponent<IChartTooltipProps> | React.Component<IChartTooltipProps>);
    get tooltipTemplate(): React.FunctionComponent<IChartTooltipProps> | React.Component<IChartTooltipProps>;
    private _tooltipContainerTemplate;
    set tooltipContainerTemplate(value: React.FunctionComponent<IChartTooltipProps> | React.Component<IChartTooltipProps>);
    get tooltipContainerTemplate(): React.FunctionComponent<IChartTooltipProps> | React.Component<IChartTooltipProps>;
    private _ensureTooltipCreated;
    private _ensureTooltipDestroyed;
    private _showDefaultTooltip;
    /**
     * Gets or sets whether default tooltip will be shown.
    */
    get showDefaultTooltip(): boolean;
    set showDefaultTooltip(v: boolean);
    sychronizeCollections(): void;
    /**
 * Gets or Sets the property name that contains the values.
*/
    get valueMemberPath(): string;
    set valueMemberPath(v: string);
    /**
     * Gets or sets the property name that contains the labels.
    */
    get labelMemberPath(): string;
    set labelMemberPath(v: string);
    /**
     * Gets or sets the property name that contains the legend labels.
    */
    get legendLabelMemberPath(): string;
    set legendLabelMemberPath(v: string);
    /**
     * Gets or sets the position of chart labels.
    */
    get labelsPosition(): LabelsPosition;
    set labelsPosition(v: LabelsPosition);
    /**
     * Gets or sets whether the leader lines are visible.
    */
    get leaderLineVisibility(): Visibility;
    set leaderLineVisibility(v: Visibility);
    /**
     * Gets or sets the fill brush.
    */
    get leaderLineFill(): string;
    set leaderLineFill(v: string);
    /**
     * Gets or sets the stroke brush.
    */
    get leaderLineStroke(): string;
    set leaderLineStroke(v: string);
    /**
     * Gets or sets the stroke thickness.
    */
    get leaderLineStrokeThickness(): number;
    set leaderLineStrokeThickness(v: number);
    /**
     * Gets or sets the opacity.
    */
    get leaderLineOpacity(): number;
    set leaderLineOpacity(v: number);
    ensureLeaderLineStyle(): void;
    /**
     * Gets or sets what type of leader lines will be used for the outside end labels.
    */
    get leaderLineType(): LeaderLineType;
    set leaderLineType(v: LeaderLineType);
    /**
     * Gets or sets the margin between a label and its leader line. The default is 6 pixels.
    */
    get leaderLineMargin(): number;
    set leaderLineMargin(v: number);
    /**
     * Gets or sets the threshold value that determines if slices are grouped into the Others slice.
    */
    get othersCategoryThreshold(): number;
    set othersCategoryThreshold(v: number);
    /**
     * Gets or sets whether to use numeric or percent-based threshold value.
    */
    get othersCategoryType(): OthersCategoryType;
    set othersCategoryType(v: OthersCategoryType);
    /**
     * Gets or sets the label of the Others slice.
    */
    get othersCategoryText(): string;
    set othersCategoryText(v: string);
    /**
     * Sets or gets a function which takes an object that produces a formatted label for displaying in the chart.
    */
    get formatLabel(): (obj: any) => string;
    set formatLabel(v: (obj: any) => string);
    /**
     * Sets or gets a function which takes an object that produces a formatted label for displaying in the chart's legend.
    */
    get formatLegendLabel(): (obj: any) => string;
    set formatLegendLabel(v: (obj: any) => string);
    /**
     * Gets or sets the label format string to use for the label.
    */
    get labelFormat(): string;
    set labelFormat(v: string);
    /**
     * Gets or sets the format specifiers to use with the LabelFormat string.
    */
    get labelFormatSpecifiers(): any[];
    set labelFormatSpecifiers(v: any[]);
    /**
     * Gets or sets the label format string to use for the label.
    */
    get othersLabelFormat(): string;
    set othersLabelFormat(v: string);
    /**
     * Gets or sets the format specifiers to use with the OthersLabelFormat string.
    */
    get othersLabelFormatSpecifiers(): any[];
    set othersLabelFormatSpecifiers(v: any[]);
    /**
     * Gets or sets the label format string to use for the label.
    */
    get legendLabelFormat(): string;
    set legendLabelFormat(v: string);
    /**
     * Gets or sets the format specifiers to use with the LegendLabelFormat string.
    */
    get legendLabelFormatSpecifiers(): any[];
    set legendLabelFormatSpecifiers(v: any[]);
    /**
     * Gets or sets the label format string to use for the label.
    */
    get legendOthersLabelFormat(): string;
    set legendOthersLabelFormat(v: string);
    /**
     * Gets or sets the format specifiers to use with the LegendOthersLabelFormat string.
    */
    get legendOthersLabelFormatSpecifiers(): any[];
    set legendOthersLabelFormatSpecifiers(v: any[]);
    /**
     * Gets or sets the pixel amount by which the labels are offset from the edge of the slices.
    */
    get labelExtent(): number;
    set labelExtent(v: number);
    /**
     * Gets or sets the starting angle of the chart.
     * The default zero value is equivalent to 3 o'clock.
    */
    get startAngle(): number;
    set startAngle(v: number);
    /**
     * Gets or sets the fill brush.
    */
    get othersCategoryFill(): string;
    set othersCategoryFill(v: string);
    /**
     * Gets or sets the stroke brush.
    */
    get othersCategoryStroke(): string;
    set othersCategoryStroke(v: string);
    /**
     * Gets or sets the stroke thickness.
    */
    get othersCategoryStrokeThickness(): number;
    set othersCategoryStrokeThickness(v: number);
    /**
     * Gets or sets the opacity.
    */
    get othersCategoryOpacity(): number;
    set othersCategoryOpacity(v: number);
    ensureOthersCategoryStyle(): void;
    /**
     * Gets or sets the fill brush.
    */
    get selectedSliceFill(): string;
    set selectedSliceFill(v: string);
    /**
     * Gets or sets the stroke brush.
    */
    get selectedSliceStroke(): string;
    set selectedSliceStroke(v: string);
    /**
     * Gets or sets the stroke thickness.
    */
    get selectedSliceStrokeThickness(): number;
    set selectedSliceStrokeThickness(v: number);
    /**
     * Gets or sets the opacity.
    */
    get selectedSliceOpacity(): number;
    set selectedSliceOpacity(v: number);
    ensureSelectedStyle(): void;
    /**
     * Gets or sets the palette of brushes to use for coloring the slices.
    */
    get brushes(): string[];
    set brushes(v: string[]);
    /**
     * Gets or sets the palette of brushes to use for outlines on the slices.
    */
    get outlines(): string[];
    set outlines(v: string[]);
    /**
     * Gets or sets the color for labels rendered outside of the pie chart.
    */
    get labelOuterColor(): string;
    set labelOuterColor(v: string);
    /**
     * Gets or sets the color for labels rendered inside of the pie chart.
    */
    get labelInnerColor(): string;
    set labelInnerColor(v: string);
    /**
     * Gets or sets the text style to use for labels.
    */
    get textStyle(): string;
    set textStyle(v: string);
    /**
     * Gets or sets whether all surface interactions with the plot area should be disabled.
    */
    get isSurfaceInteractionDisabled(): boolean;
    set isSurfaceInteractionDisabled(v: boolean);
    /**
     * Gets or sets the scaling factor of the chart's radius. Value between 0 and 1.
    */
    get radiusFactor(): number;
    set radiusFactor(v: number);
    findByName(name: string): any;
    protected __p: string;
    protected _hasUserValues: Set<string>;
    protected get hasUserValues(): Set<string>;
    protected __m(propertyName: string): void;
    protected _stylingContainer: any;
    protected _stylingParent: any;
    protected _inStyling: boolean;
    protected _styling(container: any, component: any, parent?: any): void;
    /**
 * Called by the UI framework to provide a UI container for rendering this control.

* @param container  * The UI container element.
*/
    provideContainer(container: any): void;
    private _propertyUpdated;
    private _propertyUpdated_wrapped;
    /**
     * Event raised when a property (including "effective" and non-dependency property) value changes.
    */
    get propertyUpdated(): (s: IgrRingSeriesBase, e: IgrPropertyUpdatedEventArgs) => void;
    set propertyUpdated(ev: (s: IgrRingSeriesBase, e: IgrPropertyUpdatedEventArgs) => void);
}
export interface IIgrRingSeriesBaseProps {
    /**
     * Sets or gets a required unique name for the series.
     * */
    name: string;
    children?: React.ReactNode;
    showDefaultTooltip?: boolean;
    tooltipTemplate?: React.FunctionComponent<IChartTooltipProps> | React.Component<IChartTooltipProps>;
    tooltipContainerTemplate?: React.FunctionComponent<IChartTooltipProps> | React.Component<IChartTooltipProps>;
    dataSource?: any[];
    legend?: any;
    /**
 * Gets or Sets the property name that contains the values.
*/
    valueMemberPath?: string;
    /**
     * Gets or sets the property name that contains the labels.
    */
    labelMemberPath?: string;
    /**
     * Gets or sets the property name that contains the legend labels.
    */
    legendLabelMemberPath?: string;
    /**
     * Gets or sets the position of chart labels.
    */
    labelsPosition?: LabelsPosition | string;
    /**
     * Gets or sets whether the leader lines are visible.
    */
    leaderLineVisibility?: Visibility | string;
    /**
     * Gets or sets the fill brush.
    */
    leaderLineFill?: string;
    /**
     * Gets or sets the stroke brush.
    */
    leaderLineStroke?: string;
    /**
     * Gets or sets the stroke thickness.
    */
    leaderLineStrokeThickness?: number | string;
    /**
     * Gets or sets the opacity.
    */
    leaderLineOpacity?: number | string;
    /**
     * Gets or sets what type of leader lines will be used for the outside end labels.
    */
    leaderLineType?: LeaderLineType | string;
    /**
     * Gets or sets the margin between a label and its leader line. The default is 6 pixels.
    */
    leaderLineMargin?: number | string;
    /**
     * Gets or sets the threshold value that determines if slices are grouped into the Others slice.
    */
    othersCategoryThreshold?: number | string;
    /**
     * Gets or sets whether to use numeric or percent-based threshold value.
    */
    othersCategoryType?: OthersCategoryType | string;
    /**
     * Gets or sets the label of the Others slice.
    */
    othersCategoryText?: string;
    /**
     * Sets or gets a function which takes an object that produces a formatted label for displaying in the chart.
    */
    formatLabel?: (obj: any) => string;
    /**
     * Sets or gets a function which takes an object that produces a formatted label for displaying in the chart's legend.
    */
    formatLegendLabel?: (obj: any) => string;
    /**
     * Gets or sets the label format string to use for the label.
    */
    labelFormat?: string;
    /**
     * Gets or sets the format specifiers to use with the LabelFormat string.
    */
    labelFormatSpecifiers?: any[];
    /**
     * Gets or sets the label format string to use for the label.
    */
    othersLabelFormat?: string;
    /**
     * Gets or sets the format specifiers to use with the OthersLabelFormat string.
    */
    othersLabelFormatSpecifiers?: any[];
    /**
     * Gets or sets the label format string to use for the label.
    */
    legendLabelFormat?: string;
    /**
     * Gets or sets the format specifiers to use with the LegendLabelFormat string.
    */
    legendLabelFormatSpecifiers?: any[];
    /**
     * Gets or sets the label format string to use for the label.
    */
    legendOthersLabelFormat?: string;
    /**
     * Gets or sets the format specifiers to use with the LegendOthersLabelFormat string.
    */
    legendOthersLabelFormatSpecifiers?: any[];
    /**
     * Gets or sets the pixel amount by which the labels are offset from the edge of the slices.
    */
    labelExtent?: number | string;
    /**
     * Gets or sets the starting angle of the chart.
     * The default zero value is equivalent to 3 o'clock.
    */
    startAngle?: number | string;
    /**
     * Gets or sets the fill brush.
    */
    othersCategoryFill?: string;
    /**
     * Gets or sets the stroke brush.
    */
    othersCategoryStroke?: string;
    /**
     * Gets or sets the stroke thickness.
    */
    othersCategoryStrokeThickness?: number | string;
    /**
     * Gets or sets the opacity.
    */
    othersCategoryOpacity?: number | string;
    /**
     * Gets or sets the fill brush.
    */
    selectedSliceFill?: string;
    /**
     * Gets or sets the stroke brush.
    */
    selectedSliceStroke?: string;
    /**
     * Gets or sets the stroke thickness.
    */
    selectedSliceStrokeThickness?: number | string;
    /**
     * Gets or sets the opacity.
    */
    selectedSliceOpacity?: number | string;
    /**
     * Gets or sets the palette of brushes to use for coloring the slices.
    */
    brushes?: string[] | string;
    /**
     * Gets or sets the palette of brushes to use for outlines on the slices.
    */
    outlines?: string[] | string;
    /**
     * Gets or sets the color for labels rendered outside of the pie chart.
    */
    labelOuterColor?: string;
    /**
     * Gets or sets the color for labels rendered inside of the pie chart.
    */
    labelInnerColor?: string;
    /**
     * Gets or sets the text style to use for labels.
    */
    textStyle?: string;
    /**
     * Gets or sets whether all surface interactions with the plot area should be disabled.
    */
    isSurfaceInteractionDisabled?: boolean | string;
    /**
     * Gets or sets the scaling factor of the chart's radius. Value between 0 and 1.
    */
    radiusFactor?: number | string;
    /**
 * Event raised when a property (including "effective" and non-dependency property) value changes.
*/
    propertyUpdated?: (s: IgrRingSeriesBase, e: IgrPropertyUpdatedEventArgs) => void;
}
