import { ViewContext } from './viewContext';
import { BaseNode } from './nodes';
/**
 *
 * A node is an `Object` with node properties e.g. name, status, etc. These attributes are user defined.
 * The standard and minimum attributes include:
 * Note that `id`s must be unique and are used in referencing {@link Link}s.
 *
 * @property {String} id - Identifier referenced in {@link Link}s.
 * @property {String} label - Text label for the Node.
 * @property {String} status - This can be `up`, `down` or `deploying` and is used for styling.
 */
/**
 * Encapsulates what is needed to create the nodes of a network graph,
 * namely rendering, positioning and animation of nodes based on data.
 *
 * @extends ViewContext
 */
export declare class NodeContext extends ViewContext<BaseNode> {
    graph: any;
    radius: number;
    /**
     * @param {Object} options
     * @param {String} [options.dom = window.document] - DOM reference, required for testing
     * @param {String} [options.container] - HTML identifier used by for d3
     *
     */
    constructor(graph: any);
    /**
     * Renders network graphs and passes hooks to d3.js's general update pattern via events.
     * @param {Object} data - Network data with `nodes` attribute
     */
    render(data: any): void;
    /**
     * Positions node `<circle>` at center
     */
    position(): void;
    /**
     * Event handler for browser `mouseover` event. Handler is defined in [render()]{@link Nodes#render}.
     *
     * @param {Object} n - Node
     * @emits Nodes#mouseover
     */
    onMouseover(n: BaseNode): void;
    /**
     * Event handler for browser `mouseout` event. Handler is defined in [render()]{@link Nodes#render}.
     * @param {Object} n - Node
     */
    onMouseout(n: BaseNode): void;
    /**
     * Event handler for browser `click` event. Handler is defined in [render()]{@link Nodes#render}.
     * @param {NodeFactory} n - clicked on node
     */
    onClick(n: BaseNode): void;
    onDblClick(n: BaseNode): void;
}
