import { Base, Point, Type, INotifyPropertyChanged, IEnumerable, PropertyChangedEventArgs, EventArgs } from "igniteui-angular-core/ES2015/type";
import { DomRenderer } from "igniteui-angular-core/ES2015/dom";
import { RenderingContext } from "igniteui-angular-core/ES2015/RenderingContext";
import { FontInfo } from "igniteui-angular-core/ES2015/FontInfo";
import { Brush } from "igniteui-angular-core/ES2015/Brush";
import { Rect } from "igniteui-angular-core/ES2015/Rect";
import { TreemapVisualData } from "./TreemapVisualData";
import { List$1 } from "igniteui-angular-core/ES2015/List$1";
import { TreemapVisual } from "./TreemapVisual";
import { Pool$1 } from "igniteui-angular-core/ES2015/Pool$1";
import { HashSet$1 } from "igniteui-angular-core/ES2015/HashSet$1";
import { TreemapOrientation } from "./TreemapOrientation";
import { Dictionary$2 } from "igniteui-angular-core/ES2015/Dictionary$2";
import { DoubleAnimator } from "igniteui-angular-core/ES2015/DoubleAnimator";
import { BrushCollection } from "igniteui-angular-core/ES2015/BrushCollection";
import { TreemapFillScaleMode } from "./TreemapFillScaleMode";
import { TreemapLayoutType } from "./TreemapLayoutType";
import { FastItemsSource } from "igniteui-angular-core/ES2015/FastItemsSource";
import { IFastItemColumn$1 } from "igniteui-angular-core/ES2015/IFastItemColumn$1";
import { ObservableCollection$1 } from "igniteui-angular-core/ES2015/ObservableCollection$1";
import { FastItemsSourceEventAction } from "igniteui-angular-core/ES2015/FastItemsSourceEventAction";
import { TreemapValueMappingMode } from "./TreemapValueMappingMode";
import { TreemapNodePointerEventArgs } from "./TreemapNodePointerEventArgs";
/**
 * @hidden
 */
export declare class TreemapView extends Base {
    static $t: Type;
    constructor();
    protected b: TreemapViewRenderer;
    a: Treemap;
    au(): void;
    ay(): void;
    private m;
    az(): void;
    ad(): void;
    n(): boolean;
    private ac;
    private j;
    private aa;
    private q;
    private p;
    private e;
    private ab;
    private t;
    av(): void;
    ar(a: DomRenderer): void;
    private ai;
    al(a: TreemapVisualData): void;
    private ah;
    private z;
    ao(): void;
    private ae;
    private ag;
    private ak;
    private aj;
    private c;
    protected an(): void;
    private r;
    private s;
    private a1;
    i(): Pool$1<TreemapVisual>;
    protected a0(): void;
    ap(): void;
    am(): void;
    private ax;
    private g;
    at(a: FontInfo): void;
    private f;
    aw(a: FontInfo): void;
    private o;
    private k;
    af(a: List$1<TreemapVisual>): void;
    y(a: string): number;
    w(a: string): number;
    u(a: FontInfo): number;
    x(a: string): number;
    v(a: string): number;
    a2(): Brush;
    a3(): Brush;
    a5(): Brush;
    a4(): Brush;
    a6(): Brush;
    private d;
    h(): FontInfo;
    private l;
    aq(): void;
    as(): void;
}
/**
 * @hidden
 */
export declare class TreemapViewRenderer extends Base {
    static $t: Type;
    constructor();
    b: Pool$1<TreemapVisual>;
    protected c: List$1<TreemapVisual>;
    a(): TreemapVisual;
    g(a: TreemapVisual): void;
    i(a: TreemapVisual): void;
    h(a: TreemapVisual): void;
    j: Brush;
    private d;
    f(a: RenderingContext, b: Rect, c: List$1<TreemapVisual>): void;
    e(a: TreemapVisualData, b: List$1<TreemapVisual>, c: TreemapView): void;
}
/**
 * @hidden
 */
