import * as React from 'react';
import type { NestedMenuRef, NestedMenuContextProps } from './types';
export type NestedMenuState = {
    nestedMenuHoverIndex: number;
    menus: NestedMenuRef[];
};
export type NestedMenuProps = {
    children: React.ReactNode;
};
export declare const NestedMenuContext: React.Context<NestedMenuContextProps>;
export default class NestedMenus extends React.Component<NestedMenuProps, NestedMenuState> {
    state: {
        menus: any[];
        nestedMenuHoverIndex: number;
    };
    mountRef: {
        current: HTMLElement | null;
    };
    mouseLeaveTimeoueId: any;
    handleMenuMouseLeave: (event: MouseEvent) => void;
    handleMenuMouseEnter: (event: MouseEvent) => void;
    addMenuToNesting: (ref: NestedMenuRef) => void;
    removeMenuFromNesting: (ref: NestedMenuRef) => void;
    findMenuIndexByRef: (ref: NestedMenuRef) => number;
    getParentMenu: (ref: NestedMenuRef) => NestedMenuRef | undefined | null;
    getChildMenu: (ref: NestedMenuRef) => NestedMenuRef | undefined | null;
    isNestedMenuVisible: (ref: NestedMenuRef) => boolean;
    render(): React.JSX.Element;
}
