import * as d3 from 'd3';
export interface IBaseElement {
    equivalents: IBaseElement[];
    id: string;
    type: string;
    properties: object;
    labels: object;
    equivalentBase: any;
    baseIri: string;
    focused: boolean;
    attributes: string[];
    indications: string[];
    pinned: boolean;
    fixed: boolean;
    locked: boolean;
    backgroundColor: string;
    x: any;
    y: any;
    fx: any;
    fy: any;
    beforeDraw(parentElement: d3.Selection<any>): any;
    draw(parentElement: d3.Selection<any>): any;
    afterDraw(parentElement: d3.Selection<any>): any;
    formJson(data: any): any;
    toJson(): any;
    equals(other: any): any;
    toString(): string;
    toText(): string;
}
export declare class BaseElement implements IBaseElement {
    equivalents: BaseElement[];
    id: string;
    type: string;
    properties: object;
    labels: object;
    equivalentBase: any;
    attributes: string[];
    mouseEntered: boolean;
    visible: boolean;
    baseIri: string;
    focused: boolean;
    indications: string[];
    radius: number;
    maxTextWidth: number;
    pinned: boolean;
    fixed: boolean;
    locked: boolean;
    backgroundColor: string;
    x: any;
    y: any;
    fx: any;
    fy: any;
    CLASS_RADIUS: number;
    THING_RADIUS: number;
    SPACE_BETWEEN_SPANS: number;
    ADDITIONAL_TEXT_SPACE: number;
    CARDINALITY_HDISTANCE: number;
    CARDINALITY_VDISTANCE: number;
    SPECIAL_OPERATIONS_RADIUS: number;
    LITERAL_HEIGHT: number;
    LITERAL_WIDTH: number;
    LABEL_HEIGHT: number;
    LABEL_WIDTH: number;
    DATA_TYPE_LINK_DISTANCE: number;
    LINK_DISTANCE: number;
    LOOP_LINK_DISTANCE: number;
    constructor();
    cssClassOfNode(): string;
    styleClass(): string;
    Type(p: any): string | this;
    beforeDraw(parentElement: d3.Selection<any>): void;
    draw(parentElement: d3.Selection<any>): this;
    afterDraw(parentElement: d3.Selection<any>): void;
    formJson(data: any): void;
    toJson(): {
        id: string;
        type: string;
        properties: object;
    };
    equals(other: any): boolean;
    isSpecial(): boolean;
    toString(): string;
    toText(): string;
    iri(): string;
    indicationString: () => string;
    equivalentsString: () => string;
    textInProperies: (properties: any, name?: string) => any;
    _ffun: () => void;
    protected applyFixedAttributes(): void;
}
