import { ChangeDetectorRef, ElementRef, SimpleChanges } from '@angular/core';
import { HtmlColor, IPoint2D } from '@obliczeniowo/elementary/classes';
import { Connector } from '../../models/connector.model';
import { MenuComponent } from '@obliczeniowo/elementary/menu';
import { Subscription } from 'rxjs';
import { ConnectorDataModel } from '../../models/connector-data.model';
import { BehaviorSubjectExt, EventEmitterExt } from '@obliczeniowo/elementary/rx-js-ext';
import * as i0 from "@angular/core";
export declare class RelationConnectorComponent {
    change: ChangeDetectorRef;
    protected elementRef: ElementRef<HTMLElement>;
    left?: IPoint2D;
    right?: IPoint2D;
    connector?: Connector;
    highlighted?: string;
    offset: number;
    defaultColor: HtmlColor;
    menu?: MenuComponent;
    translations: {
        [english: string]: string;
    };
    disabled?: boolean;
    input: BehaviorSubjectExt<ConnectorDataModel | undefined>;
    clicked: EventEmitterExt<Connector>;
    remove: EventEmitterExt<Connector>;
    editColor: EventEmitterExt<Connector>;
    protected menuItems: {
        id: number;
        text: string;
        command: string;
    }[];
    onMouseOver(): void;
    onMouseLeave(): void;
    protected subscription: Subscription;
    constructor(change: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    protected shape(): string | undefined;
    static ɵfac: i0.ɵɵFactoryDeclaration<RelationConnectorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RelationConnectorComponent, "g[obl-relation-connector]", never, { "left": { "alias": "left"; "required": false; }; "right": { "alias": "right"; "required": false; }; "connector": { "alias": "connector"; "required": false; }; "highlighted": { "alias": "highlighted"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "defaultColor": { "alias": "defaultColor"; "required": false; }; "menu": { "alias": "menu"; "required": false; }; "translations": { "alias": "translations"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "input": { "alias": "input"; "required": false; }; }, { "clicked": "clicked"; "remove": "remove"; "editColor": "editColor"; }, never, never, false, never>;
}
