import { Point2D, ColorRGB } from '@obliczeniowo/elementary/classes';
import { PostDiagramValue } from './PostDiagramValue';
import { SvgText } from './SvgText';
import { SvgPolyline } from './SvgPolyline';
import { SvgPolygon } from './SvgPolygon';
export interface ScaleValue {
    line: SvgPolyline;
    value: SvgText;
}
export declare class SvgPostDiagram {
    values: PostDiagramValue[];
    svgContainer: SVGSVGElement;
    legendContainer: HTMLElement;
    private readonly postsGroup;
    private readonly valuesGroup;
    private readonly keysGroup;
    private readonly greedGroup;
    private _displayPostKeys;
    private _diagramHeight;
    dy: number;
    diagramWidth: number;
    diagramPos: Point2D;
    base: SvgPolygon;
    leftScalePlain: SvgPolygon;
    backScalePlain: SvgPolygon;
    scaleLines: ScaleValue[];
    scaleBase: SvgText;
    private displayText;
    private valuesColor;
    private readonly scaleColor;
    id: string;
    private _colorFunction;
    set colorFunction(colorFunction: (index: number, dataLength: number, value: number, max: number) => ColorRGB);
    constructor(id: string, data: any, svgContainer: SVGSVGElement, legendContainer: HTMLElement);
    get diagramHeight(): number;
    displayPostKeys(display: boolean): void;
    getMax(): number;
    setValueColor(valuesColor: ColorRGB): void;
    private clearHtml;
    setDiagramValues(data: {
        [key: string]: number;
    }): void;
    get postWidth(): number;
    private _refreshBase;
    private _refreshLeftScalePlain;
    private _refreshBackScalePlain;
    private _refreshScale;
    refresh(): void;
    toString(): string;
    setDisplayValue(value: boolean): void;
    setValue(value: number, index: number): void;
}
