/// <reference types="react" />
import React$1 from 'react';

type DisplayPosition = "top" | "right" | "bottom" | "left" | "center";
type AnimationType = "fade" | "rotate" | "scale";
interface MenuProps extends React.SVGProps<SVGSVGElement> {
    innerRadius: number;
    outerRadius: number;
    centerX: number;
    centerY: number;
    children: React.ReactNode;
    show?: boolean;
    animationTimeout?: number;
    animateSubMenuChange?: boolean;
    animation?: AnimationType[] | AnimationType;
    theme?: "light" | "dark";
    drawBackground?: boolean;
    hoverToOpen?: boolean;
    hoverToBackTimeout?: number;
}
interface MenuItemProps extends Omit<React.SVGProps<SVGGElement>, "onClick"> {
    __index?: number;
    __angleStep?: number;
    __parentMenuId?: string;
    __isBackButton?: boolean;
    data?: any;
    onItemClick?: (event: React.MouseEvent<SVGGElement, MouseEvent>, index: number, data?: any) => void;
}
interface SubMenuClosedProps extends Omit<MenuItemProps, "children"> {
    __myMenuId?: string;
    itemView?: React.ReactNode;
}
interface SubMenuOpenedProps {
    __myMenuId?: string;
    __parentMenuId?: string;
    displayPosition: DisplayPosition;
    children: React.ReactNode;
    displayView?: React.ReactNode;
    onDisplayClick?: MenuDisplayProps["onClick"];
}
type SubMenuProps = SubMenuClosedProps & SubMenuOpenedProps;
interface MenuDisplayProps {
    __parentMenuId: string;
    position: DisplayPosition;
    children: React.ReactNode;
    onClick: (event: React.MouseEvent<SVGGElement, MouseEvent>, position: DisplayPosition) => void;
    onMouseEnter: (event: React.MouseEvent<SVGGElement, MouseEvent>) => void;
}

declare const Menu: ({ centerX, centerY, innerRadius, outerRadius, animationTimeout, show, animateSubMenuChange, animation, theme, drawBackground, hoverToOpen, hoverToBackTimeout, ...props }: MenuProps) => React$1.JSX.Element;

declare const MenuItem: ({ __angleStep, __index, __parentMenuId, __isBackButton, data: propsData, onItemClick, ...props }: MenuItemProps) => React$1.JSX.Element;

declare const SubMenu: (props: SubMenuProps) => React$1.JSX.Element;

export { Menu, MenuItem, SubMenu };
