import { Base, Point, Type, IEnumerable } from "igniteui-angular-core";
import { IOuterLabelWidthDecider } from "./IOuterLabelWidthDecider";
import { IFunnelLabelSizeDecider } from "./IFunnelLabelSizeDecider";
import { ServiceProvider } from "./ServiceProvider";
import { MessageChannel } from "./MessageChannel";
import { Rect } from "igniteui-angular-core";
import { Brush } from "igniteui-angular-core";
import { SliceInfo } from "./SliceInfo";
import { FontInfo } from "igniteui-angular-core";
import { BrushCollection } from "igniteui-angular-core";
import { MessageHandler } from "./MessageHandler";
import { ObjectColumn } from "./ObjectColumn";
import { Size } from "igniteui-angular-core";
import { Visibility } from "igniteui-angular-core";
import { SliceInfoList } from "./SliceInfoList";
import { DoubleAnimator } from "igniteui-angular-core";
import { Bezier } from "./Bezier";
import { DoubleColumn } from "./DoubleColumn";
import { OuterLabelAlignment } from "./OuterLabelAlignment";
import { FunnelSliceDisplay } from "./FunnelSliceDisplay";
import { IItemProvider } from "./IItemProvider";
import { SliceSelectionManager } from "./SliceSelectionManager";
import { FunnelFrame } from "./FunnelFrame";
import { Style } from "igniteui-angular-core";
import { IChartLegend } from "igniteui-angular-core";
import { DataTemplate } from "igniteui-angular-core";
import { HighlightedValueDisplayMode } from "igniteui-angular-core";
import { ILegendSeries } from "igniteui-angular-core";
import { Control } from "igniteui-angular-core";
import { ILegendOwner } from "igniteui-angular-core";
import { ILegendTemplateProvider } from "igniteui-angular-core";
import { DependencyProperty } from "igniteui-angular-core";
import { FastItemsSource } from "igniteui-angular-core";
import { IFastItemColumn$1 } from "igniteui-angular-core";
import { FunnelChartSelectedItemsCollection } from "./FunnelChartSelectedItemsCollection";
import { FastItemsSourceEventAction } from "igniteui-angular-core";
import { FunnelChartSelectedItemsChangedEventArgs } from "./FunnelChartSelectedItemsChangedEventArgs";
import { FunnelSliceClickedEventArgs } from "./FunnelSliceClickedEventArgs";
import { FunnelSliceEventArgs } from "./FunnelSliceEventArgs";
import { FunnelChartVisualData } from "./FunnelChartVisualData";
/**
 * @hidden
 */
export declare class XamFunnelView extends Base implements IOuterLabelWidthDecider, IFunnelLabelSizeDecider {
    static $t: Type;
    g: MessageHandler;
    private h;
    get i(): ServiceProvider;
    set i(a: ServiceProvider);
    f: MessageChannel;
    private am;
    private an;
    private al;
    private ao;
    private bg;
    private ad;
    private ae;
    private ah;
    private ai;
    private ag;
    private af;
    private o;
    private q;
    private r;
    private p;
    private j;
    private be;
    private bf;
    private k;
    private l;
    private x;
    private y;
    private z;
    private ap;
    private aq;
    private u;
    private v;
    private ba;
    private a6;
    private a5;
    az(): void;
    ax(a: XamFunnelChart): void;
    private aj;
    private bc;
    private bb;
    private ar;
    private at;
    private a3;
    a4(a: () => void): void;
    private ay;
    aa(): number;
    m(): FontInfo;
    n(): FontInfo;
    ab(): number;
    ac(): number;
    private static a;
    private static b;
    private c;
    private e;
    private t;
    private w;
    d(a: boolean): BrushCollection;
    private ak;
    private a7;
    constructor();
    av(a: XamFunnelChart): void;
    private aw;
    private a1;
    private bd;
    private as;
    a0(): void;
    private a9;
    private a8;
    decideWidth(a: ObjectColumn): number;
    decideLabelSize(a: SliceInfo, b: boolean): Size;
    s(a: ObjectColumn, f_: any): boolean;
    au(): void;
    a2(): void;
}
/**
 * @hidden
 */
