import * as i0 from '@angular/core';
import { AfterViewInit, Renderer2, ElementRef } from '@angular/core';
import { DrawingContextInterface, Rect } from '@obliczeniowo/elementary/drawing';
import * as i2 from '@angular/common';
import * as i3 from '@obliczeniowo/elementary/buttons';

type ValueKeyFormat = (index: number, value: number, sum: number, key: string) => string;
interface PieColors {
    fill: string;
    stroke: string;
    line: string;
    text: string;
}
type PieColorsFu = (index: number, value: number, max: {
    min: number;
    max: number;
}, count: number) => PieColors;

declare class FlatPieDiagram {
    dc: DrawingContextInterface;
    areaRect: Rect;
    keyValues: {
        [key: string]: number;
    };
    dr: number;
    ray: number;
    valueKeyFormat: ValueKeyFormat;
    colors: PieColorsFu;
    constructor(dc: DrawingContextInterface, area: Rect);
    sum(): number;
    minMax(): {
        min: number;
        max: number;
    };
    draw(dc?: DrawingContextInterface): void;
}

declare class FlatPieDiagramComponent implements AfterViewInit {
    protected renderer: Renderer2;
    drawing: FlatPieDiagram;
    readonly width = 800;
    readonly height = 528;
    private pData;
    get data(): {
        [key: string]: number;
    };
    set data(value: {
        [key: string]: number;
    });
    svg: ElementRef<SVGSVGElement>;
    protected _colors: PieColorsFu | undefined;
    protected _valueKeyFormat: ValueKeyFormat;
    set valueKeyFormat(valueKeyFormat: ValueKeyFormat | undefined);
    set colors(colors: PieColorsFu | undefined);
    constructor(renderer: Renderer2);
    ngAfterViewInit(): void;
    pdf(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FlatPieDiagramComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FlatPieDiagramComponent, "obl-flat-pie-diagram", never, { "data": { "alias": "data"; "required": false; }; "valueKeyFormat": { "alias": "valueKeyFormat"; "required": false; }; "colors": { "alias": "colors"; "required": false; }; }, {}, never, never, false, never>;
}

declare class FlatPieDiagramModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<FlatPieDiagramModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<FlatPieDiagramModule, [typeof FlatPieDiagramComponent], [typeof i2.CommonModule, typeof i3.ButtonsModule], [typeof FlatPieDiagramComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<FlatPieDiagramModule>;
}

export { FlatPieDiagram, FlatPieDiagramComponent, FlatPieDiagramModule };
export type { PieColors, PieColorsFu, ValueKeyFormat };
