import { Label } from './Label';
import { LinkPart } from './LinkPart';
import { BaseNode } from '../nodes';
import { EdgeProperty } from './EdgeProperty';
export declare class BaseLink {
    source: BaseNode;
    target: BaseNode;
    property: EdgeProperty;
    id: any;
    text: any;
    multiLinkCount: any;
    multiLinkIndex: any;
    layers: any;
    layerIndex: any;
    selfLinkCount: any;
    selfLinkIndex: any;
    loops: any;
    loopIndex: any;
    isLinkConvert: boolean;
    label: Label;
    backPart: LinkPart;
    frontPart: LinkPart;
    linkparts: Array<LinkPart>;
    pathElement: any;
    curvePoint: any;
    constructor(source: BaseNode, target: BaseNode, property: EdgeProperty);
    beforeDrawLink(linkGroup: any, markerContainer: any): void;
    afterDrawLink(linkGroup: any, markerContainer: any): void;
    draw(linkGroup: any, markerContainer: any): this;
    createPropertyMarker(markerContainer: any, property: any): void;
    createInverseMarker(markerContainer: any, inverse: any): void;
    appendBasicMarker(markerContainer: any, property: any, flag: any): any;
    drawLinkPath(linkGroup: any, markerContainer: any): any;
    getInverse(): EdgeProperty;
    setInverse(p: any): void;
    isLoop(): boolean;
}
