import * as RealChart from 'realchart';
import { Series, TreemapSeriesOptions, IPlottingItem, DataPoint, Color } from 'realchart';

/**
 * [y, id, group]
 * [x, y, id, group]
 */
declare class TreemapSeriesPoint extends DataPoint {
    id: string;
    group: string;
    protected _assignTo(proxy: any): any;
    protected _readArray(series: TreemapSeries, v: any[]): void;
    protected _readObject(series: TreemapSeries, v: any): void;
}
interface IArea {
    x: number;
    y: number;
    width: number;
    height: number;
}
declare class TreeNode {
    point: TreemapSeriesPoint;
    parent: TreeNode;
    expaned: boolean;
    children: TreeNode[];
    index: number;
    value: number;
    x: number;
    y: number;
    width: number;
    height: number;
    _color: Color;
    constructor(point: TreemapSeriesPoint);
    level(): number;
    getArea(): IArea;
    setArea(x: number, y: number, w: number, h: number): void;
    getTotal(): number;
}
/**
 * Treemap 시리즈.<br/>
 * {@page op.SeriesOptions#type}은 {@page config.series.treemap 'treemap'}이고,
 * {@page options 설정} 모델은 {@page op.TreemapSeriesOptions}이다.
 *
 * @modules treemap
 */
declare class TreemapSeries extends Series<TreemapSeriesOptions> {
    static readonly type = "treemap";
    static defaults: TreemapSeriesOptions;
    _roots: TreeNode[];
    _leafs: TreeNode[];
    private _map;
    private _levels;
    /**
     * group mode일 때 group 레벨별 표시 방식 지정.
     * TODO: 구현할 것!
     */
    /**
     * @internal
     */
    buildMap(width: number, height: number): {
        roots: TreeNode[];
        leafs: TreeNode[];
    };
    needAxes(): boolean;
    canMixWith(other: IPlottingItem): boolean;
    protected _createPoint(source: any): DataPoint;
    _getLabeledPoints(): DataPoint[];
    protected _doPrepareRender(): void;
    private $_buildTree;
    private $_squarifyRow;
    private $_squarify;
    private squarify;
    private strip;
    private $_sliceNext;
    private $_slice;
    private slice;
    private sliceDice;
}

declare function registerSeries(chart: typeof RealChart): void;

export { TreemapSeries, registerSeries as default };
