import { EventEmitter, QueryList, SimpleChanges, ElementRef } from '@angular/core';
import { ControlValueAccessor, ValidationErrors } from '@angular/forms';
import { GroupClass, GroupModel, ItemModel } from '@obliczeniowo/elementary/circle-categories-tree';
import { IPoint2D } from '@obliczeniowo/elementary/classes';
import { Connector, DirectionalConnectorComponent } from '@obliczeniowo/elementary/connectors';
import { MenuComponent, MenuItem } from '@obliczeniowo/elementary/menu';
import * as i0 from "@angular/core";
export declare class CircleCategoriesTreeRelationsComponent implements ControlValueAccessor {
    protected element: ElementRef<HTMLElement>;
    connectors: Connector[];
    groups: GroupModel[];
    disabled?: boolean;
    menu: import("@angular/core").InputSignal<MenuComponent | undefined>;
    itemClicked: EventEmitter<{
        item: ItemModel;
        connectors: Connector[];
    }>;
    connectorClicked: EventEmitter<{
        left?: ItemModel;
        right?: ItemModel;
    }>;
    connectorsChange: EventEmitter<Connector[]>;
    protected total: number;
    protected groupsClasses: GroupClass[];
    protected newConnector?: Connector;
    set relations(relation: QueryList<DirectionalConnectorComponent>);
    protected relationsChanged: DirectionalConnectorComponent[];
    protected mouse?: IPoint2D;
    protected angle?: number;
    protected menuItems: MenuItem[];
    constructor(element: ElementRef<HTMLElement>);
    ngOnChanges(changes: SimpleChanges): void;
    protected move(event: MouseEvent): void;
    mouseOver(): void;
    protected clicked(event: MouseEvent): void;
    protected remove(item: ItemModel): void;
    protected onItemClicked(item: ItemModel): void;
    protected update(): void;
    protected onConnectorClicked(connector: Connector): void;
    protected removeConnector(connector: Connector): void;
    protected over(data: any): void;
    protected prepareGroups(): void;
    onChange: any;
    onTouched: () => void;
    writeValue(value: {
        groups: GroupModel[];
        connectors: Connector[];
    }): void;
    registerOnChange(onChange: any): void;
    registerOnTouched(onTouched: any): void;
    setDisabledState?(isDisabled: boolean): void;
    validate(control: any): ValidationErrors | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<CircleCategoriesTreeRelationsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CircleCategoriesTreeRelationsComponent, "obl-circle-categories-tree-relations", never, { "connectors": { "alias": "connectors"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "menu": { "alias": "menu"; "required": false; "isSignal": true; }; }, { "itemClicked": "itemClicked"; "connectorClicked": "connectorClicked"; "connectorsChange": "connectorsChange"; }, never, never, false, never>;
}
