import * as i0 from '@angular/core';
import { ElementRef, Renderer2, EventEmitter } from '@angular/core';
import { DrawingSvgInterface } from '@obliczeniowo/elementary/drawing';
import { Point2D, ColorType } from '@obliczeniowo/elementary/classes';
import * as i2 from '@angular/common';

interface PageItem {
    name: string;
    rootName: string;
    parentName: string;
    value: number;
    data?: any;
}

interface PageCategory {
    rootName?: string;
    parentName?: string;
    pos: Point2D;
    endPos: Point2D;
    pChanged: boolean;
}

declare class PagesCircleTreeComponent {
    protected elementRef: ElementRef<HTMLElement>;
    protected renderer: Renderer2;
    /** items to draw */
    items: i0.InputSignalWithTransform<PageItem[], PageItem[]>;
    onClicked: EventEmitter<PageItem>;
    /** drawing interface */
    protected drawing: DrawingSvgInterface;
    /** found under mouse item */
    protected item: PageItem | undefined;
    /** prepared points to redraw diagram */
    protected points: Point2D[];
    /** ray */
    protected graphSize: number;
    /**
     * graphSizeMax = graphSize + dGraphSize
     */
    protected dGraphSize: number;
    /** size of svg view box */
    protected size: number;
    /** categories */
    protected categories: PageCategory[];
    constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2);
    ngAfterViewInit(): void;
    move(event: any): void;
    clicked(): void;
    protected calcPoints(): void;
    protected calcCategories(): void;
    protected draw(): void;
    protected drawSplittedText(text: string, position: Point2D, color: ColorType, maxLength: number): number;
    protected getMax(): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<PagesCircleTreeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PagesCircleTreeComponent, "obl-pages-circle-tree", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "onClicked": "onClicked"; }, never, never, false, never>;
}

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

export { PagesCircleTreeComponent, PagesCircleTreeModule };
export type { PageCategory, PageItem };
