import { EventEmitter, ViewContainerRef, Injector, ComponentFactoryResolver, AfterContentInit, Renderer2, QueryList, NgZone } from '@angular/core';
import { Treemap } from "./Treemap";
import { IgxTreemapNodeStyleMappingComponent } from './igx-treemap-node-style-mapping-component';
import { IgxTreemapNodeStyleMappingCollection } from './igx-treemap-node-style-mapping-collection';
import { TreemapFillScaleMode } from "./TreemapFillScaleMode";
import { IgxTreemapNodeStylingEventArgs } from "./igx-treemap-node-styling-event-args";
import { TreemapOrientation } from './TreemapOrientation';
import { TreemapLayoutType } from './TreemapLayoutType';
import { IgxTreemapNodePointerEventArgs } from './igx-treemap-node-pointer-event-args';
import { TreemapHeaderDisplayMode } from './TreemapHeaderDisplayMode';
import { HorizontalAlignment } from "igniteui-angular-core";
import { VerticalAlignment } from "igniteui-angular-core";
import { TreemapLabelHorizontalFitMode } from './TreemapLabelHorizontalFitMode';
import { TreemapLabelVerticalFitMode } from './TreemapLabelVerticalFitMode';
export declare const IgxTreemapComponent_PROVIDERS: any[];
export declare class IgxTreemapComponent implements AfterContentInit {
    private renderer;
    private _elRef;
    private ngZone;
    private injector;
    private componentFactoryResolver;
    container: Element;
    private _height;
    private _width;
    height: string;
    width: string;
    _dynamicContent: ViewContainerRef;
    contentStyleMappings: QueryList<IgxTreemapNodeStyleMappingComponent>;
    /**
    * The style mappings actually present in the chart. Do not directly modify this array.
    * This array's contents can be modified by causing Angular to reproject the child content.
    * Or adding and removing stye mappings from the manual style mapping collection on the styleMappings property.
    */
    actualStyleMappings: IgxTreemapNodeStyleMappingComponent[];
    private _styleMappings;
    private _styleMappingsAdapter;
    /**
     * A collection or manually added axes for the chart.
    */
    readonly styleMappings: IgxTreemapNodeStyleMappingCollection;
    private _wrapper;
    private _root;
    constructor(renderer: Renderer2, _elRef: ViewContainerRef, ngZone: NgZone, injector: Injector, componentFactoryResolver: ComponentFactoryResolver);
    updateStyle(): void;
    ngOnDestroy(): void;
    private _implementation;
    ngAfterContentInit(): void;
    protected createImplementation(): Treemap;
    readonly i: Treemap;
    private _treeMap;
    /**
 * Gets or sets path to use to get the values from the items.
*/
    valueMemberPath: string;
    /**
     * Gets or sets the root title to use for breadcrumbs.
    */
    rootTitle: string;
    /**
     * Gets or sets the root title to use for breadcrumbs.
    */
    breadcrumbSequence: string;
    /**
     * Gets or sets the path to use to get the Parent of the items.
    */
    parentIdMemberPath: string;
    /**
     * Gets or sets the path to use to get the Label of the items.
    */
    labelMemberPath: string;
    /**
     * Gets or sets the path to use to get the custom value of the items.
    */
    customValueMemberPath: string;
    /**
     * Gets or sets the path to use to get the id of the items.
    */
    idMemberPath: string;
    /**
     * Gets or sets the (possibly hierarchical) data to assign to the TreeMap.
    */
    dataSource: any[];
    /**
     * Gets or sets brushes to use for the fill scale.
    */
    fillBrushes: string[];
    /**
     * Gets or sets mode to use for the fill scale.
    */
    fillScaleMode: TreemapFillScaleMode;
    /**
     * Gets or sets whether the fill scale is logarithmic.
    */
    isFillScaleLogarithmic: boolean;
    /**
     * Gets or sets the logarithm base to use if the fill scale is logarithmic.
    */
    fillScaleLogarithmBase: number;
    /**
     * Gets or sets the minimum value to use for the fill scale.
    */
    fillScaleMinimumValue: number;
    /**
     * Gets or sets the maximum value to use for the fill scale.
    */
    fillScaleMaximumValue: number;
    /**
     * Gets or sets the vertical fit mode to use for the node labels.
    */
    labelVerticalFitMode: TreemapLabelVerticalFitMode;
    /**
     * Gets or sets the horizontal fit mode to use for the node labels.
    */
    labelHorizontalFitMode: TreemapLabelHorizontalFitMode;
    /**
     * Gets or sets the background to use for the overlay header when it is hovered.
    */
    overlayHeaderHoverBackground: string;
    /**
     * Gets or sets the background to use for the header when it is hovered.
    */
    headerHoverBackground: string;
    /**
     * Gets or sets the background to use for the header.
    */
    headerBackground: string;
    /**
     * Gets or sets the background to use for the overlay header.
    */
    overlayHeaderBackground: string;
    /**
     * Gets or sets the text color to use for the header.
    */
    headerTextColor: string;
    /**
     * Gets or sets the dark text color to use for the header.
    */
    headerDarkTextColor: string;
    /**
     * Gets or sets the text color to use for the nodes.
    */
    textColor: string;
    /**
     * Gets or sets the dark text color to use for the nodes.
    */
    darkTextColor: string;
    /**
     * Gets or sets the text color to use for the header.
    */
    headerHoverTextColor: string;
    /**
     * Gets or sets the dark text color to use for the header when hovered.
    */
    headerHoverDarkTextColor: string;
    /**
     * Gets or sets the font to use for content nodes
    */
    textStyle: string;
    /**
     * Gets or sets the font to use for header nodes
    */
    headerTextStyle: string;
    /**
     * Gets or sets the font to use for header nodes
    */
    headerDisplayMode: TreemapHeaderDisplayMode;
    /**
     * Gets or sets the left margin to use for the header.
    */
    headerLabelLeftMargin: number;
    /**
     * Gets or sets the top margin to use for the header.
    */
    headerLabelTopMargin: number;
    /**
     * Gets or sets the right margin to use for the header.
    */
    headerLabelRightMargin: number;
    /**
     * Gets or sets the bottom margin to use for the header.
    */
    headerLabelBottomMargin: number;
    /**
     * Gets or sets the left margin to use for the overlay header.
    */
    overlayHeaderLabelLeftMargin: number;
    /**
     * Gets or sets the top margin to use for the overlay header.
    */
    overlayHeaderLabelTopMargin: number;
    /**
     * Gets or sets the right margin to use for the overlay header.
    */
    overlayHeaderLabelRightMargin: number;
    /**
     * Gets or sets the bottom margin to use for the overlay header.
    */
    overlayHeaderLabelBottomMargin: number;
    /**
     * Gets or sets the left margin to use for the labels.
    */
    labelLeftMargin: number;
    /**
     * Gets or sets the top margin to use for the labels.
    */
    labelTopMargin: number;
    /**
     * Gets or sets the right margin to use for the labels.
    */
    labelRightMargin: number;
    /**
     * Gets or sets the bottom margin to use for the labels.
    */
    labelBottomMargin: number;
    /**
     * Gets or sets the left margin to use for the parent nodes.
    */
    parentNodeLeftMargin: number;
    /**
     * Gets or sets the top margin to use for the parent nodes.
    */
    parentNodeTopMargin: number;
    /**
     * Gets or sets the right margin to use for the parent nodes.
    */
    parentNodeRightMargin: number;
    /**
     * Gets or sets the bottom margin to use for the parent nodes.
    */
    parentNodeBottomMargin: number;
    /**
     * Gets or sets the left padding to use for the parent nodes.
    */
    parentNodeLeftPadding: number;
    /**
     * Gets or sets the top padding to use for the parent nodes.
    */
    parentNodeTopPadding: number;
    /**
     * Gets or sets the right padding to use for the parent nodes.
    */
    parentNodeRightPadding: number;
    /**
     * Gets or sets the bottom padding to use for the parent nodes.
    */
    parentNodeBottomPadding: number;
    /**
     * Gets or sets the horizontal alignment to use for the node labels.
    */
    labelHorizontalAlignment: HorizontalAlignment;
    /**
     * Gets or sets the vertical alignment to use for the node labels.
    */
    labelVerticalAlignment: VerticalAlignment;
    /**
     * Gets or sets the height to use for the header.
    */
    headerHeight: number;
    /**
     * Gets or sets the outline to use for the nodes.
    */
    outline: string;
    /**
     * Gets or sets the stroke thickness to use for the node outline.
    */
    strokeThickness: number;
    /**
     * Gets or sets the orientation to use for the stripped and slice and dice layout types.
    */
    layoutOrientation: TreemapOrientation;
    /**
     * Gets or sets the type of layout to use for the nodes.
    */
    layoutType: TreemapLayoutType;
    /**
     * Gets or sets the minimum size (width or height) to display a node.
    */
    minimumDisplaySize: number;
    /**
     * Gets or sets the number of milliseconds over which changes to the gauge should be animated.
    */
    transitionDuration: number;
    /**
     * 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.
    */
    pixelScalingRatio: number;
    actualPixelScalingRatio: number;
    /**
     * Gets or sets the scaling value used to affect the pixel density of the control while it is animating.
     * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
     * to appear blurry.
    */
    interactionPixelScalingRatio: number;
    /**
     * Gets or sets the resolved scaling value used to affect the pixel density of the control while it is animating.
     * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
     * to appear blurry.
    */
    actualInteractionPixelScalingRatio: number;
    readonly animating: boolean;
    /**
     * Gets or sets the item to drill to in the treemap.
    */
    focusItem: any;
    protected __p: string;
    protected _hasUserValues: Set<string>;
    protected readonly 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;
    /**
 * Returns visuals as a serialized string.

*/
    exportSerializedVisualData(): string;
    markDirty(): void;
    onDetachedFromUI(): void;
    onAttachedToUI(): void;
    flush(): void;
    notifySetItem(source_: any, index: number, oldItem: any, newItem: any): void;
    /**
     * Manually notifies the treemap'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 pie chart is bound to is already observable.
    
    * @param source_  * The data source.
    */
    notifyClearItems(source_: any): void;
    notifyInsertItem(source_: any, index: number, newItem: any): void;
    notifyRemoveItem(source_: any, index: number, oldItem: any): void;
    private _nodeStyling;
    /**
     * Fired when a node is being styled. Provides an opportunity to customize node styling.
    */
    readonly nodeStyling: EventEmitter<{
        sender: any;
        args: IgxTreemapNodeStylingEventArgs;
    }>;
    private _nodePointerOver;
    /**
     * Fired with the pointer is moving over a node.
    */
    readonly nodePointerOver: EventEmitter<{
        sender: any;
        args: IgxTreemapNodePointerEventArgs;
    }>;
    private _nodePointerEnter;
    /**
     * Fired when the pointer enters a node.
    */
    readonly nodePointerEnter: EventEmitter<{
        sender: any;
        args: IgxTreemapNodePointerEventArgs;
    }>;
    private _nodePointerLeave;
    /**
     * Fired when the pointer leaved a node.
    */
    readonly nodePointerLeave: EventEmitter<{
        sender: any;
        args: IgxTreemapNodePointerEventArgs;
    }>;
    private _nodePointerPressed;
    /**
     * Fired when the pointer is pressed on a node.
    */
    readonly nodePointerPressed: EventEmitter<{
        sender: any;
        args: IgxTreemapNodePointerEventArgs;
    }>;
    private _nodePointerReleased;
    /**
     * Fired when the pointer is released on a node.
    */
    readonly nodePointerReleased: EventEmitter<{
        sender: any;
        args: IgxTreemapNodePointerEventArgs;
    }>;
    protected _zoneRunner: (act: () => void) => void;
    protected _runInZone(act: () => void): void;
}