export declare abstract class TreemapLayoutCalculator extends Base {
    static $t: Type;
    abstract d(a: TreemapFrame, b: TreemapLayoutSettings): void;
    protected static c(a: TreemapTreeNode, b: Rect, c: TreemapLayoutSettings): boolean;
    protected static a(a: HashSet$1<TreemapTreeNode>, b: TreemapFrame, c: List$1<TreemapTreeNode>, d: Rect, e: TreemapLayoutSettings): boolean;
    protected static b(a: Rect, b: TreemapLayoutSettings): boolean;
    protected static f(a: HashSet$1<TreemapTreeNode>, b: TreemapFrame, c: List$1<TreemapTreeNode>, d: number, e: Rect, f: TreemapLayoutSettings): void;
    protected static e(a: HashSet$1<TreemapTreeNode>, b: TreemapFrame, c: List$1<TreemapTreeNode>, d: number, e: Rect, f: TreemapLayoutSettings): void;
}
/**
 * @hidden
 */
export declare class StrippedCalculator extends TreemapLayoutCalculator {
    static $t: Type;
    d(a: TreemapFrame, b: TreemapLayoutSettings): void;
    private n;
    protected l(a: TreemapFrame, b: TreemapTreeNode, c: Rect, d: TreemapLayoutSettings, e: number): void;
    private static j;
    private static i;
    private static k;
    private static g;
    private static h;
    private static m;
}
/**
 * @hidden
 */
export declare class SliceAndDiceCalculator extends TreemapLayoutCalculator {
    static $t: Type;
    d(a: TreemapFrame, b: TreemapLayoutSettings): void;
    private l;
    protected j(a: TreemapFrame, b: TreemapTreeNode, c: Rect, d: TreemapLayoutSettings, e: number): void;
    static g(a: TreemapTreeNode, b: TreemapLayoutSettings, c: number): TreemapOrientation;
    private static h;
    private static k;
    static i: any;
}
/**
 * @hidden
 */
export declare class TreemapLayoutSettings extends Base {
    static $t: Type;
    constructor();
    a: TreemapOrientation;
    h: Rect;
    b: TreemapTreeData;
    e: number;
    f: number;
    g: number;
    c: TreemapTreeNode;
    d: boolean;
}
/**
 * @hidden
 */
export declare class SquarifiedCalculator extends TreemapLayoutCalculator {
    static $t: Type;
    protected k(a: TreemapFrame, b: TreemapTreeNode, c: Rect, d: TreemapLayoutSettings, e: number): void;
    private l;
    private static g;
    private static i;
    private static j;
    private static h;
    d(a: TreemapFrame, b: TreemapLayoutSettings): void;
}
/**
 * @hidden
 */
export declare class TreemapTreeData extends Base {
    static $t: Type;
    constructor();
    a: TreemapTreeNode;
    b: Dictionary$2<string, TreemapTreeNode>;
    d: List$1<string>;
    c: Dictionary$2<string, List$1<TreemapTreeNode>>;
    e(a: TreemapTreeNode): void;
    private g;
    f(): void;
}
/**
 * @hidden
 */
export declare class TreemapTreeNode extends Base {
    static $t: Type;
    constructor();
    i: string;
    k: string;
    b: List$1<TreemapTreeNode>;
    c: List$1<TreemapNodeStyleMapping>;
    f: number;
    g: any;
    d: number;
    j: string;
    h: any;
    a: boolean;
    e(): number;
}
/**
 * @hidden
 */
