import * as d3 from 'd3';
import { ViewContext } from './viewContext';
import { EdgeProperty } from '../elements/edges/EdgeProperty';
import { BaseLink } from './edges/BaseLink';
import { Label } from './edges/Label';
export declare class EdgeContext extends ViewContext<EdgeProperty> {
    graph: any;
    selection: d3.Selection;
    labelGroupElements: d3.Selection;
    linkGroups: d3.Selection;
    linksPath: d3.Selection;
    cardinalities: d3.Selection;
    nodesMap: {};
    /**
     * @param {Object} options
     * @param {String} [options.dom = window.document] - DOM reference, required for testing
     * @param {String} [options.container] - HTML identifier used by d3.js
     */
    constructor(graph: any);
    /**
     * Renders links, adding `<line>`s to our `<svg>` .
     *
     * @param {Object} data
     */
    render(data: any): void;
    renderLabel(graph: any, labelNodes?: Label[]): void;
    renderCardinality(graph: any, links?: BaseLink[]): void;
    renderLink(graph: any, links?: BaseLink[]): void;
    updateLabelAndLinkPositions(): void;
    position(): void;
    setRelationships(): void;
    /**
     * Shows all Links, resetting the `data-hidden` attribute used for CSS styling.
     */
    showAll(): void;
    onMouseover(n: EdgeProperty): void;
    onMouseout(n: EdgeProperty): void;
    onClick(n: EdgeProperty): void;
    onDblClick(n: EdgeProperty): void;
}