export declare class XamFunnelController extends Base {
    static $t: Type;
    private readonly br;
    ag: SliceInfoList;
    av: XamFunnelView;
    private cj;
    private ck;
    private cf;
    private cg;
    private bd;
    private bi;
    constructor();
    private c3;
    private aw;
    protected get ax(): DoubleAnimator;
    protected set ax(a: DoubleAnimator);
    private aj;
    protected get ak(): Bezier;
    protected set ak(a: Bezier);
    private z;
    protected get aa(): MessageHandler;
    protected set aa(a: MessageHandler);
    private am;
    get ao(): DoubleColumn;
    set ao(a: DoubleColumn);
    private al;
    get an(): DoubleColumn;
    set an(a: DoubleColumn);
    private aq;
    protected get at(): ObjectColumn;
    protected set at(a: ObjectColumn);
    private ar;
    protected get au(): ObjectColumn;
    protected set au(a: ObjectColumn);
    private cp;
    protected get cu(): string;
    protected set cu(a: string);
    private cm;
    protected get cr(): string;
    protected set cr(a: string);
    private cl;
    protected get cq(): string;
    protected set cq(a: string);
    private a6;
    get bl(): boolean;
    set bl(a: boolean);
    private by;
    get b8(): number;
    set b8(a: number);
    private bx;
    get b7(): number;
    set b7(a: number);
    private w;
    protected get y(): MessageChannel;
    protected set y(a: MessageChannel);
    private v;
    protected get x(): MessageChannel;
    protected set x(a: MessageChannel);
    private t;
    protected get u(): IOuterLabelWidthDecider;
    protected set u(a: IOuterLabelWidthDecider);
    private p;
    protected get q(): IFunnelLabelSizeDecider;
    protected set q(a: IFunnelLabelSizeDecider);
    private a2;
    protected get be(): boolean;
    protected set be(a: boolean);
    private a5;
    protected get bj(): boolean;
    protected set bj(a: boolean);
    private bw;
    get b6(): number;
    set b6(a: number);
    private a4;
    protected get bg(): boolean;
    protected set bg(a: boolean);
    private bs;
    protected get bz(): number;
    protected set bz(a: number);
    private a;
    protected get c(): BrushCollection;
    protected set c(a: BrushCollection);
    private b;
    protected get d(): BrushCollection;
    protected set d(a: BrushCollection);
    private ad;
    protected get ae(): OuterLabelAlignment;
    protected set ae(a: OuterLabelAlignment);
    private m;
    protected get n(): FunnelSliceDisplay;
    protected set n(a: FunnelSliceDisplay);
    private az;
    protected get bb(): boolean;
    protected set bb(a: boolean);
    private bv;
    protected get b5(): number;
    protected set b5(a: number);
    private a7;
    protected get bo(): boolean;
    protected set bo(a: boolean);
    private dz;
    protected get d2(): Point;
    protected set d2(a: Point);
    private dy;
    protected get d1(): Point;
    protected set d1(a: Point);
    private ay;
    protected get ba(): boolean;
    protected set ba(a: boolean);
    private b9;
    protected get cd(): number;
    protected set cd(a: number);
    private ca;
    protected get ce(): number;
    protected set ce(a: number);
    private r;
    protected get s(): IItemProvider;
    protected set s(a: IItemProvider);
    private ab;
    get ac(): ServiceProvider;
    set ac(a: ServiceProvider);
    private ah;
    get ai(): SliceSelectionManager;
    set ai(a: SliceSelectionManager);
    private g;
    protected get k(): FunnelFrame;
    protected set k(a: FunnelFrame);
    private e;
    protected get h(): FunnelFrame;
    protected set h(a: FunnelFrame);
    private f;
    protected get j(): FunnelFrame;
    protected set j(a: FunnelFrame);
    private d4;
    protected get d7(): Style;
    protected set d7(a: Style);
    private d5;
    protected get d8(): Style;
    protected set d8(a: Style);
    private a9;
    protected get bq(): boolean;
    protected set bq(a: boolean);
    private a3;
    protected get bf(): boolean;
    protected set bf(a: boolean);
    private a8;
    protected get bp(): boolean;
    protected set bp(a: boolean);
    private a1;
    protected get bc(): boolean;
    protected set bc(a: boolean);
    private d9;
    protected get ea(): Visibility;
    protected set ea(a: Visibility);
    private bt;
    protected get b2(): number;
    protected set b2(a: number);
    private co;
    protected get ct(): string;
    protected set ct(a: string);
    private cn;
    protected get cs(): string;
    protected set cs(a: string);
    private bu;
    private get b3();
    private db;
    private c6;
    bn(): boolean;
    bh(): boolean;
    dj(): void;
    private cy;
    private cx;
    private dg;
    private b4;
    private a0;
    private dh;
    private cv;
    private bk;
    private c4;
    private ci;
    private ch;
    private d6;
    private dx;
    private dw;
    private b1;
    private ap;
    private c0;
    private c2;
    private l;
    private c1;
    private dm;
    private bm;
    private dl;
    private as;
    private cz;
    private cb;
    private di;
    o: IChartLegend;
    private dt;
    get dv(): DataTemplate;
    set dv(a: DataTemplate);
    private ds;
    get du(): DataTemplate;
    set du(a: DataTemplate);
    d3: Rect;
    private da;
    private dk;
    private dr;
    private dq;
    private c7;
    private dc;
    private de;
    private df;
    private dd;
    private c9;
    private c8;
    private dn;
    private d0;
    private cc;
    private b0;
    private af;
    private i;
    private dp;
    private c5;
    private cw;
}
/**
 * @hidden
 */
