import { EventEmitter, AfterViewInit, OnDestroy, ViewContainerRef, NgZone, ComponentFactoryResolver, Renderer2, Injector } from '@angular/core';
import { XamFunnelChart } from './XamFunnelChart';
import { Visibility } from "igniteui-angular-core";
import { OuterLabelAlignment } from './OuterLabelAlignment';
import { FunnelSliceDisplay } from './FunnelSliceDisplay';
import { IgxFunnelSliceClickedEventArgs } from './igx-funnel-slice-clicked-event-args';
import { IgxFunnelSliceEventArgs } from './igx-funnel-slice-event-args';
import { IgDataTemplate } from "igniteui-angular-core";
import { HighlightedValueDisplayMode } from "igniteui-angular-core";
import { IgxFunnelChartSelectedItemsCollection } from './igx-funnel-chart-selected-items-collection';
import { IgxFunnelChartSelectedItemsChangedEventArgs } from './igx-funnel-chart-selected-items-changed-event-args';
import * as i0 from "@angular/core";
/**
 * Represents a funnel chart.
*/
export declare class IgxFunnelChartComponent implements AfterViewInit, OnDestroy {
    private renderer;
    private _elRef;
    private ngZone;
    private injector;
    private componentFactoryResolver;
    container: Element;
    _dynamicContent: ViewContainerRef;
    private _height;
    private _width;
    set height(value: string);
    get height(): string;
    set width(value: string);
    get width(): string;
    private _root;
    constructor(renderer: Renderer2, _elRef: ViewContainerRef, ngZone: NgZone, injector: Injector, componentFactoryResolver: ComponentFactoryResolver);
    ngAfterViewInit(): void;
    updateStyle(): void;
    ngOnDestroy(): void;
    private _wrapper;
    protected createImplementation(): XamFunnelChart;
    protected createSeriesComponent(type: string): any;
    private _chart;
    private _dataSource;
    set dataSource(value: Array<any>);
    get dataSource(): Array<any>;
    bindData(): void;
    /**
     * Gets or sets the legend used for the current chart.
    */
    get legend(): any;
    set legend(v: any);
    protected _implementation: any;
    /**
     * @hidden
     */
    get i(): XamFunnelChart; /**
                                 * @hidden
                                 */
    static _createFromInternal(internal: any): IgxFunnelChartComponent;
    /**
 * Gets or sets the value member path for the funnel chart.
*/
    get valueMemberPath(): string;
    set valueMemberPath(v: string);
    /**
     * Gets or sets the highlighted value member path for the funnel chart.
    */
    get highlightedValueMemberPath(): string;
    set highlightedValueMemberPath(v: string);
    /**
     * Gets the actual opacity of the primary needle while highlighting
    */
    get actualHighlightValueOpacity(): number;
    set actualHighlightValueOpacity(v: number);
    static ngAcceptInputType_actualHighlightValueOpacity: number | string;
    /**
     * Gets or sets the opacity while highlighting
    */
    get highlightValueOpacity(): number;
    set highlightValueOpacity(v: number);
    static ngAcceptInputType_highlightValueOpacity: number | string;
    /**
     * Gets whether and how to display the highlighted value.
    */
    get actualHighlightValueDisplayMode(): HighlightedValueDisplayMode;
    set actualHighlightValueDisplayMode(v: HighlightedValueDisplayMode);
    static ngAcceptInputType_actualHighlightValueDisplayMode: HighlightedValueDisplayMode | string;
    /**
     * Gets or sets whether and how to display the highlighted value.
    */
    get highlightValueDisplayMode(): HighlightedValueDisplayMode;
    set highlightValueDisplayMode(v: HighlightedValueDisplayMode);
    static ngAcceptInputType_highlightValueDisplayMode: HighlightedValueDisplayMode | string;
    /**
     * 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 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 or sets the percentage (from near 0 to 1) of space the bottom edge of the funnel should take.
    */
    get bottomEdgeWidth(): number;
    set bottomEdgeWidth(v: number);
    static ngAcceptInputType_bottomEdgeWidth: number | string;
    /**
     * Gets or sets the InnerLabel mapping property for the current series object.
    */
    get innerLabelMemberPath(): string;
    set innerLabelMemberPath(v: string);
    /**
     * Gets or sets the OuterLabel mapping property for the current series object.
    */
    get outerLabelMemberPath(): string;
    set outerLabelMemberPath(v: string);
    /**
     * Gets or sets whether the inner labels are visible.
    */
    get innerLabelVisibility(): Visibility;
    set innerLabelVisibility(v: Visibility);
    static ngAcceptInputType_innerLabelVisibility: Visibility | string;
    /**
     * Gets or sets whether the outer labels are visible.
    */
    get outerLabelVisibility(): Visibility;
    set outerLabelVisibility(v: Visibility);
    static ngAcceptInputType_outerLabelVisibility: Visibility | string;
    /**
     * Gets or sets which side of the chart the outer labels should appear.
    */
    get outerLabelAlignment(): OuterLabelAlignment;
    set outerLabelAlignment(v: OuterLabelAlignment);
    static ngAcceptInputType_outerLabelAlignment: OuterLabelAlignment | string;
    /**
     * Gets or sets how the heights of the funnel slices should be configured.
    */
    get funnelSliceDisplay(): FunnelSliceDisplay;
    set funnelSliceDisplay(v: FunnelSliceDisplay);
    static ngAcceptInputType_funnelSliceDisplay: FunnelSliceDisplay | string;
    /**
     * Gets or sets the formatter function for inner labels. Function should return string and it takes 3 parameters: 1st-value of item to format, 2nd-index of item within data, 3rd-reference to the funnel chart.
    */
    get formatInnerLabel(): (arg1: any, arg2: number, arg3: any) => string;
    set formatInnerLabel(v: (arg1: any, arg2: number, arg3: any) => string);
    /**
     * Gets or sets the formatter function for outer labels. Function should return string and it takes 3 parameters: 1st-value of item to format, 2nd-index of item within data, 3rd-reference to the funnel chart.
    */
    get formatOuterLabel(): (arg1: any, arg2: number, arg3: any) => string;
    set formatOuterLabel(v: (arg1: any, arg2: number, arg3: any) => string);
    /**
     * Gets or sets how long the animations should take to run.
    */
    get transitionDuration(): number;
    set transitionDuration(v: number);
    static ngAcceptInputType_transitionDuration: number | string;
    /**
     * Gets or sets if the funnel should be rendered inverted.
    */
    get isInverted(): boolean;
    set isInverted(v: boolean);
    static ngAcceptInputType_isInverted: boolean | string;
    /**
     * Gets or sets whether to use a Bezier curve to define the funnel.
    */
    get useBezierCurve(): boolean;
    set useBezierCurve(v: boolean);
    static ngAcceptInputType_useBezierCurve: boolean | string;
    /**
     * Gets or sets whether to allow slices to be selected.
    */
    get allowSliceSelection(): boolean;
    set allowSliceSelection(v: boolean);
    static ngAcceptInputType_allowSliceSelection: boolean | string;
    /**
     * Gets or sets whether to use the unselected style on unselected slices.
    */
    get useUnselectedStyle(): boolean;
    set useUnselectedStyle(v: boolean);
    static ngAcceptInputType_useUnselectedStyle: boolean | string;
    /**
     * 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;
    ensureSelectedSliceStyle(): void;
    /**
     * Gets or sets the fill brush.
    */
    get unselectedSliceFill(): string;
    set unselectedSliceFill(v: string);
    /**
     * Gets or sets the stroke brush.
    */
    get unselectedSliceStroke(): string;
    set unselectedSliceStroke(v: string);
    /**
     * Gets or sets the stroke thickness.
    */
    get unselectedSliceStrokeThickness(): number;
    set unselectedSliceStrokeThickness(v: number);
    static ngAcceptInputType_unselectedSliceStrokeThickness: number | string;
    /**
     * Gets or sets the opacity.
    */
    get unselectedSliceOpacity(): number;
    set unselectedSliceOpacity(v: number);
    static ngAcceptInputType_unselectedSliceOpacity: number | string;
    ensureUnselectedSliceStyle(): void;
    private _selectedItems;
    /**
     * Represents the current selected items.
    */
    get selectedItems(): IgxFunnelChartSelectedItemsCollection;
    set selectedItems(v: IgxFunnelChartSelectedItemsCollection);
    static ngAcceptInputType_selectedItems: IgxFunnelChartSelectedItemsCollection | string;
    /**
     * Gets or sets the LegendItemBadgeTemplate to use for the legend items.
    */
    get legendItemBadgeTemplate(): IgDataTemplate;
    set legendItemBadgeTemplate(v: IgDataTemplate);
    /**
     * Gets or sets whether to use the outer labels to identify the legend items.
    */
    get useOuterLabelsForLegend(): boolean;
    set useOuterLabelsForLegend(v: boolean);
    static ngAcceptInputType_useOuterLabelsForLegend: boolean | string;
    /**
     * Gets or sets the text style for inner labels
    */
    get textStyle(): string;
    set textStyle(v: string);
    /**
     * Gets or sets the text style for outer labels
    */
    get outerLabelTextStyle(): string;
    set outerLabelTextStyle(v: string);
    /**
     * Gets or sets the thickness of outline around slices.
    */
    get outlineThickness(): number;
    set outlineThickness(v: number);
    static ngAcceptInputType_outlineThickness: number | 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;
    /**
     * Gets or sets the brush used for the outer labels.
    */
    get outerLabelTextColor(): string;
    set outerLabelTextColor(v: string);
    /**
     * Gets or sets the brush used for the inner labels.
    */
    get textColor(): string;
    set textColor(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 funnel chart to finish any deferred work before printing or evaluating its visual.
 * This should only be called if the visual of the funnel chart needs to be synchronously saved or evaluated.
 * Calling this method too often will hinder the performance of the funnel chart.

*/
    flush(): void;
    /**
     * Provides container for funnel chart
    
    */
    provideContainer(container: any): void;
    /**
     * Notifies the controller and view about a size change.
    
    */
    notifyResized(): void;
    notifySetItem(source_: any, index: number, oldItem: any, newItem: any): void;
    /**
     * Manually notifies the 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 chart is bound to is already observable.
    
    */
    notifyClearItems(source_: any): void;
    notifyInsertItem(source_: any, index: number, newItem: any): void;
    notifyRemoveItem(source_: any, index: number, oldItem: any): void;
    /**
     * Toggle selection of item at index.
    
    */
    toggleSelection(index: number): void;
    /**
     * Exports and serializes the chart visuals.
    
    */
    exportSerializedVisualData(): string;
    private _selectedItemsChanged;
    /**
     * Raised when the SelectedItems collection has changed.
    */
    get selectedItemsChanged(): EventEmitter<{
        sender: any;
        args: IgxFunnelChartSelectedItemsChangedEventArgs;
    }>;
    private _sliceClicked;
    /**
     * Event which is raised when a slice is clicked.
     * Function takes first argument null and second argument ui.
     * Use ui.owner to obtain reference to igFunnelChart.
     * Use ui.index to obtain index of clicked slice.
     * Use ui.item to obtain reference to clicked slice item.
     * Use ui.selected to check if slice became selected.
    */
    get sliceClicked(): EventEmitter<{
        sender: any;
        args: IgxFunnelSliceClickedEventArgs;
    }>;
    private _sliceEnter;
    /**
     * Raised when a funnel slice is entered.
    */
    get sliceEnter(): EventEmitter<{
        sender: any;
        args: IgxFunnelSliceEventArgs;
    }>;
    private _sliceLeave;
    /**
     * Raised when a funnel slice is left.
    */
    get sliceLeave(): EventEmitter<{
        sender: any;
        args: IgxFunnelSliceEventArgs;
    }>;
    private _sliceHover;
    /**
     * Raised when a funnel slice is hovered.
    */
    get sliceHover(): EventEmitter<{
        sender: any;
        args: IgxFunnelSliceEventArgs;
    }>;
    protected _zoneRunner: (act: () => void) => void;
    protected _runInZone(act: () => void): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxFunnelChartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IgxFunnelChartComponent, "igx-funnel-chart", never, { "height": "height"; "width": "width"; "dataSource": "dataSource"; "legend": "legend"; "valueMemberPath": "valueMemberPath"; "highlightedValueMemberPath": "highlightedValueMemberPath"; "actualHighlightValueOpacity": "actualHighlightValueOpacity"; "highlightValueOpacity": "highlightValueOpacity"; "actualHighlightValueDisplayMode": "actualHighlightValueDisplayMode"; "highlightValueDisplayMode": "highlightValueDisplayMode"; "brushes": "brushes"; "outlines": "outlines"; "bottomEdgeWidth": "bottomEdgeWidth"; "innerLabelMemberPath": "innerLabelMemberPath"; "outerLabelMemberPath": "outerLabelMemberPath"; "innerLabelVisibility": "innerLabelVisibility"; "outerLabelVisibility": "outerLabelVisibility"; "outerLabelAlignment": "outerLabelAlignment"; "funnelSliceDisplay": "funnelSliceDisplay"; "formatInnerLabel": "formatInnerLabel"; "formatOuterLabel": "formatOuterLabel"; "transitionDuration": "transitionDuration"; "isInverted": "isInverted"; "useBezierCurve": "useBezierCurve"; "allowSliceSelection": "allowSliceSelection"; "useUnselectedStyle": "useUnselectedStyle"; "selectedSliceFill": "selectedSliceFill"; "selectedSliceStroke": "selectedSliceStroke"; "selectedSliceStrokeThickness": "selectedSliceStrokeThickness"; "selectedSliceOpacity": "selectedSliceOpacity"; "unselectedSliceFill": "unselectedSliceFill"; "unselectedSliceStroke": "unselectedSliceStroke"; "unselectedSliceStrokeThickness": "unselectedSliceStrokeThickness"; "unselectedSliceOpacity": "unselectedSliceOpacity"; "selectedItems": "selectedItems"; "legendItemBadgeTemplate": "legendItemBadgeTemplate"; "useOuterLabelsForLegend": "useOuterLabelsForLegend"; "textStyle": "textStyle"; "outerLabelTextStyle": "outerLabelTextStyle"; "outlineThickness": "outlineThickness"; "pixelScalingRatio": "pixelScalingRatio"; "outerLabelTextColor": "outerLabelTextColor"; "textColor": "textColor"; }, { "selectedItemsChanged": "selectedItemsChanged"; "sliceClicked": "sliceClicked"; "sliceEnter": "sliceEnter"; "sliceLeave": "sliceLeave"; "sliceHover": "sliceHover"; }, never, never>;
}
