import ConnectionLine from './ConnectionLine';
import RelationshipModel from './model/RelationshipModel';
import PositionType from './PositionType';
import Topic from './Topic';
import Canvas from './Canvas';
declare class Relationship extends ConnectionLine {
    private _focusShape;
    private _onFocus;
    private _isInWorkspace;
    private _controlPointsController;
    private _showStartArrow;
    private _showEndArrow;
    private _endArrow;
    private _startArrow;
    private _onFocusHandler;
    private _model;
    constructor(sourceNode: Topic, targetNode: Topic, model: RelationshipModel);
    setStroke(color: string, style: string, opacity: number): void;
    getModel(): RelationshipModel;
    private updatePositions;
    redraw(): void;
    private positionArrows;
    addToWorkspace(workspace: Canvas): void;
    removeFromWorkspace(workspace: Canvas): void;
    getType(): string;
    setOnFocus(focus: boolean): void;
    private positionRefreshShape;
    addEvent(eventType: string, listener: () => void): void;
    isOnFocus(): boolean;
    isInWorkspace(): boolean;
    setVisibility(value: boolean, fade?: number): void;
    setOpacity(opacity: number): void;
    setShowEndArrow(visible: boolean): void;
    setShowStartArrow(visible: boolean): void;
    setFrom(x: number, y: number): void;
    setTo(x: number, y: number): void;
    setSrcControlPoint(control: PositionType): void;
    setDestControlPoint(control: PositionType): void;
    getControlPoints(): [PositionType, PositionType];
    isSrcControlPointCustom(): boolean;
    isDestControlPointCustom(): boolean;
    setIsSrcControlPointCustom(isCustom: boolean): void;
    setIsDestControlPointCustom(isCustom: boolean): void;
    getId(): number;
    fireEvent(type: string, event: any): void;
    static getStrokeColor(): string;
}
export default Relationship;