export declare class XamFunnelChart extends Control implements IItemProvider, ILegendOwner, ILegendTemplateProvider, ILegendSeries {
    static $t: Type;
    constructor();
    get isLayer(): boolean;
    destroy(): void;
    private at;
    get au(): MessageHandler;
    set au(a: MessageHandler);
    private ek;
    private el;
    private av;
    get aw(): ServiceProvider;
    set aw(a: ServiceProvider);
    as: MessageChannel;
    a0: XamFunnelConnector;
    private eg;
    private d5;
    itemsSource: IEnumerable;
    a2: FastItemsSource;
    private b5;
    protected dy(a: FastItemsSourceEventAction, b: number, c: number, d: string): void;
    dw: string;
    get bg(): IFastItemColumn$1<number>;
    set bg(a: IFastItemColumn$1<number>);
    private ba;
    highlightedItemsSource: IEnumerable;
    a3: FastItemsSource;
    private b6;
    protected d3(a: FastItemsSourceEventAction, b: number, c: number, d: string): void;
    cs: string;
    get bb(): IFastItemColumn$1<number>;
    set bb(a: IFastItemColumn$1<number>);
    private a7;
    private bu;
    get bx(): number;
    set bx(a: number);
    b1: number;
    eq(): void;
    private a4;
    get a5(): HighlightedValueDisplayMode;
    set a5(a: HighlightedValueDisplayMode);
    ep(): void;
    get a6(): HighlightedValueDisplayMode;
    set a6(a: HighlightedValueDisplayMode);
    static readonly ez: DependencyProperty;
    ah: BrushCollection;
    ai: BrushCollection;
    bz: number;
    cz: string;
    get bc(): IFastItemColumn$1<any>;
    set bc(a: IFastItemColumn$1<any>);
    private a8;
    da: string;
    get bd(): IFastItemColumn$1<any>;
    set bd(a: IFastItemColumn$1<any>);
    private a9;
    fv: Visibility;
    fw: Visibility;
    ax: OuterLabelAlignment;
    an: FunnelSliceDisplay;
    private b7;
    get b9(): (arg1: any, arg2: number, arg3: any) => string;
    set b9(a: (arg1: any, arg2: number, arg3: any) => string);
    private b8;
    get ca(): (arg1: any, arg2: number, arg3: any) => string;
    set ca(a: (arg1: any, arg2: number, arg3: any) => string);
    cb: number;
    bn: boolean;
    fs: Point;
    fr: Point;
    bo: boolean;
    bh: boolean;
    bq: boolean;
    ft: Style;
    fu: Style;
    cd: any;
    private ak;
    private br;
    get selectedItems(): FunnelChartSelectedItemsCollection;
    selectedItemsChanged: (sender: any, e: FunnelChartSelectedItemsChangedEventArgs) => void;
    ef(a: any, b: FunnelChartSelectedItemsChangedEventArgs): void;
    legend: IChartLegend;
    legendItemTemplate: DataTemplate;
    legendItemBadgeTemplate: DataTemplate;
    bp: boolean;
    private cf;
    get dl(): string;
    set dl(a: string);
    private ce;
    get dd(): string;
    set dd(a: string);
    b2: number;
    onDetachedFromUI(): void;
    onAttachedToUI(): void;
    private ee;
    private bi;
    private bk;
    private bj;
    private be;
    private bf;
    private d2;
    private d1;
    private bm;
    private bl;
    private em;
    private en;
    sliceClicked: (sender: any, args: FunnelSliceClickedEventArgs) => void;
    sliceEnter: (sender: any, args: FunnelSliceEventArgs) => void;
    sliceLeave: (sender: any, args: FunnelSliceEventArgs) => void;
    sliceHover: (sender: any, args: FunnelSliceEventArgs) => void;
    private ej;
    private ei;
    private d4;
    getItem(a: number): any;
    get count(): number;
    d0(): void;
    private cc;
    provideContainer(a: any): void;
    notifyResized(): void;
    eb(source_: any, a: number, b: any, c: any): void;
    d6(source_: any): void;
    d8(source_: any, a: number, b: any): void;
    d9(source_: any, a: number, b: any): void;
    private d7;
    private a1;
    private ay;
    get ag(): number[];
    set ag(a: number[]);
    eo(a: number): void;
    az(): FunnelChartVisualData;
    cm(): string;
    resolveLegendIndex(): number;
    forSubItems(a: (arg1: any) => void): void;
    private bw;
    get b4(): number;
    set b4(a: number);
    private bv;
    get by(): number;
    set by(a: number);
    get container(): ILegendOwner;
    get isStacked(): boolean;
    get isVertical(): boolean;
    get isUsableInLegend(): boolean;
    get hasSubItems(): boolean;
    get hasMarkers(): boolean;
    private fn;
    get fp(): Brush;
    set fp(a: Brush);
    private fo;
    get fq(): Brush;
    set fq(a: Brush);
    static $$p: string[];
}
/**
 * @hidden
 */
export declare class XamFunnelConnector extends Base {
    static $t: Type;
    private d;
    private b;
    get e(): XamFunnelView;
    get c(): XamFunnelController;
    private a;
    g(): void;
    constructor(a: XamFunnelView, b: XamFunnelChart);
    h(a: XamFunnelView): void;
    f(): void;
    i(): void;
}
