import { EventEmitter, OnInit } from '@angular/core';
import { IgPoint } from "igniteui-angular-core";
import { IgDataTemplate } from "igniteui-angular-core";
import { LabelsPosition } from "./LabelsPosition";
import { Visibility } from "igniteui-angular-core";
import { LeaderLineType } from "./LeaderLineType";
import { OthersCategoryType } from "./OthersCategoryType";
import { IgxIndexCollection } from "./igx-index-collection";
import { SweepDirection } from "igniteui-angular-core";
import { SliceSelectionMode } from "./SliceSelectionMode";
import { IgxObjectCollection } from "igniteui-angular-core";
import { IgxLabelClickEventArgs } from "./igx-label-click-event-args";
import { IgxSelectedItemChangingEventArgs } from "./igx-selected-item-changing-event-args";
import { IgxSelectedItemsChangingEventArgs } from "./igx-selected-items-changing-event-args";
import { IgxSelectedItemChangedEventArgs } from "./igx-selected-item-changed-event-args";
import { IgxSelectedItemsChangedEventArgs } from "./igx-selected-items-changed-event-args";
import { IgxSliceClickEventArgs } from "./igx-slice-click-event-args";
import { PieChartBase } from "./PieChartBase";
/**
 * Represents the base class for the pie chart.
*/
export declare const IgxPieChartBaseComponent_PROVIDERS: any[];
export declare abstract class IgxPieChartBaseComponent implements OnInit {
    protected createImplementation(): PieChartBase;
    ngOnInit(): void;
    protected _implementation: any;
    /**
     * @hidden
     */
    readonly i: PieChartBase; /**
                                 * @hidden
                                 */
    static _createFromInternal(internal: any): IgxPieChartBaseComponent;
    private onImplementationCreated;
    constructor();
    /**
     * Gets or sets the amount of space between the center and the start of the arc. This property should be set between 0 and 1.
     * If InnerExtent is set to a value greater than 1, it will be interpreted as a percentage, effectively divided by 100.
    */
    innerExtent: number;
    /**
     * 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 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 the leader lines are visible.
    */
    leaderLineVisibility: Visibility;
    /**
     * 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 the end of its leader line. The default is 6 pixels.
    */
    leaderLineMargin: number;
    /**
     * Gets or sets the ToolTip for the chart.
    */
    toolTip: any;
    /**
     * 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;
    /**
     * Determines how much the exploded slice is offset from the center. Value between 0 and 1.
    */
    explodedRadius: number;
    /**
     * Gets or sets the scaling factor of the chart's radius. Value between 0 and 1.
    */
    radiusFactor: number;
    /**
     * Gets or sets whether the slices can be selected.
    */
    allowSliceSelection: boolean;
    /**
     * Gets or sets whether the slices can be exploded.
    */
    allowSliceExplosion: boolean;
    private _explodedSlices;
    /**
     * Gets or sets the collection of exploded slice indices.
    */
    explodedSlices: IgxIndexCollection;
    /**
     * 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 rotational direction of the chart.
    */
    sweepDirection: SweepDirection;
    /**
     * 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 LegendItemTemplate property.
     * The legend item control content is created according to the LegendItemTemplate on-demand by
     * the chart object itself.
    */
    legendItemTemplate: IgDataTemplate;
    /**
     * Gets or sets the LegendItemBadgeTemplate property.
     * The legend item badge is created according to the LegendItemBadgeTemplate on-demand by
     * the chart object itself.
    */
    legendItemBadgeTemplate: IgDataTemplate;
    /**
     * Gets or sets whether all surface interactions with the plot area should be disabled.
    */
    isSurfaceInteractionDisabled: boolean;
    /**
     * 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 scaling value used to affect the pixel density of the control.
     * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
     * to appear blurry.
    */
    pixelScalingRatio: number;
    /**
     * Resolved pixel scaling ratio. Unless explicitly overridden by the PieChartBase.PixelScalingRatio property,
     * this one returns the default ratio enforced by device. High resolution devices will initialize this property
     * to a higher value.
    */
    actualPixelScalingRatio: number;
    /**
     * Gets or sets which mode to use for selecting slices.
    */
    selectionMode: SliceSelectionMode;
    /**
     * Gets or sets the currently selected data item.  If a different data item is provided the pie chart
     * will select the slice associated with the new item.
    */
    selectedItem: any;
    private _selectedItems;
    /**
     * Gets the currently selected data items.  Adding or removing data items from this collection will
     * select or deselect the slices associated with those items.
    */
    selectedItems: IgxObjectCollection;
    /**
     * Manually overrides the style to use for the labels.
    */
    textStyle: string;
    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;
    /**
     * Returns the chart visuals expressed as a serialized string.
    
    */
    exportSerializedVisualData(): string;
    /**
     * Simulates a mouse click action at the specified point.
    
    * @param point  * The point to click at.
    */
    simulateLeftClick(point: IgPoint): void;
    /**
     * Invoked by the containing object to provide reference to the container.
    
    * @param container  * Reference to the container.
    */
    provideContainer(container: any): void;
    /**
     * Notification from the containing object that the container has been resized.
    
    */
    notifyContainerResized(): void;
    /**
     * Invoked when the instance is being destroyed.
    
    */
    destroy(): void;
    /**
     * Use to force the pie chart to finish any deferred work before printing or evaluating its visual.
     * This should only be called if the visual of the pie chart needs to be synchronously saved or evaluated.
     * Calling this method too often will hinder the performance of the pie chart.
    
    */
    flush(): void;
    notifySetItem(source_: any, index: number, oldItem: any, newItem: any): void;
    /**
     * Manually notifies the pie chart's data source that the data it has bound to has been cleared and needs to be re-examined.
     * This should not be called if the data that the pie chart is bound to is already observable.
    
    * @param source_  * The data source.
    */
    notifyClearItems(source_: any): void;
    notifyInsertItem(source_: any, index: number, newItem: any): void;
    notifyRemoveItem(source_: any, index: number, oldItem: any): void;
    /**
     * Assigns data source for the items.
    
    * @param source_  * Array of the data source items.
    */
    setWidgetLevelDataSource(source_: any): void;
    /**
     * Resets items data source.
    
    */
    removeWidgetLevelDataSource(): void;
    /**
     * Invoked when style is updated.
    
    */
    styleUpdated(): void;
    private _labelClick;
    /**
     * Raised when the slice's label is clicked.
    */
    readonly labelClick: EventEmitter<{
        sender: any;
        args: IgxLabelClickEventArgs;
    }>;
    private _selectedItemChanging;
    /**
     * Raised when the SelectedItem property is changing.  This event is cancelable.
    */
    readonly selectedItemChanging: EventEmitter<{
        sender: any;
        args: IgxSelectedItemChangingEventArgs;
    }>;
    private _selectedItemsChanging;
    /**
     * Raised when the SelectedItems collection is changing.  This event is cancelable.
    */
    readonly selectedItemsChanging: EventEmitter<{
        sender: any;
        args: IgxSelectedItemsChangingEventArgs;
    }>;
    private _selectedItemChanged;
    /**
     * Raised when the SelectedItem property has changed.
    */
    readonly selectedItemChanged: EventEmitter<{
        sender: any;
        args: IgxSelectedItemChangedEventArgs;
    }>;
    private _selectedItemsChanged;
    /**
     * Raised when the SelectedItems collection has changed.
    */
    readonly selectedItemsChanged: EventEmitter<{
        sender: any;
        args: IgxSelectedItemsChangedEventArgs;
    }>;
    private _sliceClick;
    /**
     * Raised when the slice is clicked.
    */
    readonly sliceClick: EventEmitter<{
        sender: any;
        args: IgxSliceClickEventArgs;
    }>;
    protected _zoneRunner: (act: () => void) => void;
    protected _runInZone(act: () => void): void;
}