export declare class Treemap extends Base implements INotifyPropertyChanged {
    static $t: Type;
    constructor();
    private eb;
    private ea;
    private e5;
    protected ed(a: FastItemsSourceEventAction, b: number, c: number, d: string): void;
    protected g: TreemapFrame;
    protected f: TreemapFrame;
    protected e: TreemapFrame;
    notifySizeChanged(): void;
    destroy(): void;
    af(): TreemapVisualData;
    cy(): string;
    protected ev(a: string, b: any, c: any): void;
    protected e0(a: string, b: any, c: any): void;
    ae: TreemapView;
    private fs;
    ft: Rect;
    private ec;
    protected ag: DoubleAnimator;
    private cr;
    d7: string;
    private cq;
    dx: string;
    private cl;
    ct: string;
    private cp;
    du: string;
    private co;
    dm: string;
    private cm;
    cw: string;
    private cn;
    dh: string;
    private bg;
    dataSource: IEnumerable;
    private a;
    b: BrushCollection;
    private v;
    readonly styleMappings: TreemapNodeStyleMappingCollection;
    private c;
    d: TreemapFillScaleMode;
    private a1;
    a6: boolean;
    private cg;
    ci: number;
    private bm;
    bz: number;
    private bl;
    by: number;
    private e9;
    fm: Brush;
    private e8;
    fl: Brush;
    private fb;
    fo: Brush;
    private fd;
    fq: Brush;
    private fa;
    fn: Brush;
    private ak;
    an: FontInfo;
    private aj;
    am: FontInfo;
    private bp;
    b8: number;
    private br;
    ca: number;
    private bq;
    b9: number;
    private bo;
    b7: number;
    private bn;
    b6: number;
    private fc;
    fp: Brush;
    private bu;
    cd: number;
    private y;
    z: TreemapOrientation;
    private i;
    j: TreemapLayoutType;
    private bs;
    cb: number;
    private ch;
    ck: number;
    private bv;
    protected ce: number;
    private cf;
    private ah;
    ai: FastItemsSource;
    private as;
    az: IFastItemColumn$1<number>;
    private ao;
    at: IFastItemColumn$1<any>;
    private ar;
    aw: IFastItemColumn$1<any>;
    private ap;
    au: IFastItemColumn$1<any>;
    private aq;
    av: IFastItemColumn$1<any>;
    private bt;
    cc: number;
    private bi;
    bw: number;
    private a0;
    protected ax(a: string): IFastItemColumn$1<number>;
    protected ay(a: string): IFastItemColumn$1<any>;
    ei(): void;
    protected a5: boolean;
    protected a8: boolean;
    protected a4: boolean;
    readonly a2: boolean;
    private ab;
    private aa;
    protected h: TreemapLayoutCalculator;
    protected ez(): void;
    private a7;
    private b0;
    private b2;
    private b3;
    private b1;
    private bj;
    d5(a: TreemapTreeNode, b: string, c: number, d: number, e: number): string;
    private c5;
    private bk;
    private b5;
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    private ff;
    private fi;
    private al;
    onDetachedFromUI(): void;
    onAttachedToUI(): void;
    private fg;
    private fh;
    private fj;
    private fe;
    private b4;
    private fk;
    protected e2(a: TreemapFrame): void;
    protected bc(): boolean;
    e3(): void;
    private a3;
    private bb;
    private bx;
    private a9;
    l(a: Point): TreemapNodeFrame;
    private cj;
    m(a: Point): TreemapNodeFrame;
    private e4;
    private readonly bd;
    provideContainer(a: DomRenderer): void;
    eg(): void;
    protected n: TreemapNodeFrame;
    private k;
    protected o: TreemapNodeFrame;
    private ef;
    private eh;
    private p;
    protected ad: TreemapTreeNode;
    protected ac: TreemapTreeNode;
    eq(a: Point): void;
    eu(a: Point): void;
    private ba;
    em(source_: any, a: number, b: any, c: any): void;
    ej(source_: any): void;
    private be;
    static bf(a: any, b: any): boolean;
    ek(source_: any, a: number, b: any): void;
    el(source_: any, a: number, b: any): void;
    er(a: Point): void;
    es(a: Point): void;
    protected fr: Point;
    protected e7(a: Point): void;
    et(a: Point): void;
    private e6;
    ew(a: Point): void;
    ex(a: Point): void;
    ey(a: TreemapNodeStyle): void;
    nodeStyling: (sender: any, args: TreemapNodeStylingEventArgs) => void;
    nodePointerOver: (sender: any, args: TreemapNodePointerEventArgs) => void;
    nodePointerEnter: (sender: any, args: TreemapNodePointerEventArgs) => void;
    nodePointerLeave: (sender: any, args: TreemapNodePointerEventArgs) => void;
    nodePointerPressed: (sender: any, args: TreemapNodePointerEventArgs) => void;
    nodePointerReleased: (sender: any, args: TreemapNodePointerEventArgs) => void;
}
/**
 * @hidden
 */
