/// <reference types="react" />
import { PopperPlacementType } from "@mui/material";
import { TransitionProps } from "@mui/material/transitions";
import { CheckSelectedFn, InlineIndent, ItemViewData, MenuLink, MenuMode, TriggerType } from "../types";
export interface IMenuContext {
    inlineIndent?: InlineIndent;
    collapsed?: boolean;
    linkComponent?: React.ElementType;
    placement?: PopperPlacementType;
    elevation?: number;
    enterDelay?: number;
    leaveDelay?: number;
    arrow?: boolean;
    trigger: TriggerType;
    mode?: MenuMode;
    prefixCls?: string;
    defaultCollapseIcon?: React.ReactNode;
    defaultExpandIcon?: React.ReactNode;
    defaultPopupRootIcon?: React.ReactNode;
    defaultPopupSubIcon?: React.ReactNode;
    openIds?: string[];
    focusedNodeId: string;
    onInternalOpenChange: (id: string, open: boolean, idPaths: string[]) => void;
    defaultOpenIds?: string[];
    popperClassName?: string;
    selectedIds?: string[];
    onSelectedChange: (selectedIds: string[], closePopup: boolean) => void;
    onItemClick?: (id: string, paths: string[], domEvent: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLDivElement>, link?: MenuLink) => void;
    checkSelectedFn?: CheckSelectedFn;
    TransitionComponent?: React.JSXElementConstructor<TransitionProps & {
        children: React.ReactElement<any, any>;
    }>;
    getChildrenIds: (parentId: string, excludeDisabled?: boolean) => string[];
    getNode: (nodeId: string) => ItemViewData;
    setFocusedNodeId: React.Dispatch<React.SetStateAction<string>>;
}
export declare const MenuContext: import("react").Context<IMenuContext>;
export declare const useMenuContext: () => IMenuContext;
