import { EventEmitter, AfterViewInit, OnDestroy, ViewContainerRef, NgZone, 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;
    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);
    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": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "legend": { "alias": "legend"; "required": false; }; "valueMemberPath": { "alias": "valueMemberPath"; "required": false; }; "highlightedValueMemberPath": { "alias": "highlightedValueMemberPath"; "required": false; }; "actualHighlightValueOpacity": { "alias": "actualHighlightValueOpacity"; "required": false; }; "highlightValueOpacity": { "alias": "highlightValueOpacity"; "required": false; }; "actualHighlightValueDisplayMode": { "alias": "actualHighlightValueDisplayMode"; "required": false; }; "highlightValueDisplayMode": { "alias": "highlightValueDisplayMode"; "required": false; }; "brushes": { "alias": "brushes"; "required": false; }; "outlines": { "alias": "outlines"; "required": false; }; "bottomEdgeWidth": { "alias": "bottomEdgeWidth"; "required": false; }; "innerLabelMemberPath": { "alias": "innerLabelMemberPath"; "required": false; }; "outerLabelMemberPath": { "alias": "outerLabelMemberPath"; "required": false; }; "innerLabelVisibility": { "alias": "innerLabelVisibility"; "required": false; }; "outerLabelVisibility": { "alias": "outerLabelVisibility"; "required": false; }; "outerLabelAlignment": { "alias": "outerLabelAlignment"; "required": false; }; "funnelSliceDisplay": { "alias": "funnelSliceDisplay"; "required": false; }; "formatInnerLabel": { "alias": "formatInnerLabel"; "required": false; }; "formatOuterLabel": { "alias": "formatOuterLabel"; "required": false; }; "transitionDuration": { "alias": "transitionDuration"; "required": false; }; "isInverted": { "alias": "isInverted"; "required": false; }; "useBezierCurve": { "alias": "useBezierCurve"; "required": false; }; "allowSliceSelection": { "alias": "allowSliceSelection"; "required": false; }; "useUnselectedStyle": { "alias": "useUnselectedStyle"; "required": false; }; "selectedSliceFill": { "alias": "selectedSliceFill"; "required": false; }; "selectedSliceStroke": { "alias": "selectedSliceStroke"; "required": false; }; "selectedSliceStrokeThickness": { "alias": "selectedSliceStrokeThickness"; "required": false; }; "selectedSliceOpacity": { "alias": "selectedSliceOpacity"; "required": false; }; "unselectedSliceFill": { "alias": "unselectedSliceFill"; "required": false; }; "unselectedSliceStroke": { "alias": "unselectedSliceStroke"; "required": false; }; "unselectedSliceStrokeThickness": { "alias": "unselectedSliceStrokeThickness"; "required": false; }; "unselectedSliceOpacity": { "alias": "unselectedSliceOpacity"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "legendItemBadgeTemplate": { "alias": "legendItemBadgeTemplate"; "required": false; }; "useOuterLabelsForLegend": { "alias": "useOuterLabelsForLegend"; "required": false; }; "textStyle": { "alias": "textStyle"; "required": false; }; "outerLabelTextStyle": { "alias": "outerLabelTextStyle"; "required": false; }; "outlineThickness": { "alias": "outlineThickness"; "required": false; }; "pixelScalingRatio": { "alias": "pixelScalingRatio"; "required": false; }; "outerLabelTextColor": { "alias": "outerLabelTextColor"; "required": false; }; "textColor": { "alias": "textColor"; "required": false; }; }, { "selectedItemsChanged": "selectedItemsChanged"; "sliceClicked": "sliceClicked"; "sliceEnter": "sliceEnter"; "sliceLeave": "sliceLeave"; "sliceHover": "sliceHover"; }, never, never, true, never>;
}
