import { EventEmitter, OnInit, TemplateRef } from '@angular/core';
import { LabelsPosition } from "./LabelsPosition";
import { Visibility } from "igniteui-angular-core";
import { LeaderLineType } from "./LeaderLineType";
import { OthersCategoryType } from "./OthersCategoryType";
import { IgxPropertyUpdatedEventArgs } from "igniteui-angular-core";
import { RingSeriesBase } from "./RingSeriesBase";
/**
 * Represents a IgxRingSeriesBaseComponent base series.
*/
export declare const IgxRingSeriesBaseComponent_PROVIDERS: any[];
export declare abstract class IgxRingSeriesBaseComponent implements OnInit {
    protected createImplementation(): RingSeriesBase;
    ngOnInit(): void;
    private _dataSource;
    dataSource: Array<any>;
    bindData(): void;
    protected _implementation: any;
    readonly i: RingSeriesBase;
    private onImplementationCreated;
    constructor();
    static _createFromInternal(internal: any): IgxRingSeriesBaseComponent;
    legend: any;
    private _tooltipTemplate;
    private _tooltipContent;
    tooltipTemplate: TemplateRef<any>;
    private _tooltipContainerTemplate;
    tooltipContainerTemplate: TemplateRef<any>;
    private _ensureTooltipCreated;
    private _ensureTooltipDestroyed;
    private _showDefaultTooltip;
    /**
     * Gets or sets whether default tooltip will be shown.
    */
    showDefaultTooltip: boolean;
    sychronizeCollections(): void;
    /**
 * 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;
    /**
     * Gets or sets whether the leader lines are visible.
    */
    leaderLineVisibility: Visibility;
    /**
     * Gets or sets the fill brush.
    */
    leaderLineFill: string;
    /**
     * Gets or sets the stroke brush.
    */
    leaderLineStroke: string;
    /**
     * Gets or sets the stroke thickness.
    */
    leaderLineStrokeThickness: number;
    /**
     * Gets or sets the opacity.
    */
    leaderLineOpacity: number;
    ensureLeaderLineStyle(): void;
    /**
     * Gets or sets what type of leader lines will be used for the outside end labels.
    */
    leaderLineType: LeaderLineType;
    /**
     * Gets or sets the margin between a label and its leader line. The default is 6 pixels.
    */
    leaderLineMargin: number;
    /**
     * Gets or sets the threshold value that determines if slices are grouped into the Others slice.
    */
    othersCategoryThreshold: number;
    /**
     * Gets or sets whether to use numeric or percent-based threshold value.
    */
    othersCategoryType: OthersCategoryType;
    /**
     * 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 pixel amount by which the labels are offset from the edge of the slices.
    */
    labelExtent: number;
    /**
     * Gets or sets the starting angle of the chart.
     * The default zero value is equivalent to 3 o'clock.
    */
    startAngle: number;
    /**
     * Gets or sets the fill brush.
    */
    othersCategoryFill: string;
    /**
     * Gets or sets the stroke brush.
    */
    othersCategoryStroke: string;
    /**
     * Gets or sets the stroke thickness.
    */
    othersCategoryStrokeThickness: number;
    /**
     * Gets or sets the opacity.
    */
    othersCategoryOpacity: number;
    ensureOthersCategoryStyle(): void;
    /**
     * Gets or sets the fill brush.
    */
    selectedSliceFill: string;
    /**
     * Gets or sets the stroke brush.
    */
    selectedSliceStroke: string;
    /**
     * Gets or sets the stroke thickness.
    */
    selectedSliceStrokeThickness: number;
    /**
     * Gets or sets the opacity.
    */
    selectedSliceOpacity: number;
    ensureSelectedStyle(): void;
    /**
     * Gets or sets the palette of brushes to use for coloring the slices.
    */
    brushes: string[];
    /**
     * Gets or sets the palette of brushes to use for outlines on the slices.
    */
    outlines: 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 whether all surface interactions with the plot area should be disabled.
    */
    isSurfaceInteractionDisabled: boolean;
    /**
     * Gets or sets the scaling factor of the chart's radius. Value between 0 and 1.
    */
    radiusFactor: number;
    protected __p: string;
    protected _hasUserValues: Set<string>;
    protected readonly 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;
    /**
     * Event raised when a property (including "effective" and non-dependency property) value changes.
    */
    readonly propertyUpdated: EventEmitter<{
        sender: any;
        args: IgxPropertyUpdatedEventArgs;
    }>;
    protected _zoneRunner: (act: () => void) => void;
    protected _runInZone(act: () => void): void;
}
