import * as React from 'react';
import { DraggableEvent, DraggableData } from 'react-draggable';
import { GraphConfig } from '../GraphConfig';
import { Point } from '../layout/Point';
import { Vertex } from '../layout/Vertex';
interface IVertexRendererProps {
    vertex: Vertex;
    config: GraphConfig;
    selected: boolean;
    highlighted: boolean;
    selectVertex: (vertex: Vertex, additional?: boolean) => any;
    dragSelection: (offset: Point) => any;
    dropSelection: () => any;
    interactionMode: string;
    actions: any;
    writeable: boolean;
    hasExpand: boolean;
}
interface IVertexRendererState {
    hovered: boolean;
}
export declare class VertexRenderer extends React.PureComponent<IVertexRendererProps, IVertexRendererState> {
    gRef: React.RefObject<SVGGElement>;
    constructor(props: Readonly<IVertexRendererProps>);
    componentDidMount(): void;
    componentWillUnmount(): void;
    private onDragMove;
    onDragEnd(e: DraggableEvent, data: DraggableData): void;
    onDragStart(e: DraggableEvent, data: DraggableData): void;
    onClick(e: any): void;
    onDoubleClick(e: MouseEvent): void;
    onMouseOver(): void;
    onMouseOut(): void;
    getColor(): string;
    allowPointerEvents(): boolean;
    render(): JSX.Element;
}
export {};
