import { ElementRef } from '@angular/core';
import { ILine } from '@foblex/2d';
import { EFConnectionBehavior } from './e-f-connection-behavior';
import { EFConnectionType } from './e-f-connection-type';
import { IHasConnectionColor } from './i-has-connection-color';
import { IHasConnectionFromTo } from './i-has-connection-from-to';
import { IHasConnectionText } from './i-has-connection-text';
import { IConnectionPath } from './f-path';
import { IConnectionGradient } from './f-gradient';
import { FConnectionDragHandleEndComponent } from './f-drag-handle';
import { FConnectionSelectionComponent } from './f-selection';
import { IConnectionText } from './f-connection-text';
import { EFConnectableSide } from '../../f-connectors';
import { FConnectionFactory } from '../f-connection-builder';
import { IHasHostElement } from '../../i-has-host-element';
import { ISelectable, ICanChangeVisibility } from '../../mixins';
import * as i0 from "@angular/core";
declare const MIXIN_BASE: import("../../mixins").Constructor<ISelectable> & import("../../mixins").AbstractConstructor<ISelectable> & import("../../mixins").Constructor<ICanChangeVisibility> & import("../../mixins").AbstractConstructor<ICanChangeVisibility> & {
    new (hostElement: HTMLElement): {
        hostElement: HTMLElement;
    };
};
export declare abstract class FConnectionBase extends MIXIN_BASE implements IHasHostElement, ISelectable, ICanChangeVisibility, IHasConnectionColor, IHasConnectionFromTo, IHasConnectionText {
    private cFactory;
    abstract fId: string;
    abstract fStartColor: string;
    abstract fEndColor: string;
    abstract fOutputId: string;
    abstract fInputId: string;
    abstract fRadius: number;
    abstract fOffset: number;
    path: string;
    line: ILine;
    abstract fDraggingDisabled: boolean;
    abstract fSelectionDisabled: boolean;
    abstract boundingElement: HTMLElement | SVGElement;
    abstract fBehavior: EFConnectionBehavior;
    abstract fType: EFConnectionType | string;
    abstract fDefs: ElementRef<SVGDefsElement>;
    abstract fPath: IConnectionPath;
    abstract fGradient: IConnectionGradient;
    abstract fDragHandle: FConnectionDragHandleEndComponent;
    abstract fSelection: FConnectionSelectionComponent;
    abstract fTextComponent: IConnectionText;
    abstract fText: string;
    abstract fTextStartOffset: string;
    abstract fConnectionCenter: ElementRef<HTMLDivElement>;
    private penultimatePoint;
    protected constructor(elementReference: ElementRef<HTMLElement>, cFactory: FConnectionFactory);
    initialize(): void;
    isContains(element: HTMLElement | SVGElement): boolean;
    setLine({ point1, point2 }: ILine, sourceSide: EFConnectableSide, targetSide: EFConnectableSide): void;
    private getPathResult;
    private getTransform;
    markChildrenAsSelected(): void;
    unmarkChildrenAsSelected(): void;
    redraw(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FConnectionBase, never, never, {}, {}, never, never, false, never>;
}
export {};
