import React, { Component } from 'react';
import { Placement } from 'rdk';
import { Node, Link, Axis } from './types';
interface NodeEventData {
    nativeEvent: any;
    node: Node;
    links: Link[];
}
interface LinkEventData {
    nativeEvent: any;
    link: Link;
}
export interface HivePlotProps {
    axis: Axis[];
    nodes: Node[];
    links: Link[];
    activeIds?: string[];
    disabled?: boolean;
    label: {
        show: boolean;
        padding?: number;
    };
    width?: number;
    height?: number;
    innerRadius: number;
    className?: any;
    onNodeClick: (data: NodeEventData) => void;
    onNodeMouseOver: (data: NodeEventData) => void;
    onLinkMouseOver: (data: LinkEventData) => void;
    onNodeMouseOut: (data: NodeEventData) => void;
    onLinkMouseOut: (data: LinkEventData) => void;
    tooltip: {
        show: boolean;
        placement: Placement;
        formatter: (axis: Axis[], nodes: Node[], link?: Link, node?: Node) => React.ReactNode;
    };
    colorScheme: {
        axis: string[];
        domain: string[];
    };
}
interface HivePlotState {
    tooltipReference?: EventTarget | null;
    nodeTooltipData?: Node;
    linkTooltipData?: Link;
    active?: {
        [k: string]: boolean;
    };
    height?: number;
    width?: number;
}
export declare class HivePlot extends Component<HivePlotProps, HivePlotState> {
    static defaultProps: {
        innerRadius: number;
        disabled: boolean;
        axis: never[];
        nodes: never[];
        links: never[];
        label: {
            show: boolean;
            padding: number;
        };
        activeIds: never[];
        onNodeClick: () => undefined;
        onNodeMouseOver: () => undefined;
        onNodeMouseOut: () => undefined;
        onLinkMouseOver: () => undefined;
        onLinkMouseOut: () => undefined;
        tooltip: {
            show: boolean;
            placement: string;
            formatter: (attr: any) => any;
        };
        colorScheme: {
            axis: string[];
            domain: string[];
        };
    };
    state: HivePlotState;
    onNodeMouseOver(node: Node, event: MouseEvent): void;
    onLinkMouseOver(link: Link, event: MouseEvent): void;
    activateLink(link: Link): void;
    activateAdjacentLinks(links: Link[], target: Node, accumulator: {}): any[];
    onNodeMouseOut(node: Node, event: MouseEvent): void;
    onLinkMouseOut(link: Link, event: MouseEvent): void;
    onNodeClick(node: Node, event: MouseEvent): void;
    getLinksForNode(node: Node): Link[];
    resetActive(): void;
    prepareData({ dimension, innerRadius, colorScheme, axis, label }: {
        dimension: any;
        innerRadius: any;
        colorScheme: any;
        axis: any;
        label: any;
    }): {
        angle: import("d3-scale").ScalePoint<string>;
        radius: import("d3-scale").ScaleLinear<number, number>;
        axisColor: import("d3-scale").ScaleOrdinal<string, unknown>;
        domainColor: import("d3-scale").ScaleOrdinal<string, unknown>;
        outerRadius: number;
    };
    onSize({ height, width }: {
        height: any;
        width: any;
    }): void;
    getDimensions(): {
        height: number;
        width: number;
    };
    renderAxis({ angle, radius, axisColor, outerRadius }: {
        angle: any;
        radius: any;
        axisColor: any;
        outerRadius: any;
    }): JSX.Element;
    isActive(nodeOrLink: Node | Link, index: number, type: 'node' | 'link'): boolean;
    renderLinks({ angle, radius, domainColor }: {
        angle: any;
        radius: any;
        domainColor: any;
    }): JSX.Element;
    renderNodes({ angle, radius, domainColor }: {
        angle: any;
        radius: any;
        domainColor: any;
    }): JSX.Element;
    renderTooltip(): JSX.Element;
    render(): JSX.Element;
}
export {};