export declare class TreemapNodeStyle extends Base implements INotifyPropertyChanged {
    static $t: Type;
    a: Treemap;
    protected ag(a: string, b: any, c: any): void;
    private c;
    af(): void;
    b(a: string): boolean;
    protected ah(a: string, b: any, c: any): void;
    private ak;
    ar: Brush;
    private aj;
    aq: Brush;
    private am;
    at: Brush;
    private p;
    aa: string;
    private ao;
    av: Brush;
    private al;
    as: Brush;
    private f;
    l: number;
    private h;
    n: number;
    private g;
    m: number;
    private e;
    k: number;
    private d;
    j: number;
    private ai;
    ap: Brush;
    private an;
    au: Brush;
    private i;
    o: number;
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
}
/**
 * @hidden
 */
export declare class TreemapNodeStyleMapping extends TreemapNodeStyle {
    static $t: Type;
    private a4;
    a8: string;
    private az;
    a1: number;
    private ay;
    a0: number;
    private a2;
    a3: any;
    private aw;
    ax: TreemapValueMappingMode;
}
/**
 * @hidden
 */
export declare class TreemapNodeStyleMappingCollection extends ObservableCollection$1<TreemapNodeStyleMapping> {
    static $t: Type;
    constructor();
    collectionResetting: (sender: any, e: EventArgs) => void;
    protected p(): void;
}
/**
 * @hidden
 */
export declare class TreemapNodeStylingEventArgs extends EventArgs {
    static $t: Type;
    private _value;
    value: number;
    private _sum;
    sum: number;
    private _customValue;
    customValue: any;
    private _item;
    item: any;
    private _parentItem;
    parentItem: any;
    private _label;
    label: string;
    private _parentValue;
    parentValue: number;
    private _parentLabel;
    parentLabel: string;
    private _parentSum;
    parentSum: number;
    private _style;
    style: TreemapNodeStyle;
}
/**
 * @hidden
 */
export declare class TreemapFrame extends Base {
    static $t: Type;
    constructor();
    private c;
    d: List$1<string>;
    g(a: number, b: TreemapFrame, c: TreemapFrame): void;
    i(a: TreemapTreeNode, b: Rect): void;
    j(a: TreemapTreeNode): Rect;
    h(a: TreemapTreeNode, b: string, c: Brush, d: Brush, e: Brush, f: Brush, g: number, h: number, i: number, j: number, k: number, l: number, m: number): void;
    f(): void;
    b(a: string): boolean;
    a(a: string): TreemapNodeFrame;
    e(a: TreemapTreeNode, b: TreemapNodeStyle): void;
}
/**
 * @hidden
 */
export declare class TreemapNodeFrame extends Base {
    static $t: Type;
    constructor();
    r: Rect;
    d: TreemapTreeNode;
    l: string;
    static a(a: number, b: TreemapNodeFrame, c: TreemapNodeFrame): TreemapNodeFrame;
    static c(a: number, b: TreemapNodeFrame): TreemapNodeFrame;
    static b(a: number, b: TreemapNodeFrame): TreemapNodeFrame;
    m: string;
    n: Brush;
    q: Brush;
    k: number;
    g: number;
    i: number;
    h: number;
    f: number;
    p: Brush;
    o: Brush;
    j: number;
    e: number;
}
