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 "igniteui-angular-core";
import { IgxIndexCollection } from "./igx-index-collection";
import { SweepDirection } from "igniteui-angular-core";
import { LegendEmptyValuesMode } 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 { IgxSliceEventArgs } from "./igx-slice-event-args";
import { PieChartBase } from "./PieChartBase";
import * as i0 from "@angular/core";
/**
 * Represents the base class for the pie chart.
*/
export declare abstract class IgxPieChartBaseComponent implements OnInit {
    protected createImplementation(): PieChartBase;
    ngOnInit(): void;
    protected _implementation: any;
    /**
     * @hidden
     */
    get 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.
    */
    get innerExtent(): number;
    set innerExtent(v: number);
    static ngAcceptInputType_innerExtent: number | string;
    /**
     * 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);
    static ngAcceptInputType_labelsPosition: LabelsPosition | 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 the actual color for labels rendered outside of the pie chart.
    */
    get actualLabelOuterColor(): string;
    set actualLabelOuterColor(v: string);
    /**
     * Gets the actual color for labels rendered inside of the pie chart.
    */
    get actualLabelInnerColor(): string;
    set actualLabelInnerColor(v: string);
    /**
     * Gets or sets whether the leader lines are visible.
    */
    get leaderLineVisibility(): Visibility;
    set leaderLineVisibility(v: Visibility);
    static ngAcceptInputType_leaderLineVisibility: Visibility | string;
    /**
     * Gets or sets what type of leader lines will be used for the outside end labels.
    */
    get leaderLineType(): LeaderLineType;
    set leaderLineType(v: LeaderLineType);
    static ngAcceptInputType_leaderLineType: LeaderLineType | string;
    /**
     * Gets or sets the margin between a label and the end of its leader line. The default is 6 pixels.
    */
    get leaderLineMargin(): number;
    set leaderLineMargin(v: number);
    static ngAcceptInputType_leaderLineMargin: number | string;
    /**
     * Gets or sets the ToolTip for the chart.
    */
    get toolTip(): any;
    set toolTip(v: any);
    /**
     * Gets or sets the threshold value that determines if slices are grouped into the Others slice.
    */
    get othersCategoryThreshold(): number;
    set othersCategoryThreshold(v: number);
    static ngAcceptInputType_othersCategoryThreshold: number | string;
    /**
     * Gets or sets whether to use numeric or percent-based threshold value.
    */
    get othersCategoryType(): OthersCategoryType;
    set othersCategoryType(v: OthersCategoryType);
    static ngAcceptInputType_othersCategoryType: OthersCategoryType | string;
    /**
     * Gets or sets the label of the Others slice.
    */
    get othersCategoryText(): string;
    set othersCategoryText(v: string);
    /**
     * Determines how much the exploded slice is offset from the center. Value between 0 and 1.
    */
    get explodedRadius(): number;
    set explodedRadius(v: number);
    static ngAcceptInputType_explodedRadius: number | string;
    /**
     * Gets or sets the scaling factor of the chart's radius. Value between 0 and 1.
    */
    get radiusFactor(): number;
    set radiusFactor(v: number);
    static ngAcceptInputType_radiusFactor: number | string;
    /**
     * Gets or sets whether the slices can be selected.
    */
    get allowSliceSelection(): boolean;
    set allowSliceSelection(v: boolean);
    static ngAcceptInputType_allowSliceSelection: boolean | string;
    /**
     * Gets or sets whether the slices can be exploded.
    */
    get allowSliceExplosion(): boolean;
    set allowSliceExplosion(v: boolean);
    static ngAcceptInputType_allowSliceExplosion: boolean | string;
    private _explodedSlices;
    /**
     * Gets or sets the collection of exploded slice indices.
    */
    get explodedSlices(): IgxIndexCollection;
    set explodedSlices(v: IgxIndexCollection);
    static ngAcceptInputType_explodedSlices: IgxIndexCollection | string;
    /**
     * 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);
    static ngAcceptInputType_labelExtent: number | string;
    /**
     * 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);
    static ngAcceptInputType_startAngle: number | string;
    /**
     * Gets or sets the rotational direction of the chart.
    */
    get sweepDirection(): SweepDirection;
    set sweepDirection(v: SweepDirection);
    static ngAcceptInputType_sweepDirection: SweepDirection | string;
    /**
     * 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);
    static ngAcceptInputType_othersCategoryStrokeThickness: number | string;
    /**
     * Gets or sets the opacity.
    */
    get othersCategoryOpacity(): number;
    set othersCategoryOpacity(v: number);
    static ngAcceptInputType_othersCategoryOpacity: number | string;
    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);
    static ngAcceptInputType_selectedSliceStrokeThickness: number | string;
    /**
     * Gets or sets the opacity.
    */
    get selectedSliceOpacity(): number;
    set selectedSliceOpacity(v: number);
    static ngAcceptInputType_selectedSliceOpacity: number | string;
    ensureSelectedStyle(): void;
    /**
     * Gets or sets the palette of brushes to use for coloring the slices.
    */
    get brushes(): string[];
    set brushes(v: string[]);
    static ngAcceptInputType_brushes: string[] | string;
    /**
     * Gets the actual palette of brushes to use for coloring the slices.
    */
    get actualBrushes(): string[];
    set actualBrushes(v: string[]);
    static ngAcceptInputType_actualBrushes: string[] | string;
    /**
     * Gets or sets the palette of brushes to use for outlines on the slices.
    */
    get outlines(): string[];
    set outlines(v: string[]);
    static ngAcceptInputType_outlines: string[] | string;
    /**
     * Gets the actual palette of brushes to use for outlines on the slices.
    */
    get actualOutlines(): string[];
    set actualOutlines(v: string[]);
    static ngAcceptInputType_actualOutlines: string[] | 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[]);
    static ngAcceptInputType_labelFormatSpecifiers: any[] | string;
    /**
     * 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[]);
    static ngAcceptInputType_othersLabelFormatSpecifiers: any[] | string;
    /**
     * 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[]);
    static ngAcceptInputType_legendLabelFormatSpecifiers: any[] | string;
    /**
     * 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[]);
    static ngAcceptInputType_legendOthersLabelFormatSpecifiers: any[] | 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.
    */
    get legendItemTemplate(): IgDataTemplate;
    set legendItemTemplate(v: IgDataTemplate);
    /**
     * Gets or sets the LegendItemBadgeTemplate property.
     * The legend item badge is created according to the LegendItemBadgeTemplate on-demand by
     * the chart object itself.
    */
    get legendItemBadgeTemplate(): IgDataTemplate;
    set legendItemBadgeTemplate(v: IgDataTemplate);
    /**
     * Gets or sets whether the pie chart will handle drag interaction and make them avaiilable in its events.
    */
    get isDragInteractionEnabled(): boolean;
    set isDragInteractionEnabled(v: boolean);
    static ngAcceptInputType_isDragInteractionEnabled: boolean | string;
    /**
     * Gets or sets whether all surface interactions with the plot area should be disabled.
    */
    get isSurfaceInteractionDisabled(): boolean;
    set isSurfaceInteractionDisabled(v: boolean);
    static ngAcceptInputType_isSurfaceInteractionDisabled: boolean | string;
    /**
     * Gets or sets whether the pie chart should display mock data when data isn't present.
    */
    get shouldDisplayMockData(): boolean;
    set shouldDisplayMockData(v: boolean);
    static ngAcceptInputType_shouldDisplayMockData: boolean | string;
    /**
     * Gets or sets whether the pie chart should use a skeleton style for mock data.
    */
    get shouldUseSkeletonStyleForMockData(): boolean;
    set shouldUseSkeletonStyleForMockData(v: boolean);
    static ngAcceptInputType_shouldUseSkeletonStyleForMockData: boolean | string;
    /**
     * Determines display mode for zero values in the legend.
     * For example, handling zero values as valid slices and providing them with proper appearance settings.
    */
    get legendEmptyValuesMode(): LegendEmptyValuesMode;
    set legendEmptyValuesMode(v: LegendEmptyValuesMode);
    static ngAcceptInputType_legendEmptyValuesMode: LegendEmptyValuesMode | 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 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.
    */
    get pixelScalingRatio(): number;
    set pixelScalingRatio(v: number);
    static ngAcceptInputType_pixelScalingRatio: number | string;
    /**
     * 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.
    */
    get actualPixelScalingRatio(): number;
    set actualPixelScalingRatio(v: number);
    static ngAcceptInputType_actualPixelScalingRatio: number | string;
    /**
     * Gets or sets which mode to use for selecting slices.
    */
    get selectionMode(): SliceSelectionMode;
    set selectionMode(v: SliceSelectionMode);
    static ngAcceptInputType_selectionMode: SliceSelectionMode | string;
    /**
     * 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.
    */
    get selectedItem(): any;
    set selectedItem(v: 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.
    */
    get selectedItems(): IgxObjectCollection;
    set selectedItems(v: IgxObjectCollection);
    static ngAcceptInputType_selectedItems: IgxObjectCollection | string;
    /**
     * Manually overrides the style to use for the labels.
    */
    get textStyle(): string;
    set textStyle(v: string);
    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;
    /**
     * 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;
    /**
     * 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;
    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.
    */
    get labelClick(): EventEmitter<{
        sender: any;
        args: IgxLabelClickEventArgs;
    }>;
    private _selectedItemChanging;
    /**
     * Raised when the SelectedItem property is changing.  This event is cancelable.
    */
    get selectedItemChanging(): EventEmitter<{
        sender: any;
        args: IgxSelectedItemChangingEventArgs;
    }>;
    private _selectedItemsChanging;
    /**
     * Raised when the SelectedItems collection is changing.  This event is cancelable.
    */
    get selectedItemsChanging(): EventEmitter<{
        sender: any;
        args: IgxSelectedItemsChangingEventArgs;
    }>;
    private _selectedItemChanged;
    /**
     * Raised when the SelectedItem property has changed.
    */
    get selectedItemChanged(): EventEmitter<{
        sender: any;
        args: IgxSelectedItemChangedEventArgs;
    }>;
    private _selectedItemsChanged;
    /**
     * Raised when the SelectedItems collection has changed.
    */
    get selectedItemsChanged(): EventEmitter<{
        sender: any;
        args: IgxSelectedItemsChangedEventArgs;
    }>;
    private _sliceClick;
    /**
     * Raised when the slice is clicked.
    */
    get sliceClick(): EventEmitter<{
        sender: any;
        args: IgxSliceClickEventArgs;
    }>;
    private _sliceEnter;
    /**
     * Raised when a slice is entered by the pointer.
    */
    get sliceEnter(): EventEmitter<{
        sender: any;
        args: IgxSliceEventArgs;
    }>;
    private _sliceLeave;
    /**
     * Raised when a slice is left by the pointer;
    */
    get sliceLeave(): EventEmitter<{
        sender: any;
        args: IgxSliceEventArgs;
    }>;
    private _sliceHover;
    /**
     * Raised when a pointer moves over a slice.
    */
    get sliceHover(): EventEmitter<{
        sender: any;
        args: IgxSliceEventArgs;
    }>;
    protected _zoneRunner: (act: () => void) => void;
    protected _runInZone(act: () => void): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxPieChartBaseComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IgxPieChartBaseComponent, "ng-component", never, { "innerExtent": "innerExtent"; "valueMemberPath": "valueMemberPath"; "labelMemberPath": "labelMemberPath"; "legendLabelMemberPath": "legendLabelMemberPath"; "labelsPosition": "labelsPosition"; "labelOuterColor": "labelOuterColor"; "labelInnerColor": "labelInnerColor"; "actualLabelOuterColor": "actualLabelOuterColor"; "actualLabelInnerColor": "actualLabelInnerColor"; "leaderLineVisibility": "leaderLineVisibility"; "leaderLineType": "leaderLineType"; "leaderLineMargin": "leaderLineMargin"; "toolTip": "toolTip"; "othersCategoryThreshold": "othersCategoryThreshold"; "othersCategoryType": "othersCategoryType"; "othersCategoryText": "othersCategoryText"; "explodedRadius": "explodedRadius"; "radiusFactor": "radiusFactor"; "allowSliceSelection": "allowSliceSelection"; "allowSliceExplosion": "allowSliceExplosion"; "explodedSlices": "explodedSlices"; "labelExtent": "labelExtent"; "startAngle": "startAngle"; "sweepDirection": "sweepDirection"; "othersCategoryFill": "othersCategoryFill"; "othersCategoryStroke": "othersCategoryStroke"; "othersCategoryStrokeThickness": "othersCategoryStrokeThickness"; "othersCategoryOpacity": "othersCategoryOpacity"; "selectedSliceFill": "selectedSliceFill"; "selectedSliceStroke": "selectedSliceStroke"; "selectedSliceStrokeThickness": "selectedSliceStrokeThickness"; "selectedSliceOpacity": "selectedSliceOpacity"; "brushes": "brushes"; "actualBrushes": "actualBrushes"; "outlines": "outlines"; "actualOutlines": "actualOutlines"; "labelFormat": "labelFormat"; "labelFormatSpecifiers": "labelFormatSpecifiers"; "othersLabelFormat": "othersLabelFormat"; "othersLabelFormatSpecifiers": "othersLabelFormatSpecifiers"; "legendLabelFormat": "legendLabelFormat"; "legendLabelFormatSpecifiers": "legendLabelFormatSpecifiers"; "legendOthersLabelFormat": "legendOthersLabelFormat"; "legendOthersLabelFormatSpecifiers": "legendOthersLabelFormatSpecifiers"; "legendItemTemplate": "legendItemTemplate"; "legendItemBadgeTemplate": "legendItemBadgeTemplate"; "isDragInteractionEnabled": "isDragInteractionEnabled"; "isSurfaceInteractionDisabled": "isSurfaceInteractionDisabled"; "shouldDisplayMockData": "shouldDisplayMockData"; "shouldUseSkeletonStyleForMockData": "shouldUseSkeletonStyleForMockData"; "legendEmptyValuesMode": "legendEmptyValuesMode"; "formatLabel": "formatLabel"; "formatLegendLabel": "formatLegendLabel"; "pixelScalingRatio": "pixelScalingRatio"; "actualPixelScalingRatio": "actualPixelScalingRatio"; "selectionMode": "selectionMode"; "selectedItem": "selectedItem"; "selectedItems": "selectedItems"; "textStyle": "textStyle"; }, { "labelClick": "labelClick"; "selectedItemChanging": "selectedItemChanging"; "selectedItemsChanging": "selectedItemsChanging"; "selectedItemChanged": "selectedItemChanged"; "selectedItemsChanged": "selectedItemsChanged"; "sliceClick": "sliceClick"; "sliceEnter": "sliceEnter"; "sliceLeave": "sliceLeave"; "sliceHover": "sliceHover"; }, never, never>;
}
