import { Base, Point, Type, IEnumerable, IList } from "igniteui-angular-core";
import { IOuterLabelWidthDecider } from "./IOuterLabelWidthDecider";
import { IFunnelLabelSizeDecider } from "./IFunnelLabelSizeDecider";
import { ServiceProvider } from "./ServiceProvider";
import { MessageChannel } from "./MessageChannel";
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 { 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 { ILegendSeries } from "igniteui-angular-core";
import { Control } from "igniteui-angular-core";
import { ILegendOwner } from "igniteui-angular-core";
import { ILegendTemplateProvider } from "igniteui-angular-core";
import { FastItemsSource } from "igniteui-angular-core";
import { IFastItemColumn$1 } from "igniteui-angular-core";
import { Visibility } from "igniteui-angular-core";
import { FastItemsSourceEventAction } from "igniteui-angular-core";
import { FunnelSliceClickedEventArgs } from "./FunnelSliceClickedEventArgs";
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 ds;
    protected get dv(): Point;
    protected set dv(a: Point);
    private dr;
    protected get du(): Point;
    protected set du(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 dw;
    protected get dz(): Style;
    protected set dz(a: Style);
    private dx;
    protected get d0(): Style;
    protected set d0(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;
    dc(): void;
    private cu;
    private ct;
    private c9;
    private b0;
    private ay;
    private da;
    private cr;
    private bi;
    private c0;
    private ce;
    private cd;
    private dy;
    private dq;
    private dp;
    private by;
    private an;
    private cw;
    private cy;
    private l;
    private cx;
    private df;
    private bk;
    private de;
    private aq;
    private cv;
    private b7;
    private db;
    o: IChartLegend;
    private dl;
    get dn(): DataTemplate;
    set dn(a: DataTemplate);
    private dk;
    get dm(): DataTemplate;
    set dm(a: DataTemplate);
    private c6;
    private dd;
    private dj;
    private di;
    private c3;
    private c8;
    private c5;
    private c4;
    private dg;
    private dt;
    private b8;
    private bx;
    private af;
    private i;
    private dh;
    private c1;
    private cs;
}
/**
 * @hidden
 */
export declare class XamFunnelChart extends Control implements IItemProvider, ILegendOwner, ILegendTemplateProvider, ILegendSeries {
    static $t: Type;
    constructor();
    destroy(): void;
    private an;
    get ao(): MessageHandler;
    set ao(a: MessageHandler);
    private dr;
    private ds;
    private ap;
    get aq(): ServiceProvider;
    set aq(a: ServiceProvider);
    am: MessageChannel;
    au: XamFunnelConnector;
    private dm;
    private dc;
    itemsSource: IEnumerable;
    aw: FastItemsSource;
    private bq;
    protected c8(a: FastItemsSourceEventAction, b: number, c: number, d: string): void;
    c6: string;
    get a4(): IFastItemColumn$1<number>;
    set a4(a: IFastItemColumn$1<number>);
    private az;
    ah: BrushCollection;
    ai: BrushCollection;
    bl: number;
    ca: string;
    get a0(): IFastItemColumn$1<any>;
    set a0(a: IFastItemColumn$1<any>);
    private ax;
    cl: string;
    get a1(): IFastItemColumn$1<any>;
    set a1(a: IFastItemColumn$1<any>);
    private ay;
    eu: Visibility;
    ev: Visibility;
    ar: OuterLabelAlignment;
    ak: FunnelSliceDisplay;
    private br;
    get bt(): (arg1: any, arg2: number, arg3: any) => string;
    set bt(a: (arg1: any, arg2: number, arg3: any) => string);
    private bs;
    get bu(): (arg1: any, arg2: number, arg3: any) => string;
    set bu(a: (arg1: any, arg2: number, arg3: any) => string);
    bv: number;
    ba: boolean;
    er: Point;
    eq: Point;
    bb: boolean;
    a5: boolean;
    bd: boolean;
    es: Style;
    et: Style;
    bx: any;
    private bh;
    private be;
    get bg(): IList;
    legend: IChartLegend;
    legendItemTemplate: DataTemplate;
    legendItemBadgeTemplate: DataTemplate;
    bc: boolean;
    private bz;
    get cw(): string;
    set cw(a: string);
    private by;
    get co(): string;
    set co(a: string);
    bn: number;
    onDetachedFromUI(): void;
    onAttachedToUI(): void;
    private dl;
    private a6;
    private a7;
    private a2;
    private a3;
    private da;
    private a9;
    private a8;
    private dt;
    sliceClicked: (sender: any, args: FunnelSliceClickedEventArgs) => void;
    private dq;
    private dp;
    private db;
    getItem(a: number): any;
    get count(): number;
    private bw;
    provideContainer(a: any): void;
    notifyResized(): void;
    di(source_: any, a: number, b: any, c: any): void;
    dd(source_: any): void;
    df(source_: any, a: number, b: any): void;
    dg(source_: any, a: number, b: any): void;
    private de;
    private av;
    private as;
    get ag(): number[];
    set ag(a: number[]);
    du(a: number): void;
    at(): FunnelChartVisualData;
    b4(): string;
    resolveLegendIndex(): number;
    forSubItems(a: (arg1: any) => void): void;
    private bj;
    get bp(): number;
    set bp(a: number);
    private bi;
    get bk(): number;
    set bk(a: number);
    get container(): ILegendOwner;
    get isStacked(): boolean;
    get isVertical(): boolean;
    get isUsableInLegend(): boolean;
    get hasSubItems(): boolean;
    get hasMarkers(): boolean;
    private em;
    get eo(): Brush;
    set eo(a: Brush);
    private en;
    get ep(): Brush;
    set ep(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;
}
