import { Base, Point, Type, IEnumerable, IList } from "igniteui-react-core";
import { IOuterLabelWidthDecider } from "./IOuterLabelWidthDecider";
import { IFunnelLabelSizeDecider } from "./IFunnelLabelSizeDecider";
import { ServiceProvider } from "./ServiceProvider";
import { MessageChannel } from "./MessageChannel";
import { Rect } from "igniteui-react-core";
import { Brush } from "igniteui-react-core";
import { SliceInfo } from "./SliceInfo";
import { FontInfo } from "igniteui-react-core";
import { BrushCollection } from "igniteui-react-core";
import { MessageHandler } from "./MessageHandler";
import { ObjectColumn } from "./ObjectColumn";
import { Size } from "igniteui-react-core";
import { SliceInfoList } from "./SliceInfoList";
import { DoubleAnimator } from "igniteui-react-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-react-core";
import { IChartLegend } from "igniteui-react-core";
import { DataTemplate } from "igniteui-react-core";
import { ILegendSeries } from "igniteui-react-core";
import { Control } from "igniteui-react-core";
import { ILegendOwner } from "igniteui-react-core";
import { ILegendTemplateProvider } from "igniteui-react-core";
import { FastItemsSource } from "igniteui-react-core";
import { IFastItemColumn$1 } from "igniteui-react-core";
import { Visibility } from "igniteui-react-core";
import { FastItemsSourceEventAction } from "igniteui-react-core";
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 bp;
    ag: SliceInfoList;
    at: XamFunnelView;
    private cf;
    private cg;
    private cb;
    private cc;
    private bb;
    private bg;
    constructor();
    private cz;
    private au;
    protected get av(): DoubleAnimator;
    protected set av(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 al;
    get am(): DoubleColumn;
    set am(a: DoubleColumn);
    private ao;
    protected get ar(): ObjectColumn;
    protected set ar(a: ObjectColumn);
    private ap;
    protected get as(): ObjectColumn;
    protected set as(a: ObjectColumn);
    private cl;
    protected get cq(): string;
    protected set cq(a: string);
    private ci;
    protected get cn(): string;
    protected set cn(a: string);
    private ch;
    protected get cm(): string;
    protected set cm(a: string);
    private a4;
    get bj(): boolean;
    set bj(a: boolean);
    private bv;
    get b4(): number;
    set b4(a: number);
    private bu;
    get b3(): number;
    set b3(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 a0;
    protected get bc(): boolean;
    protected set bc(a: boolean);
    private a3;
    protected get bh(): boolean;
    protected set bh(a: boolean);
    private bt;
    get b2(): number;
    set b2(a: number);
    private a2;
    protected get be(): boolean;
    protected set be(a: boolean);
    private bq;
    protected get bw(): number;
    protected set bw(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 ax;
    protected get a9(): boolean;
    protected set a9(a: boolean);
    private bs;
    protected get b1(): number;
    protected set b1(a: number);
    private a5;
    protected get bm(): boolean;
    protected set bm(a: boolean);
    private dv;
    protected get dy(): Point;
    protected set dy(a: Point);
    private du;
    protected get dx(): Point;
    protected set dx(a: Point);
    private aw;
    protected get a8(): boolean;
    protected set a8(a: boolean);
    private b5;
    protected get b9(): number;
    protected set b9(a: number);
    private b6;
    protected get ca(): number;
    protected set ca(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 d0;
    protected get d3(): Style;
    protected set d3(a: Style);
    private d1;
    protected get d4(): Style;
    protected set d4(a: Style);
    private a7;
    protected get bo(): boolean;
    protected set bo(a: boolean);
    private a1;
    protected get bd(): boolean;
    protected set bd(a: boolean);
    private a6;
    protected get bn(): boolean;
    protected set bn(a: boolean);
    private az;
    protected get ba(): boolean;
    protected set ba(a: boolean);
    private ck;
    protected get cp(): string;
    protected set cp(a: string);
    private cj;
    protected get co(): string;
    protected set co(a: string);
    private br;
    private get bz();
    private c7;
    private c2;
    bl(): boolean;
    bf(): boolean;
    df(): void;
    private cu;
    private ct;
    private dc;
    private b0;
    private ay;
    private dd;
    private cr;
    private bi;
    private c0;
    private ce;
    private cd;
    private d2;
    private dt;
    private ds;
    private by;
    private an;
    private cw;
    private cy;
    private l;
    private cx;
    private di;
    private bk;
    private dh;
    private aq;
    private cv;
    private b7;
    private de;
    o: IChartLegend;
    private dp;
    get dr(): DataTemplate;
    set dr(a: DataTemplate);
    private dn;
    get dq(): DataTemplate;
    set dq(a: DataTemplate);
    dz: Rect;
    private c6;
    private dg;
    private dm;
    private dl;
    private c3;
    private c8;
    private da;
    private db;
    private c9;
    private c5;
    private c4;
    private dj;
    private dw;
    private b8;
    private bx;
    private af;
    private i;
    private dk;
    private c1;
    private cs;
}
/**
 * @hidden
 */
export declare class XamFunnelChart extends Control implements IItemProvider, ILegendOwner, ILegendTemplateProvider, ILegendSeries {
    static $t: Type;
    constructor();
    destroy(): void;
    private aq;
    get ar(): MessageHandler;
    set ar(a: MessageHandler);
    private dv;
    private dw;
    private as;
    get at(): ServiceProvider;
    set at(a: ServiceProvider);
    ap: MessageChannel;
    ax: XamFunnelConnector;
    private dr;
    private dg;
    itemsSource: IEnumerable;
    az: FastItemsSource;
    private bt;
    protected db(a: FastItemsSourceEventAction, b: number, c: number, d: string): void;
    c9: string;
    get a7(): IFastItemColumn$1<number>;
    set a7(a: IFastItemColumn$1<number>);
    private a2;
    ah: BrushCollection;
    ai: BrushCollection;
    bo: number;
    cd: string;
    get a3(): IFastItemColumn$1<any>;
    set a3(a: IFastItemColumn$1<any>);
    private a0;
    co: string;
    get a4(): IFastItemColumn$1<any>;
    set a4(a: IFastItemColumn$1<any>);
    private a1;
    ez: Visibility;
    e0: Visibility;
    au: OuterLabelAlignment;
    ak: FunnelSliceDisplay;
    private bu;
    get bw(): (arg1: any, arg2: number, arg3: any) => string;
    set bw(a: (arg1: any, arg2: number, arg3: any) => string);
    private bv;
    get bx(): (arg1: any, arg2: number, arg3: any) => string;
    set bx(a: (arg1: any, arg2: number, arg3: any) => string);
    by: number;
    bd: boolean;
    ew: Point;
    ev: Point;
    be: boolean;
    a8: boolean;
    bg: boolean;
    ex: Style;
    ey: Style;
    b0: any;
    private bk;
    private bh;
    get bj(): IList;
    legend: IChartLegend;
    legendItemTemplate: DataTemplate;
    legendItemBadgeTemplate: DataTemplate;
    bf: boolean;
    private b2;
    get cz(): string;
    set cz(a: string);
    private b1;
    get cr(): string;
    set cr(a: string);
    bq: number;
    onDetachedFromUI(): void;
    onAttachedToUI(): void;
    private dq;
    private a9;
    private ba;
    private a5;
    private a6;
    private de;
    private bc;
    private bb;
    private dx;
    private dy;
    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 du;
    private dt;
    private df;
    getItem(a: number): any;
    get count(): number;
    dd(): void;
    private bz;
    provideContainer(a: any): void;
    notifyResized(): void;
    dm(source_: any, a: number, b: any, c: any): void;
    dh(source_: any): void;
    dj(source_: any, a: number, b: any): void;
    dk(source_: any, a: number, b: any): void;
    private di;
    private ay;
    private av;
    get ag(): number[];
    set ag(a: number[]);
    dz(a: number): void;
    aw(): FunnelChartVisualData;
    b7(): string;
    resolveLegendIndex(): number;
    forSubItems(a: (arg1: any) => void): void;
    private bm;
    get bs(): number;
    set bs(a: number);
    private bl;
    get bn(): number;
    set bn(a: number);
    get container(): ILegendOwner;
    get isStacked(): boolean;
    get isVertical(): boolean;
    get isUsableInLegend(): boolean;
    get hasSubItems(): boolean;
    get hasMarkers(): boolean;
    private er;
    get et(): Brush;
    set et(a: Brush);
    private es;
    get eu(): Brush;
    set eu(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;
}
