import { Base } from '../../../Infrastructure/Repository';
import { Connection } from '../../../Store/Connection';
import { View } from '../../View';
import { LabelView } from '../LabelView/LabelView';
import { Line } from '../Line/Line';
import { TopContext } from '../Line/TopContext/TopContext';
import { TopContextUser } from '../Line/TopContext/TopContextUser';
export declare namespace ConnectionView {
    interface Config {
        readonly connectionWidthCalcMethod: 'text' | 'line';
        readonly connectionClasses: Array<string>;
    }
    class Entity extends TopContextUser {
        private store;
        private contextIn;
        private config;
        private svgElement;
        private lineElement;
        constructor(store: Connection.Entity, contextIn: TopContext, config: Config);
        get id(): number | null;
        get lineIn(): Line.ValueObject;
        get view(): View;
        get sameLineLabelView(): LabelView.Entity;
        get mayNotSameLineLabelView(): LabelView.Entity;
        get fromLabelView(): LabelView.Entity;
        get toLabelView(): LabelView.Entity;
        get leftLabelView(): LabelView.Entity;
        get rightLabelView(): LabelView.Entity;
        get middle(): number;
        get textWidth(): number;
        get textLeft(): number;
        get lineIncludedWidth(): number;
        get lineIncludedLeft(): number;
        get width(): number;
        get left(): number;
        get globalY(): number;
        render(): SVGGElement;
        update(): void;
        addHover(label: 'from' | 'to'): void;
        removeHover(label: 'from' | 'to'): void;
        remove(): void;
        private updateLine;
        private renderLine;
    }
    class Repository extends Base.Repository<Entity> {
    }
}
